dw2

25 October 2008

"Symbian too old" – a mountain worth climbing

Filed under: Cringely, developer experience, E71, smartphones — David Wood @ 2:03 pm

In case I had forgotten how little mindshare Symbian has in many parts of North America, the recent Robert X. Cringely piece “Why Windows Mobile will die” contained yet another stark reminder.

As usual with Cringely, the piece mixes potential insight with a lot of conjecture and then some fancy. Most of the article discusses Windows Mobile, iPhone, and Android. But it squeezes in a dismissive paragraph about Symbian:

…donning flameproof clothing: Symbian is simply too old. The OS is getting slower and slower with each release. The GUIs are getting uglier and are not user-friendly. The development environment is particularly bad, which wouldn’t hurt if there weren’t others that are so much better. Symbian C++, for example, is not a standard C++. There is little momentum in the Symbian developer community, maybe because coding for Symbian is a pain. Yes, there are way more Symbian phones in circulation, but those phones will be gone 18 months from now, probably replaced by phones with a different OS. Lately, Symbian’s success has been primarily based on the high quality of Nokia hardware, on the loyalty of NTT DoCoMo, and now on the lure of being recently made open source and therefore free. But if open source developers don’t flock now to Symbian (they aren’t as far as I can see — at least not yet) then the OS is doomed.

And if that weren’t a sufficiently strong reminder of Symbian’s lack of mindshare, I found scant encouragement in the 65 comments posted (so far) to Cringely’s piece.

Allow me a few moments to respond to individual points in this paragraph, before I return to the bigger picture.

“Symbian is simply too old” – but it has been undergoing a constant internal renewal, with parts of the architecture and code being refactored and replaced with each new point release. Just a few examples: we introduced a new kernel in v8.1b, a new security architecture in v9.0, new database (SQL) architecture in v9.3, new Bluetooth in v9.4, substantially revised graphics architecture and networking architecture in v9.5, and so forth.

“The OS is getting slower and slower with each release” – on the contrary, many parts of the operating system are humming much quicker in the newer releases, as a result of a specific and pervasive focus on performance across the whole system. Deliverables include speed ups due to smart incorporation of demand paging, file system caching, data scalability improvements, and wider adoption of separation of activity into three planes (data plane, control plane, and management plane).

“The GUIs are getting uglier and are not user-friendly” – but the UI system is increasingly flexible, which allows customers to experiment with many different solutions (whilst retaining API compatibility). New developments such as the S60 Fifth Edition touch interface, and the recently announced support for Qt on Symbian OS, take things further in the user-friendly direction.

“The development environment is particularly bad” – but documentation and tools for Symbian OS have markedly improved over the last two years.

“Symbian C++, for example, is not a standard C++” – but watch out for our forthcoming annoucements about EUserHL that go a long way to address this particular gripe.

“There is little momentum in the Symbian developer community” – but that’s not the impression given by the media reports from people who attended the Symbian Smartphone Show last week.

“Yes, there are way more Symbian phones in circulation, but those phones will be gone 18 months from now, probably replaced by phones with a different OS” – but I beg to differ, based on my knowledge of development projects underway at phone manufacturers across the world. For just one example, consider the recent remarks from Li Jilin, Huawei Communications Vice President (note: Huawei has previously not been a user of Symbian OS):

“Huawei is excited by the plans for the Symbian Foundation. We look forward to participating in the work of the Symbian Foundation and using the foundation’s platform to deliver a portfolio of devices for mobile network operators around the world. We believe that the Symbian Foundation ecosystem will enable innovation which will benefit users and drive increased customer satisfaction.”

“If open source developers don’t flock now to Symbian (they aren’t as far as I can see — at least not yet) then the OS is doomed” – but this is far too impatient. It’s too early to make this judgement. You can’t expect the open source developers to flock to us before more plans are published for the roadmap to put our source code into open source.

As for the bigger picture: despite the above individual points of fact, I don’t expect significant changes in mindset (except among the far-sighted) until there are more Symbian devices in the hands of North Americans.

It was the amazing array of devices at the partner showcase stands at the Smartphone Show last week that caused the biggest buzz of all – bigger than the announcements from the keynote hall next door. Thankfully, AT&T have publicly mentioned their “plan to introduce more Symbian phones“. North American users shouldn’t have too long to wait. And there are encouraging signs of independently-minded North American writers actually (shock horror) liking the latest Symbian phones. For example, the renowned software essayist Joel Spolsky called the Nokia E71 “the best phone I’ve ever had – I’m loving it“.

In the meantime, the Symbian Foundation has a big mountain to climb, in public perception. But it’s a mountain well worth climbing!

24 October 2008

Smartphones and the recession

Filed under: recession — David Wood @ 1:17 am

“Symbian Smartphone Show – Recession? what recession?” That was the title of the characteristically perceptive summary of this week’s Smartphone Show prepared by analyst Richard Windsor of Nomura Securities.

In his summary, Richard made a series of positive comments about the show:

  • The vision of the Symbian foundation was put forward by all its members to an audience that has certainly grown in numbers compared to last year.
  • By putting Symbian and s60 together with the elimination of UIQ and MOAPs, it is hoped that licensees will have one system upon which to develop phones and applications.
  • At the same time the new structure means that the access to the software will be much more even, giving everyone a better chance at effectively competing.

However, he also noted:

  • The floor was abuzz with the prospect of the growing opportunity for smartphones but seemed oblivious to the possibility that an economic recession could materially dent growth.
  • While the talk is all about growth and the new opportunity, very little was said about the coming recession and the effect that ever increasing hardware specification will have on the ability for smartphones to continue getting cheaper and cheaper.
  • We see a negative impact from two sides:
  • First the fact that consumers have less disposable income to spend on high end devices.
  • Second, the pressure to compete with Apple, whose iPhone volumes has over taken RIM, is causing more technology to be crammed into phones earlier.
  • This has the effect of increasing the cost to build smartphones which means that price declines to consumers will slow or stop entirely.

So, is there any possible justification for paying so little attention to the likely onset of economic hard times?

Here’s one argument to consider. The Symbian Foundation is about, not the next ten months, but the next ten years. The general buzz at the show derives from expectation of a potentially huge long-term payback, rather than any evaluation of short-term rewards. Just as the original vision of Symbian, on its formation in 1998, contemplated up to ten years into the future, the creation of the Symbian Foundation likewise has an eye on market evolution up to 2018. Any recession between now and then is a lesser effect.

Well, I’m sympathetic to that view. However, it gives us no reason to breezily overlook the likely pain and disruption caused to the smartphone industry by an economic downturn.

After all, I vividly remember the distress inside Symbian during the crash of the dot com bubble. During that time, smartphone phone projects were being cancelled thick and fast – even when the projects looked to be full of real promise. These projects were cancelled on account of lack of finances to back more speculative developments. Development resources in our customers (and also in our customers’ customers) became focused instead on “safe bets” rather than on innovative high-risk high-reward projects. Symbian faced a real crisis. It took several long years to put that time behind us.

Could the same happen again? Perhaps. But I see several key differences:

  • This time, it will be the Symbian projects that are viewed as the safe bets: the Symbian software system is much more stable and proven than before
  • This time, many of the Symbian projects will be the lower costs ones – because of reduced needs to integrate large swathes of new functionality (beyond that already provided in the core offering), and also because of the lower hardware requirements of the high-performance Symbian software
  • This time, consumers are already familiar with smartphone technology, and are increasingly enamoured with it, rather than this technology only appealing to a narrow segment of the population.

I hope this doesn’t make me look complacent. Believe me, I’m not. I know it’s going to be hard, to turn the above prognosis into reality. But the enthusiasm and skills of the Symbian ecosystem (as manifest at the show) give me grounds for optimism.

In short, consumers may tend to prefer lower-cost smartphones, and this will benefit Symbian. Even though the Symbian phones will be comparatively inexpensive, they will deliver enough features (and a sufficiently good user experience) to win over end-users.

22 October 2008

Winners of Symbian student essay contest

Filed under: Essay contest, Smartphone Show, universities — David Wood @ 6:25 am

At the Smartphone Show yesterday, Symbian announced the results of our first Student Essay Contest, and called for entrants to a new contest – with an entry submission deadline of 31st January 2009.

The theme for the 2008 contest was “The next wave of smartphone innovation“. The prize winners are as follows (listed in alphabetical order of surname):

  • Benoît Delville, Ecole Centrale de Lille, France: The hardware tech of smartphones. Benoît’s essay examines four factors which threaten to prevent the fuller adoption of smartphones.
  • Alexander Erifiu, University of Applied Sciences, Hagenberg, Austria: New interaction concepts in mobile games. Alexander’s essay describes a project the author carried out with some colleagues to increase the suitability of smartphones for certain types of games.
  • Andreas Jakl, Johannes Kepler University, Linz, Austria: Optical translator: word spotting and tracking on smartphones. Andreas’s essay considers some developments that will enable advanced new applications that take advantage of the high quality camera technology that is currently widely available on smartphones.
  • Florian Lettner, University of Applied Sciences, Hagenberg, Austria: Smartphones in home automation. Florian’s essay investigates the possible use of smartphones in a number of practical situations, including several in the home.
  • Pankaj Nathani, Bhavnagar University, Gujarat, India: Improved development and delivery methodologies. Pankaj’s essay focuses on the fact that developers can face many challenges in developing and delivering novel or evolved services on smartphones.
  • Milen Nikolov, The College at Brockport, State University of New York, Brockport, USA: Exploiting social and mobile ad hoc networking to achieve ubiquitous connectivity. Milen’s essay examines a particular example of what is known as a ‘Mobile Ad hoc Network’ (MANET) involving smartphones.
  • Aleksandra Reiss, Petrozavodsk State University, Russia: The next waves of smartphone innovation. Aleksandra’s essay is targeted at discovering what new functionality can be added to smartphones in the near future.
  • Sudeep Sundaram, University of Bristol, UK: Situation aware maintenance mate. Sudeep’s essay reviews possible uses of a smartphone in coordination with a head mounted display, where for example, a user could see the positioning of electrical wires in a wall and carry out diagnostics.
  • Iftekhar Ul Karim, BRAC University, Dhaka, Bangladesh: Opportunities with smartphone technologies for the base of the pyramid. Iftekhar’s essay challenges readers to consider novel uses of smartphones for users in the so-called ‘base of the pyramid’ – the four billion poorest people on the planet.
  • Alejandro Vicente-Grabovetsky, University of Cambridge, UK: The smartphone of the future: A powerhouse or a mere terminal? Alejandro’s essay explores the potential for the smartphone to act as a ‘social computer’ as opposed to merely copying features from the ‘personal computer’.

My congratulations to the prizewinners! There are thought-provoking elements in all of the winning essays. For extracts and summaries, see developer.symbian.com/essays.

The contest received many other essays that also contained interesting and valuable observations. My recommendations to entrants of future contests is that that essays are more likely to be awarded prizes if they:

  • Concentrate on making a small number of points well, rather than on trying to cover a large number of different points;
  • Address specific issues, rather than describing abstract theories;
  • Have a clear structure and a logical flow of argument;
  • Back up their claims by providing evidence (for example, references).

My goal for the 2008 contest were threefold:

  1. To encourage university students to carry out research on topics of interest to Symbian, its wider community and the mobile industry;
  2. To find out where the most interesting research was being carried out;
  3. To stimulate interest in Symbian’s emerging University Research Relations programme.

Following the success of our 2008 contest, we’re repeating it in 2009. The deadline for submission for the next Symbian Student Essay Contest is 31st January 2009. The overall theme for this new contest is “Architectures to enable breakthroughs for mobile converged devices.” Students are encouraged to address one or more of the following topics in their essays:

  1. Software development that takes best advantage of multiple processor cores
  2. Allocation of responsibilities between managed code and native code
  3. Delivering maximum power from the hardware and the networks to applications
  4. Security and privacy concerns in mobile device architectures
  5. Taming the complexity of mobile system architecture: the role of open source
  6. Enabling devices, applications and services that appeal to huge new groups of users
  7. The role of system architecture in significantly improving consumer experience.

Winners of the 2009 contest will receive £1,000 with runners up earning special commendations. For the rules of this contest, see www.symbian.com/universities.

21 October 2008

Open Source: necessary but not sufficient

Filed under: Open Innovation, Open Source, Smartphone Show — David Wood @ 5:57 am

Building the software system for complex smartphone products is one of the toughest engineering challenges on the planet. The amount of software in a high-end phone has been roughly doubling, each year, for the last ten years. In order to reap market success, smartphone software has to meet demanding requirements for performance, reliability, and usability. What’s more, to avoid missing a fast-moving market window, the software needs to pass through its integration process and reach maturity in a matter of months (not years). As I said, it’s a truly tough problem.

[Author’s note: a version of this article is appearing in print today, to mark the first day of the Symbian Smartphone Show. I thought that people might like to read it online too.]

In broad terms, there are two ways in which a company can seek to solve this kind of tough problem:

  1. Seek to keep careful control of the problem, and rely primarily on resources that are under the tight direction and supervision of the company;
  2. Seek to take advantage of resources that are outside the control of the company.

The attraction of the first approach is that it’s easier to manage. The attraction of the second approach is that, in principle, the company can take better advantage of the potential innovation created by users and developers that are outside the company.

Writers and academics who study how innovation works in industry sometimes use the terms “closed innovation” and “open innovation” to describe these two approaches. In his pioneering book “Open innovation, the new imperative for creating and profiting from technology”, Henry Chesbrough lists the following contrasts between open innovation and closed innovation:

The “closed innovation” mindset:

  1. The smart people in our field work for us
  2. To profit from R&D we must discover it, develop it, and ship it ourselves
  3. If we discover it ourselves, we will get to the market first
  4. The company that gets an innovation to market first will win
  5. If we create the most and the best ideas in the industry, we will win
  6. We should control our IP, so that our competitors don’t profit from our ideas.

The “open innovation” mindset:

  1. Not all the smart people work for us. We need to work with smart people inside and outside our company
  2. External R&D can create significant value; internal R&D is needed to claim some portion of that value
  3. We don’t have to originate the research to profit from it
  4. Building a better business model is better than getting to market first
  5. If we make the best use of internal and external ideas, we will win
  6. We should profit from others’ use of our IP, and we should buy others’ IP whenever it advances our own business model.

In the modern world of hyper-complex products, easy communication via the Internet and other network systems, and the “Web 2.0” pro-collaboration zeitgeist, it is easy to understand why the idea of open innovation receives a lot of support. It sounds extremely attractive. However, the challenge is how to put these ideas into practice.

That’s where open source enters the picture. Open source removes both financial and contractual barriers that would otherwise prevent many users and external developers from experimenting with the system. For this reason, open source can boost open innovation.

However, in my view, there’s a lot more to successful open innovation than putting the underlying software platform into open source. We mustn’t fall into the trap of thinking that, because both these expressions start with the same adjective (“open”), the two expressions are essentially equivalent. They’re not.

Indeed, people who have studied open innovation have reached the conclusion that there are three keys to making open innovation work well for a firm (or platform):

  • Maximising returns to internal innovation
  • Incorporating external innovation in the platform
  • Motivating a supply of external innovations.

Let’s dig more deeply into the second and third of these keys.

Incorporating external innovation in the platform

The challenge here isn’t just to stimulate external innovation. It is to be able to incorporate this innovation into the codelines forming the platform. That requires the platform itself to be both sufficiently flexible and sufficiently stable. Otherwise the innovation will fragment the platform, or degrade its ongoing evolution.

It also requires the existence of significant skills in platform integration. Innovations offered by users or external developers may well need to be re-engineered if they are to be incorporated in the platform in ways that meet the needs of the user community as a whole, rather than just the needs of the particular users who came up with the innovation in question.

  • This can be summarised by saying that a platform needs skills and readiness for software codeline management, if it is to be able to productively incorporate external innovation.

Codeline management in turn depends on skills in:

  • Codeline gate-keeping: not accepting code that fails agreed quality criteria – no matter how much political weight is carried by the people trying to submit that code
  • Reliable and prompt code amalgamation: being quick to incorporate code that does meet the agreed criteria – rather than leaving these code submissions languishing too long in an in-queue
  • API management, system architecture, and modular design – to avoid any spaghetti-like dependencies between different parts of the software
  • Software refactoring – to be able to modify the internal design of a complex system, in the light of emerging new requirements, in order to preserve its modularity and flexibility – but without breaking external compatibility or losing roadmap momentum.

Motivating a supply of external innovations

The challenge here isn’t just to respond to external innovations when they arise. It is to give users and external developers sufficient motivation to work on their ideas for product improvement. These parties need to be encouraged to apply both inspiration and perspiration.

  • Just as the answer to the previous issue is skilled software codeline management, the answer to this issue is skilled ecosystem management.

Ecosystem management involves a mix of education and evangelism. It also requires active listening (also known as “being open-minded”), and a willingness by the platform providers to occasionally tweak the underlying platform, in order to facilitate important innovations under consideration by external parties. Finally it requires ensuring that third parties can receive suitable rewards for their breakthroughs – whether moral, social, or financial. This involves the mindset of “growing the pie for mutual benefit” rather than the platform owner seeking to dominate the value for its own sake.

But neither software codeline management nor ecosystem management comes easy. Neither fall out of the sky, ready for action, just by virtue of a platform being open source. Nor can these skills be acquired overnight, by spending lots of money, or hiring lots of intrinsically smart people.

Conclusion: On account of a legacy of more than ten years of trial and error in building and enhancing both a mobile platform and an associated dynamic ecosystem, the Symbian Foundation should come into existence with huge amounts of battle-hardened expertise in both software codeline management and ecosystem management. On that basis, I expect the additional benefits of open source will catalyse a significant surge of additional open innovation around the Symbian Platform. In contrast, other mobile platforms that lack this depth of experience are likely to find that open source brings them grief as much as it brings them potential new innovations. For these platforms, open source may result in divisive fragmentation and a dilution of ecosystem effort.

Footnote: For more insight about open innovation, I recommend the writings of Henry Chesbrough (mentioned above), Wim Vanhaverbeke, and Joel West.

11 October 2008

Serious advice to developers in tough times

Filed under: Economics, FOWA, openness, regulation — David Wood @ 6:57 pm

As I mentioned in my previous article, the FOWA London event on “The Future of Web Apps” featured a great deal of passion and enthusiasm for technology and software development systems. However, as I watched the presentations on Day Two, I was repeatedly struck by a deeper level of seriousness.

For example, AMEE Director Gavin Starks urged the audience to consider how changes in their applications could help reduce CO2 emissions. AMEE has exceptionally large topics on its mind: the acronym stands for “Avoiding Mass Extinctions Engine“. Gavin sought to raise the aspiration level of developers: “If you really want to build an app that will change the world, how about building an app that will save the Earth?” But this talk was no pious homily: it contained several dozen ideas that could in principle act as possible starting points for new business ventures.

On a different kind of serious topic, Mahalo.com CEO Jason Calacanis elicited some gasps from the audience when he dared to suggest that, if startups are really serious about making a big mark in the business world, they should consider firing, not only their “average” employees, but also their “good” employees – under the rationale that “good is the enemy of the great“. The resulting audience Q&A could have continued the whole afternoon.

But the most topical presentation was the opening keynote by Sun Microsystems Distinguished Engineer Tim Bray. It started with a bang – with the words “I’m Scared” displayed in huge font on the screen.

With these words, Tim announced that he had, the previous afternoon, torn up the presentation he was previously planning to give – a presentation entitled “What to be Frightened of in Building A Web Application“.

Tim explained that the fear he would now address in his talk was about global economic matters rather than about usage issues with the likes of XML, Rails, and Flash. Instead of these technology-focused matters, he would instead cover the subject “Getting through the tough times“.

Tim described how he had spent several days in London ahead of the conference, somewhat jet lagged, watching lots of TV coverage about the current economic crisis. As he said, the web has the advantage of allowing everyone to get straight to the sources – and these sources are frightening, when you take the time to look at them. Tim explicitly referenced http://acrossthecurve.com/?p=1830, which contains the following gloomy prognosis:

…more and more it seems likely that the resolution of this crisis will be an historic financial calamity. Each and every step which central banks and regulators have taken to resolve the crisis has been met with failure. In the beginning, the steps would produce some brief stability.

In the last several days, the US Congress (belatedly) passed a bailout bill, the Federal Reserve has guaranteed commercial paper and in unprecedented coordination central banks around the globe slash base lending rates. Listen to the markets respond.

The market scoffs as Libor rises, stocks plummet and IBM is forced to pay usurious rates to borrow. There is no stability and no hiatus from the pain. It continues unabated in spite of the best efforts of dedicated people to solve it.

We are in the midst of an unfolding debacle. It is happening about us. I am not sure how or when it ends, but the end, when it arrives, will radically alter the way we live for a long time.

Whoever wins the US election and takes office in January will need prayers and divine intervention.

As Tim put it: “We’ve been running on several times the amount of money that actually exists. Now we’re going to have to manage on nearer the amount of money that does exist.” And to make things even more colourful, he said that the next few days could be like the short period of time in New Orleans after hurricane Katrina had passed, but before the floods struck (caused by damage brought about by the winds). For the world’s economy, the hurricane may have passed, but the flood is still to come.

The rest of Tim’s talk was full of advice that sounded, to me, as highly practical, for what developers should do, to increase their chances of survival through these tough times. (There’s a summary video here.) I paraphrase some highlights from my notes:

Double down and do a particularly good job. In these times, slack work could put your company out of business – or could cause your employer to decide your services are no longer necessary.

Large capital expenditures are a no-no. Find ways to work that don’t result in higher management being asked to sign large bills – they won’t.

Waterfalls are a no-no. No smart executive is going to commit to a lengthy project that will take longer than a year to generate any payback. Instead, get with the agile movement – pick out the two or three requirements in your project that you can deliver incrementally and which will result in payback in (say) 8-10 weeks.

Software licences are a no-no. Companies will no longer make large commitments to big licences for the likes of Oracle solutions. Open source is going to grow in prominence.

Contribute to open source projects. This is a great way to build professional credibility – to advertise your capabilities to potential new employers or business partners.

Get in the cloud. With cloud services, you only pay a small amount in the beginning, and you only pay larger amounts when traffic is flowing.

Stop believing in technology religions. The web is technologically heterogeneous. Be prepared to learn new skills, to adopt new programming languages, or to change the kinds of applications you develop.

Think about the basic needs of users. There will be less call for applications about fun things, or about partying and music. There will be more demand for applications that help people to save money – for example, the lowest gas bill, or the cheapest cell phone costs.

Think about telecomms. Users will give up their HDTVs, their SUVs, and their overseas holidays, but they won’t give up their cell phones. The iPhone and the Android are creating some great new opportunities. Developers of iPhone applications are earning themselves hundreds of thousands of dollars from applications that cost users only $1.99 per download. Developers in the audience should consider migrating some of their applications to mobile – or creating new applications for mobile.

The mention of telecomms quickened my pulse. On the one hand, I liked Tim’s emphasis on the likely continuing demand for high-value low-cost mobile solutions. On the other hand, I couldn’t help noticing there were references to iPhone and Android, but not to Symbian (or to any of the phone manufacturers who are using Symbian software).

Then I reflected that, similarly, namechecks were missing for RIM, Windows Mobile, and Palm. Tim’s next words interrupted this chain of thought and provided further explanation: With the iPhone and Android, no longer are the idiotic moronic mobile network operators standing in the way with a fence of barbed wire between developers and the people who actually buy phones.

This fierce dislike for network operator interference was consistent with a message underlying the whole event: developers should have the chance to show what they can do, using their talent and their raw effort, without being held up by organisational obstacles and value-chain choke-points. Developers dislike seemingly arbitrary regulation. That’s a message I take very seriously.

However, we can’t avoid all regulation. Indeed – to turn back from applications to economics – lack of regulation is arguably a principal cause of our current economic crisis.

The really hard thing is devising the right form of regulation – the right form of regulation for financial markets, and the right form of regulation for applications on potentially vulnerable mobile networks.

Both tasks are tough. But the solution in each case surely involves greater transparency.

The creation of the Symbian Foundation is intended to advance openness in two ways:

  1. Providing more access to the source code;
  2. Providing greater visibility of the decisions and processes that guide changes in both the software platform and the management of the associated ecosystem.

This openness won’t dissolve all regulation. But it should ensure that the regulations evolve, more quickly, to something that more fully benefits the whole industry.

9 October 2008

In search of software glamour

Filed under: developer experience, FOWA, passion — David Wood @ 8:51 pm

I keep running into the “glamour question”. Scott from Mippin raised it again the other day, in a shrewd comment in response to Roger Nolan’s recent analysis “Symbian’s open source challenge”:

I think that one inherent disadvantage for Symbian compared to Apple and Android is the glamour factor. This can be demonstrated by looking at the comments stream to this excellent post. If it had been talking about Apple or Android it would have people crawling over themselves to comment. Symbian just does not elicit the same excitement. This means – more meaningfully perhaps – that developers gain more kudos for developing for one of the glamour platforms than for Symbian (despite its market share).

Scott suggests that one reason for the reduced excitement over Symbian lies “the complexity of Symbian. It is just too complex and developers stay away“. Previously, I’ve offered my own list of “Symbian passion killers” that can hinder developers from becoming fully inspired (and therefore fully productive) about creating software for Symbian OS. As I’ve said before, the plans for “Symbian 2.0” in the wake of the creation of the Symbian Foundation include several important projects to address passion killers.

I heard quite a lot more, today, about developer passion. I was attending Day One of FOWA – the Future of Web Apps expo, taking place at London’s ExCeL conference centre. I experienced considerable déjà vu at this event, since the annual Symbian Smartphone Shows were held there from 2002 to 2007. The layout of the keynote hall and the so-called “university sessions” reminded me a lot of similar layouts from bygone Smartphone Shows. The audience seemed of comparable size too. But whereas the motivation of many who attend the Smartphone Show is to make business connections and to promote the success of their companies, the motivation I sensed from many of the FOWA attendees was rather different: it was to explore new technologies, and to exult in new products and new processes.

For example, Edwin Aoki, AOL Technology Fellow, included the following remarks in his keynote speech “Web apps are dead, long live web apps”:

What drives developers? It’s not just money. It’s building out communities. It’s building pride. It’s dedication and passion, not dollars and pounds.

And I couldn’t help noticing how frequently speakers used words like “amazing”, “exciting”, “awesome”, “kickass”, and “cool”. At first I wondered if they were joking or being ironic, but then I realised they were un-selfconscious. They were simply being enthusiastic.

Blaine Cook, ex Chief Engineer at Twitter, and Joe Stump, Lead Architect of Digg, performed a dynamic two-hander on the subject of “Languages don’t scale”. Taking turns, they ripped into features of programming languages that, in their words, made the languages “suck”. Thus “here’s why PHP sucks…” and “here’s why Ruby sucks…” and “Python sucks as well…”. But this was just a prelude to their main theme, which is that you should beware asking committed developers to switch from one language to another. Language choice is often personal – and often heartfelt. According to the speakers, scale performance issues that sometimes bedevil web applications, only rarely come down to language issues; instead, they usually depend on hardware architecture or network architecture. Hence the advice:

Value happy coders! Happy coders are productive coders. Let them work with the languages they love!

Many of the speakers oozed passion. I was particularly impressed by Francisco Tolmasky, co-founder of 280 North. His presentation title hardly sounded earth-shattering: “Building Desktop Caliber Web Applications with Objective-J and Cappuccino”. However, the delivery was captivating and uplifting. (And the technology of their product does look attractive…)

All this brings back to mind the glamour question: To what extent can Symbian’s developer events match this kind of enthusiasm – an enthusiasm driven by love of product and love of technology, rather than (just) love of market opportunity and commercial reward? To what extent can Symbian OS become viewed as glamorous and exciting, rather than just some kind of incumbent?

Happily, there’s a lot of fascinating technology on Symbian’s roadmap. There are also new tools that should appeal to various different kinds of developers. For those who value choice of languages, there’s a growing range of language options available for Symbian OS. For those who are interested in the hardware, there are literally scores of new phone models in the pipeline. Some of this will fall under public spotlight in under two weeks’ time at the 2008 Smartphone Show.

This year, the show has moved from ExCeL to Earls Court. The more significant change is that, this year, there’s a “Mobile Devfest” which is running alongside the main show:

Mobile DevFest is Symbian’s premier conference for developers and has been designed to provide developers with deep technical training and information on building mobile software solutions for the next generation of mobile phones powered by Symbian OS.

Mobile DevFest is the ideal developer event for anyone engaged in building, or interested in building mobile applications on Symbian OS.

Mobile DevFest is the best way to stay ahead of today’s mobile technologies. It provides in-depth technical sessions, delivered by industry experts in the mobile development space.

I’m eagering looking forward to taking part – and to gauging the degree of passion at the show. And in the meantime, if you think your own new product or solution for the Symbian space is particularly exciting, I’ll be pleased to hear about it!

5 October 2008

iWoz inspires iMAX

Filed under: Apple, books, collaboration, innovation, Psion — David Wood @ 8:57 am

Last Wednesday, Apple co-Founder Steve Wozniak addressed a gathering of several hundred business people in London’s large-format IMAX cinema, as part of a series of events organised by the London Business Forum. The theme was “Apple Innovation”. Since the IMAX is just 15 minutes walk from Symbian’s HQ, this opportunity was too good for me to miss. I hoped Wozniak’s account of Apple culture might shed some new light on the all-conquering iPhone. I was not disappointed.

Wozniak spoke for more than an hour, without slides, running through a smorgasbord of anecdotes from his own life history. It was rivetting and inspiring. Later I realised that most of the material has already been published in Wozniak’s 2006 book “iWoz: Computer geek to cult icon: How I invented the personal computer, co-founded Apple, and had fun doing it“, which was given out at the event.

I warmed to Wozniak early on in his talk, when he described one of his early experiments in software – writing a program to solve the “Knight’s tour” around a chessboard. I remembered writing a program to try to solve the same problem while at roughly the same age – and had a similar result. In my case, programs were sent off from school to the local Aberdeen University, where clerical staff typed them in and submitted them on behalf of children in neighbouring schools. This program was returned several days later with the comment that there was no output – operators had terminated it.

A few weeks later, there was a short residential course at the university for sixth form students, which I attended. I modified my program to tackle a 5×5 board instead, and was happy to see computer quickly spitting out numerous solutions. I changed the board size to 6×6 instead and waited … and waited … and after around 10 minutes, a solution was printed out. Wozniak’s experience was several years before mine. As he describes it, the computer he was using could do one million calculations a second – which sounded like a huge number. So the lack of any output from his program was a big disappointment – until he calculated that it would actually take the computer about 10^25 years to finish this particular calculation!

More than half the “iWoz” book covers Wozniak’s life pre-Apple. It’s in turn heart-warming and (when describing Wozniak’s pranks and phreaking) gob-smacking.

The episode about HP turning down the idea of the Apple I computer was particularly thought-provoking. Wozniak was working at HP before Apple was founded, and being loyal to his company (which he firmly admired for being led by engineers who in turn deeply respected other engineers) he offered them the chance to implement the ideas he had devised outside work time for what would become, in effect, the world’s first useful personal computer. Although his managers at HP showed considerable interest, they were not able to set aside their standard, well-honed processes in order to start work on what would have been a new kind of project. Wozniak says that HP turned him down five times, before he eventually resigned from the company to invest his energy full-time into Apple. It seems like a classic example of the Innovator’s Dilemma – in which even great companies can fail “by doing everything right”: their “successes and capabilities can actually become obstacles in the face of changing markets and technologies”.

Via numerous anecdotes, Wozniak describes a set of characteristics which are likely to lead to product success:

  • Technical brilliance coupled with patience and persistence. (Wozniak tells a fascinating account of how he and one helper – Randy Wigginton, at the time still at senior high school – created a brand new floppy disk drive controller in just two weeks, without any prior knowledge of disk drives);
  • A drive for simplicity of design (such as using a smaller number of parts, or a shorter algorithm) and superb efficiency of performance;
  • Users should feel an emotional attachment to the product: “Products should be obviously the best”;
  • Humanism: “The human has to be more important than the technology”.

There’s shades of the iPhone experience in all these pieces of advice – even though the book iWoz was written before the iPhone was created.

There’s even stronger shades of the iPhone experience in the following extracts from the book:

The Apple II was easy to program, in both BASIC (100 commands per second) and machine language (1M commands per second)… Within months dozens of companies started up and they were putting games on casette tape for the Apple II; these were all start-up companies, but thanks to our design and documentation, we made it easy to develop stuff that worked on our platform…

… the computer magazines had tons of Apple II product ads for software and hardware. Suddenly the Apple II name was everywhere. We didn’t have to buy an advertisement or do anything ourselves to get the name out. We were just out there, thanks to this industry of software programs and hardware devices that sprang up around the Apple II. We became the hot fad of the age, and all the magazines (even in the mainstream press) started writing great things about us. Everywhere you looked. I mean, we couldn’t buy that kind of publicity. We didn’t have to.

In this way, the Apple II quickly reached sales figures far higher than anyone had dared to predict. One other factor played a vital role:

VisiCalc was so powerful it could only run on the Apple II: only our computer had enough RAM to run it.

But sales bandwaggons can lose their momentum. The iPhone bandwaggon will falter, to the extent that other smartphones turn out to be more successful at running really valuable applications (such as, for example, applications that can run in background, in ways that aren’t possible on the iPhone).

Apple also lost some of its momentum in the less reliable Apple III product that followed the Apple II. Wozniak has no doubts about the root causes for the failure of the Apple III: “it was developed by committee, by the marketing dept”. This leads on to the disappointing advice that Wozniak gives in the final chapter of his book: “Work alone”!

Here, I part company with Wozniak. I’ve explained before my view that “design by committee” can achieve, with the right setup, some outstanding results. That was my experience inside Psion. However, I do agree that the process needs to involve some first-class product managers, who have a powerful and authentic vision for the product.

2 October 2008

Open source religion

Filed under: free software, Open Source — David Wood @ 9:52 pm

Roger Nolan, my long-time former colleague from both Psion and Symbian, raised some challenging points in his recent piece “Symbian’s open source challenge” on the VisionMobile blog. As Roger sees it, the challenge for Symbian is to get the best out of open source without becoming so fixated by the idea of open source that we fail to address the burning requirement for improved user experience. The worry is that technological or process considerations will get in the way of creating simply delightful products.

In Roger’s own words – comparing the possible future evolution of Symbian software with the history of Nokia’s Linux-based “maemo” platform for mobile Internet tablets:

Sadly Maemo is … driven from a technology soapbox. This time, it’s not a features arms race, it’s open-source-or-die. The Maemo team did not sit down and say “Let’s build a great UI for an internet tablet” they sat down and said “What can we do with open source” – open source is the religion, not ease of use and making great devices that are delightful to use.

As Symbian becomes the Symbian foundation and transitions to an open source model, I hope that the open source community will take some of the burden of implementing every last codec and piece of middle-ware and the Symbian foundation can focus on UIs and ease of use. Unfortunately, I fear that they will be overcome following Maemo’s open-source religion.

In other words, is Symbian going on an free software crusade, or are we adopting open source for solidly pragmatic reasons?

My answer is that it’s a bit of both, but with a strong emphasis on the pragmatic side of the scale.

The archetypal free software crusader, of course, is Richard Stallman. The 2002 book “Free as in Freedom” by Sam Williams is a sympathetic, interesting and easy-to-read account of Stallman and his very considerable impact on the world of software – but it’s no hagiography.

The early chapters in the book take a friendly approach to Stallman’s personal idiosyncracies. Reading these chapters, it’s easy to develop a strong liking for this pioneering crusader. To my surprise, I found a lot of resonance between Stallman’s life experiences and, in smaller scale, my own; for example, we share backgrounds as prodigious mathematicians who were not afraid to be outsiders. (And it seems we’re both interested in life extension.)

The last few chapters provide a kind of balance, by highlighting some of the problems caused within the Free and Open Source movements by Stallman’s inflexibility, apparent micro-management, and under-developed project management skills.

The narrative in the book jumps around a lot, moving backwards and forwards in time all over the place. Some readers may find that distracting, but I liked it, since it helps to show the remarkable wholeness and integrity to Stallman’s conceptions.

The entire text of this book is available online at http://www.faifzilla.org/. Chapter 8 contains a stark example of the clash between the “quasi-religious” approach and the pragmatic one:

Stallman says competitive performance and price, two areas where free software operating systems such as GNU/Linux and FreeBSD already hold a distinct advantage over their proprietary counterparts, are red herrings compared to the large issues of user and developer freedom.“It’s not because we don’t have the talent to make better software,” says Stallman. “It’s because we don’t have the right. Somebody has prohibited us from serving the public. So what’s going to happen when users encounter these gaps in free software? Well, if they have been persuaded by the open source movement that these freedoms are good because they lead to more-powerful reliable software, they’re likely to say, ‘You didn’t deliver what you promised. This software’s not more powerful. It’s missing this feature. You lied to me.’ But if they have come to agree with the free software movement, that the freedom is important in itself, then they will say, ‘How dare those people stop me from having this feature and my freedom too.’ …”

…the underlying logic of Stallman’s argument – that open source advocates emphasize the utilitarian advantages of free software over the political advantages – remains uncontested. Rather than stress the political significance of free software programs, open source advocates have chosen to stress the engineering integrity of the hacker development model. Citing the power of peer review, the open source argument paints programs such as GNU/Linux or FreeBSD as better built, better inspected and, by extension, more trustworthy to the average user…

When an audience member asks if, in shunning proprietary software, free software proponents lose the ability to keep up with the latest technological advancements, Stallman answers the question in terms of his own personal beliefs. “I think that freedom is more important than mere technical advance,” he says. “I would always choose a less advanced free program rather than a more advanced nonfree program, because I won’t give up my freedom for something like that. My rule is, if I can’t share it with you, I won’t take it.”

Such answers, however, reinforce the quasi-religious nature of the Stallman message. Like a Jew keeping kosher or a Mormon refusing to drink alcohol, Stallman paints his decision to use free software in the place of proprietary in the color of tradition and personal belief. As software evangelists go, Stallman avoids forcing those beliefs down listeners’ throats. Then again, a listener rarely leaves a Stallman speech not knowing where the true path to software righteousness lies.

Now the nearest thing to a Symbian religion is the published list of our corporate values: Excellence, Innovation, Passion, Integrity, Collaboration, People. We take these values very seriously – as we do our vision – that Symbian OS will be the most widely used software platform on the planet.

Questions such as the extent of our adoption of open source, or usage of proprietary software, are, in the end, weighed up against that list of values. Open source will lead, we believe, to greater collaboration, and to more innovation. That’s a good reason to support it. But it’s not an end in itself.

Indeed, adopting selected open source principles is only one of the big change initiatives that are taking place in Symbian. As I’ve mentioned before, we’re also adopting selected principles of enterprise agile. What’s more, we’re looking forward to significantly closer inter-working between the development teams in Symbian and in S60, which will allow faster delivery of important new technology to the market. And last – but definitely not least – there’s a whole series of measures to enable improved user experience on Symbian-powered phones. The UI that’s on the just-announced Nokia 5800 XpressMusic device is a significant step in this direction.

1 October 2008

The student syndrome

Filed under: Agile, critical chain, Essay contest, predictability — David Wood @ 5:13 pm

Entries for Symbian’s 2008 Student Essay Contest have just closed. The deadline for submission of entries was midnight (GMT) on 30 September 2008.

The contest has been advertised since June. What proportion of all the entries do you suppose were submitted in the final six hours before the deadline expired? (Bear in mind that, out of a total competition duration of more than three months, six hours is about 1/400 of the available time.)

I’ll give the answer at the end of this article. It surprised me – though I ought to have anticipated the outcome. After all, for many years I’ve been telling people about “The Student Syndrome”.

I became familiar with the concept of the student syndrome some years ago, while reading Eliyahu Goldratt’s fine business-oriented novel “The Critical Chain“:

Like all Goldratt’s novels, Critical Chain mixes human interest with some intriguing ways of analysing business-critical topics. The ideas in these books had a big influence on the evolution of my own views about how to incorporate responsiveness and agility into large software projects where customers are heavily reliant on the software being delivered at pre-agreed dates.

Here’s what I said on the topic of “variable task estimates” in the chapter “Managing plans and change” in my own 2005 book “Symbian for software leaders“:

A smartphone project plan is made up from a large number of estimates for how long it will take to complete individual tasks. If the task involves novel work, or novel circumstances, or a novel integration environment, you can have a wide range of estimates for the length of time required.

It’s similar to estimating how long you will take to complete an unfamiliar journey in a busy city with potentially unreliable transport infrastructure. Let’s say that, if you are lucky, you might complete the journey in just 20 minutes. Perhaps 30 minutes is the most likely time duration. But in view of potential traffic hold-ups or train delays, you could take as long as one hour, or (in case of underground train derailments) even two hours or longer. So there’s a range of estimates, with the distribution curve having a long tail on the right hand side: there’s a non-negligible probability that the task will take at least twice as long as the individual most likely outcome.

It’s often the same with estimating the length of time for a task within a project plan.

Now imagine that the company culture puts a strong emphasis on fulfilling commitments, and never missing deadlines. If developers are asked to state a length of time in which they have (say) 95% confidence they will finish the task, they are likely to give an answer that is at least twice as long as the individual most likely outcome. They do so because:

  • Customers may make large financial decisions dependent on the estimate – on the assumption that it will be met;
  • Bonus payments to developers may depend on hitting the target;
  • The developers have to plan on unforeseen task interference (and other changes);
  • Any estimate the developers provide may get squashed down by aggressive senior managers (so they’d better pad their estimate in advance, making it even longer).

Ironically, even though such estimates are designed to be fulfilled around 95% of the time, they typically end up being fulfilled only around 50% of the time. This fact deserves some careful reflection. Even though the estimates were generous, it seems (at first sight) that they were not generous enough. In fact, here’s what happens:

  • In fulfilment of “Parkinson’s Law”, tasks expand to fill the available time. Developers can always find ways to improve and optimise their solutions – adding extra test cases, considering alternative algorithms and generalisations, and so forth;
  • Because there’s a perception (in at least the beginning of the time period) of there being ample time, developers often put off becoming fully involved in their tasks. This is sometimes called “the student syndrome”, from the observation that most students do most of the preparation for an exam in the time period just before the exam. The time lost in this way can never be regained;
  • Because there’s a perception of there being ample time, developers can become involved in other activities at the same time. However, these other activities often last longer than intended. So the developer ends up multi-tasking between two (or more) activities. But multi-tasking involves significant task setup time – time to become deeply involved in each different task (time to enter “flow mode” for the task). So yet more time is wasted;
  • Critically, even when a task is ready to finish earlier than expected, the project plan can rarely take advantage of this fact. The people who were scheduled for the next task probably aren’t ready to start it earlier than anticipated. So an early finish by one task rarely translates into an early start by the next task. On the other hand, a late finish by one task inevitably means a late start for the next start. This task asymmetry drives the whole schedule later.

In conclusion, in a company whose culture puts a strong emphasis upon fulfilling commitments and never missing deadlines, the agreed schedules are built from estimations up to twice as long as the individually most likely outcome, and even so, they often miss even these extended deadlines…

This line of analysis is one I’ve run through scores of times, in discussions with people, in the last four or five years. It feeds into the argument that the best way to ensure customer satisfaction and predictable delivery, is, counter-intuitively, to focus more on software quality, interim customer feedback, agile project management, self-motivated teams, and general principles of excellence in software development, than on schedule management itself.

It’s in line with what Steve McConnell says,

  • IBM discovered 20 years ago that projects that focused on attaining the shortest schedules had high frequencies of cost and schedule overruns;
  • Projects that focused on achieving high quality had the best schedules and the highest productivities.

Symbian’s experience over many years bears out the same conclusion. The more we’ve focused on achieving high quality, the better we’ve become with both schedule management and internal developer productivity.

As for the results of the student syndrome applied to the Symbian Essay Contest:

  • 54% of the essays submitted to the competition were received in the final six hours (approximately the final 1/400 of the time available)
  • Indeed, 16% of the essays submitted were received in the final 60 minutes.

That’s an impressively asymmetric distribution! (It also means that the competition judges will have to work harder than they had been expecting, right up to the penultimate day of the contest…)

29 September 2008

Market failure and mobile operating systems

Filed under: Economics, fragmentation, leadership, market failure — David Wood @ 9:57 pm

In seeking to talk about economics, and about market failure, I’m moving way outside my depth. There seem to be so many different viewpoints about economics, each appearing reasonably plausible to me (when I read them in isolation), yet all contradicting each other. It’s a tough subject! What one writer sees as a market failure, another writer sees instead as a failure of individual actors within that market – and so on.

However, one of my correspondents has made a series of thought-provoking comments about market failure in the particular field of mobile operating systems. I believe these comments are sufficiently unusual and also sufficiently intriguing, to deserve consideration by a wider audience – despite my reticence to broach the subject of economics. The comments arose in the responses to an earlier posting of mine, “De-fragmenting the mobile operating system space“. To quote from these responses:

Currently, mobile developers withstand very high development costs due to a very fragmented mobile ecosystem, meanwhile mobile OSes enjoy a much lower developing cost than they would if they had to built compatible OSes between versions: therefore, a de-fragmentation process would move developing costs from mobile developers to mobile OS developers, that is, mobile OS companies/foundations would have to internalize those costs.

But developing an OS with full source or binary compatibility between versions is an order of magnitude more expensive than building one with broken compatibility, and it gets worse with time and versions. Moreover, building a de-fragmented mobile OS requires committing considerable resources (people, money, time) in the present, sunk costs that must have positive expected returns in the future (at least to cover developing costs and money opportunity costs).

Will foundations/consortiums (Symbian, LiMo, OHA/Android), given their non-profit nature, carry these investments in the present to obtain stable software platforms in the future? As Adam Smith wrote, displaying good will and hope is not enough: mobile foundations/consortiums/companies committing resources in the present must charge higher prices in their future and profit handsomely from their risky investments, otherwise the effort will stop…

To paraphrase:

  • Economic incentives on individual mobile operating systems will lead these operating systems to diverge from each other;
  • This divergence will mean that application developers (and providers of middleware, etc) will suffer greater difficulties, because of having to spread their efforts across larger numbers of diverse mobile operating systems;
  • As things stand, no one who is in a position to actually do something to reduce the divergence of mobile operating systems, has a sufficient financial incentive to make that happen;
  • So we can actually expect things to get worse for application developers, rather than better.

(I’m over-simplifying what my correspondent actually says; see the original for the full argument.)

Tentatively, I have the following answers:

  • I believe that things will actually get better for application developers, rather than worse;
  • It’s my experience that major players in the mobile phone industry can, on occasion, take actions based on strategy rather than business case;
  • This requires strong self-discipline on the part of these companies, but it’s not unknown;
  • Action on strategic grounds becomes more likely, the more clearly the argument is made that the actions that make sense in the short-term are actually detrimental to longer term interests;
  • The other key factor in this decision is whether the various actors can have a high degree of confidence in at least the medium-term viability of the software system they’re being asked to collectively support.

So, in line with what I’ve argued here, what we need to do is to keep on pushing (in creative and diverse ways) the merits of the case in favour of de-fragmenting mobile operating systems – and to keep on highlighting the positive features of the mobile operating systems (such as Symbian OS) that are most likely to enable at least medium-term success for the whole industry.

Incidentally, one big contribution that the shareholders and customers of Symbian are taking, towards that end, is to agree to standardise on S60 as the UI framework for the future. They’ve taken that decision, even though both UIQ and MOAP(S) have much to commend them as alternative UI frameworks on top of Symbian OS. They’ve taken that decision for the greater common good. New phones based on the UIQ and MOAP(S) UI frameworks will continue to appear for a while, during a transitional period, but the Symbian Foundation platform software is standardising on the S60 framework. Elements of both UIQ and MOAP(S) will be available inside the Symbian Foundation platform, but the resulting system will be compatible with S60, not UIQ or MOAP(S). That’s a decision that will bring some pain, but the shareholders and customers have been able to support it because:

  • S60 is now (in contrast to the earlier days) sufficiently flexible and mature, to support the kinds of user experience which previously were available only via UIQ or MOAP(S);
  • Indeed, S60 now has flexibility to support new types of UI experiences, whilst maintaining common underlying APIs;
  • Distribution of S60 will pass out of the hands of Nokia, into the hands of the independent Symbian Foundation.

I also believe that the disciplines of binary compatibility that have been built up in Symbian, over several years, are significantly reducing the difficulties faced by developers of add-ons and plug-ins for Symbian software. Because of this discipline, it now costs us less to maintain compatibility across different versions of our software. It’s true that some practical issues remain here, with surprising incompatibilities still occasionally arising in parts of the software stack on Symbian-powered phones other than Symbian OS itself. But progress is being made – and the leading nature of the Symbian platform will become clearer and clearer.

To finish, I’ll give my response to one more comment:

Samsung is gaining market share and producing S60 devices. Let’s suppose that Samsung starts snatching portions of market share from Nokia, do you really think anyone believes that Nokia would refrain from intentionally breaking compatibility to derail Samsung, if that would be necessary?

I can see that there might be some temptation towards such a behaviour, inside Nokia. But I don’t see that the outcome is inevitable. Nokia would have to weigh up various possible scenarios:

  • Symbian Foundation quality assurance tests will notice the compatibility breaks, and will refuse to give Symbian accreditation to this changed software;
  • The other licensees could create their own fork of the software (which would have official endorsement from the Symbian Foundation) and build up a lot of momentum behind it.

Instead, Nokia – like all users of Symbian Foundation software – should be inclined to seek differentiation by providing their own unique services on top of or alongside Symbian platform software rather than by illicitly modifying the platform software itself. That’s a far better way to deploy skilled software engineers.

« Newer PostsOlder Posts »

Blog at WordPress.com.