Showing posts with label developer experience. Show all posts
Showing posts with label developer experience. Show all posts

Monday, December 15, 2008

Symbian Signed basics

It's not just Symbian that runs into some criticism over the operation of application certification and signing programs. (See eg the discussion on "Rogue Android apps rack up hidden charges".)

This is an area where there ought ideally to be a pooling of insights and best practice across the mobile industry.

On the other hand, there are plenty of conflicting views about what's best:
  • "Make my network more secure? Yes, please!"
  • "Make it easier to develop and deploy applications? Yes, please!"
If we go back to basics, what are the underlying requirements that lead to the existence of application certification and signing schemes? I append a list of potential requirements. I'll welcome feedback on the importance of various items on this list.

Note: I realise that many requirements in this list are not addressed by the current schemes.

a. Avoiding users suffering from malware

To avoid situations where users suffer at the hands of malware. By "malware", I mean badly behaved software (whether the software is intentionally or unintentionally badly behaved).

Examples of users suffering from malware include:
  1. Unexpectedly high telephone bills
  2. Unexpectedly low battery life
  3. Inability to make or receive phone calls
  4. Leakage without approval of personal information such as contacts, agenda, or location
  5. Corruption of personal information such as contacts, agenda, or location
  6. Leaving garbage or clutter behind on the handset, when the software is uninstalled
  7. Interference with the operation of other applications, or other impact to handset performance.
b. Establishing user confidence in applications

To give users confidence that the applications they install will add to the value of the handset rather than detract from it.

c. Reducing the prevalence of cracked software

To make it less likely that users will install “cracked” free versions of commercial applications written by third parties, thereby depriving these third parties of income.

d. Avoiding resource-intensive virus scanners

To avoid mobile phones ending up needing to run the same kind of resource-intensive virus scanners that are common (and widely unloved) on PCs.

e. Avoiding networks suffering from malware

To avoid situations where network operators suffer at the hands of malware or unrestricted add-on applications. Examples of network operators suffering from such software include:
  1. Having to allocate support personnel for users who encounter malware on their handsets
  2. The network being overwhelmed as a result of data-intensive applications
  3. Reprogrammed cellular data stacks behaving in ways that threaten the integrity of the wireless network and thereby invalidate the FCC (or similar) approval of the handset
  4. DRM copy protected material, provided or distributed by the network operator, being accessed or copied by third party software in ways that violate the terms of the DRM licence
  5. Revenue opportunities for network operators being lost due to alternative lower-cost third party applications being available.
f. Keeping networks open

To prevent network operators from imposing a blanket rule against all third party applications, which would in turn:
  • Limit the innovation opportunities for third party developers
  • Limit the appearance of genuinely useful third party applications.
g. Avoiding fragmentation of signing schemes

To avoid network operators from all implementing their own application certification and approval schemes, thereby significantly multiplying the effort required by third party developers to make their applications widely available; far better, therefore, for the Symbian world to agree on a single certification and approval mechanism, namely Symbian Signed.

Friday, December 5, 2008

All Carbide C++ editions are now free of charge

One of the persistent "niggle points" with Symbian OS C++ development has been that developers had to pay significant amounts of money to purchase those features of the Carbide integrated developer environment (IDE) which provided some highly desired functionality such as on-target debugging.

So there's great news today: Carbide v2 now has ZERO licence fee for all editions:

Carbide.c++ 2.0 is now available with support for the latest technologies based on Symbian OS, such as S60 5th Edition and the Qt platform, and it offers significant improvements throughout.

In addition to the technical improvements, Carbide.c++ 2.0 is now available free of charge.

This has already been picked up by various bloggers, including Lucian Tomuta - Carbide.c++ - new and free (yes, like in "free beer") - and Simon Judge - Carbide.c++ 2.0 Free of Charge.

The cost reduction isn't the only piece of good news about this new version. As the Carbide product pages emphasise:
Improvements throughout Carbide.c++ have been designed to make developing Symbian OS C/C++ applications quicker and easier. These improvements include speed and accuracy in code completion, faster response in the Performance Investigator reporting tools, and new connection management for on-device debugging.
This news deserves to run and run.

Monday, November 3, 2008

Mobile 2.0 keynote

Earlier today, I had the privilege to deliver the opening keynote at the Mobile 2.0 event in San Francisco. This posting consists of a copy of the remarks I prepared.

The view from 2013

My topic is Open Source, as a key catalyst for Mobile Innovation 2.0.

Let’s start by fast forwarding five years into the future. Imagine that we are gathered for the 2013 “Mobile 2.0” conference – though the name may have changed by that time, perhaps to Mobile 3.0 or even Mobile 4.0 – and perhaps the conference will be taking place virtually, with much less physical transportation involved.

Five year into the future, we may look back at the wonder devices of today, 2008: the apparently all-conquering iPhone, the Android G1, the Nokia E71, the latest and greatest phones from RIM, Windows Mobile, and so on: all marvellous devices, in their own ways. From the vantage point of 2013, I expect that our thoughts about these devices will be: “How quaint! How clunky! How slow! How did we put up with all the annoyances and limitations of these devices?”

This has happened before. When the first Symbian OS smartphones reached the market in 2002 – the Nokia 7650, and the Sony Ericsson P800 – they received rave reviews in many parts of the world. These Symbian smartphones were celebrated at the time as breakthrough devices with hitherto unheard of capabilities, providing great user experiences. It is only in retrospect that expectations changed and we came to see these early devices as quaint, clunky, and slow. It will be the same with today’s wonder phones.

Super smart phones

That’s because the devices of five years time will (all being well) be so much more capable, so much slicker, so much more usable, and so much more enchanting than today’s devices. If today’s devices are smart phones, the devices of 2013 will be super smart phones.

These devices will be performing all kinds of intelligent analysis of data they are receiving through their sensors: their location and movement sensors, their eyes – that is, their cameras – and their ears – that is, their always-on recording devices.

They’ll also have enormous amounts of memory – both on-board and on-network. Based on what they’re sensing, and on what they know, and on their AI (artificial intelligence) algorithms, they’ll be guiding us and informing us about all the things that are important to us. They’ll become like our trusted best friends, in effect whispering insight into our ears.

We can think of these devices as like our neo neo-cortex. Just as primates and especially humans have benefited from the development of the neo-cortex, as the newest part of our brains in evolutionary terms, so will users of super smartphones benefit from the enhanced memory, calculation powers, and social networking capabilities of this connected neo neo-cortex.

In simple terms, these devices can be seen as adding (say) 20 points to our IQs – perhaps more. If today’s smartphones can make their users smarter, the super smartphones of 2013 can make their users super smart.

Solving hard problems

That’s the potential. But the reality is that it’s going to be tremendously hard to achieve that vision. It’s going to require an enormously sophisticated, enormously capable, mobile operating system.

Not everyone shares my view that operating systems are that important. I sometimes hear the view expressed that improvements in hardware, or the creation of new managed code environments, somehow reduce the value of operating systems, making them into a commodity.

I disagree. I strongly disagree. It's true that improvements in both hardware and managed code environments have incredibly important roles to play. But there remain many things that need to be addressed at the operating system level.

Here are just some of the hard tasks that a mobile operating system has to solve:
  • Seamless switching between different kinds of wireless network – something that Symbian’s FreeWay technology does particularly well;

  • Real-time services, not only handling downloads of extremely large quantities of data, but also manipulating that data in real time – decompressing it, decrypting it, displaying it on screen, storing it in the file system, etc;

  • All this must happen without any jitter or delay – even though there may be dozens of different applications and services all talking at the same time to several different wireless networks;

  • All this rich functionality must be easily available to third party developers;

  • However, that openness of developer access must coexist with security of the data on the device and the integrity of the wireless networks;

  • And, all this processing must take place without draining the batteries on the device;

  • And without bamboozling the user due to the sheer scale and complexity of what’s actually happening;

  • And all this must be supported, not just for one device, but in a way that can be customised and altered, supporting numerous different form factors and usage models, without fragmenting the platform.

Finally, please note that all this is getting harder and more complex: every year, the amount of software in a top-range phone approximately nearly doubles. So in five years, there’s roughly up to 32 times as much software in the device. In ten years, there could be 1000 times as much software.

Engaging a huge pool of productive developers

With so many problems that need to be solved, I will say this. The most important three words to determine the long-term success of any mobile operating system are: Developers, Developers, Developers. To repeat: the most important three words for the success of the Symbian platform are: Developers, Developers, Developers.

We need all sorts and shapes and sizes of developers – because, as I said, there are so many deep and complex problems to be solved, as the amount of software in mobile phone platforms grows and grows.

No matter how large and capable any one organisation is, the number of skilled developers inside that organisation is only a small fraction of the number outside. So it comes down to enabling a huge pool of productive and engaged developers, outside the organisation, to work alongside the original developers of the operating system – with speed, creativity, skill, and heartfelt enthusiasm. That’s how we can collectively build the successful super smart phones of the future.

Just two weeks ago, the annual Symbian Smartphone Show put an unprecedented focus on developers. We ran a Mobile DevFest as an integral part of the main event. We announced new developer tools, such as the Symbian Analysis Workbench. We will shortly be releasing new sets of developer APIs (application programming interfaces) in new utility libraries, to simplify interactions with parts of the Symbian programming system that have been found to cause the most difficulty – such as text descriptors, two phase object construction and cleanup, and active objects.

The critical role of open source

But the biggest step to engage and enthuse larger numbers of developers is to move the entire Symbian platform into open source.

This will lower the barriers of entry – in fact, it will remove the barriers of entry. It will allow much easier study of the source code, and, critically, much easier participation in the research and creation of new Symbian platform software. We are expecting a rapid increase in collaboration and innovation. This will happen because there are more developers involved, and more types of developers involved.

That’s why the title of my talk this morning is “Open Source: Catalyst for Mobile Innovation 2.0”. The “2.0” part means greater collaboration and participation than ever before: people not just using the code or looking at the code, but recommending changes to it and even contributing very sizeable chunks of new and improved code. The Open Source part is one of the key enablers for this transformation.

Necessary, but not sufficient

However, Open Source is only one of the necessary enablers. Open Source is a necessary but not sufficient ingredient. There are two others:

  1. A stable and mature software base, with reliable processes of integration, which I’ll talk more about in a moment;

  2. Mastery of the methods of large-scale Agile development, allowing rapid response to changing market needs.
Fragmentation inside an operating system

Here’s the problem. Fragmentation is easy, but Integration is hard.

Fragmentation means that different teams or different customers pull the software in different directions. You end up, in the heat of development in a fast-moving market, with different branches, that are incompatible with each other, and which can’t be easily joined together. The result is that solutions created by developers for one of these branches, fail to work on the other branches. A great deal of time can be wasted debugging these issues.

Here, I speak from bitter experience. During the rapid growth days of Symbian, we lost control of aspects of compatibility in our own platform – despite our best efforts. For example, we had one version called 7.0s and another called 7.0, but lots of partners reported huge problems moving their solutions between these two versions. Because of resulting project delays, major phones failed to come to the market. It was a very painful period.

Nowadays, in the light of our battle-hardened experience, Symbian OS is a much more mature and stable platform, and it is surrounded and supported by an ecosystem of very capable partners. In my view, we have great disciplines in compatibility management and in codeline management.

The result is that we have much better control over the integration of our platform. That puts us in a better position to handle rapid change and multiple customer input. That means we can take good advantage of the creativity of open source, rather than being pulled apart by the diverse input of open source. Other platforms may find things harder. For them, open source may bring as many problems as it brings solutions.

Fragmentation across operating systems

This addresses the fragmentation inside a single operating system. But the problem remains of fragmentation across different operating systems.

Although competition can be healthy, too many operating systems result in developers spreading their skills too thinly. The mobile industry recognises that it needs to consolidate on a smaller number of mobile operating systems moving forwards. The general view is that there needs to be consolidation on around three or (at the most) four advanced mobile operating systems. Otherwise the whole industry ends up over-stretched.

So, which will be the winning mobile operating systems, over the next five years? In the end, it will come down to which phones are bought in large quantities by end users. In turn, the choices offered to end users are strongly influenced by decisions by phone manufacturers and network operators about which operating systems to prefer. These companies have four kinds of issues in their minds, which they want to see mobile operating systems solve:

  • Technical issues, such as battery life, security, and performance, as well as rich functionality;

  • Commercial issues, such as cost, and the ability to add value by differentiation;

  • Political issues, in which there can be a perception that the future evolution of an operating system might be controlled by a company or organisation with divergent ulterior motivations;

  • Reliability issues, such as a proven track record for incrementally delivering new functionality at high quality levels in accordance with a pre-published roadmap.

A time for operating systems to prove themselves

Again, which will be the winning operating systems, over the next five years? My answer is that is slightly too early to say for sure. The next 12-18 months will be a time of mobile operating systems proving themselves. Perhaps three or four operating systems will come through the challenge, and will attract greater and greater support, as customers stop hedging their bets. Others will be de-selected (or merged).

For at least some of the winning smartphone operating systems, there will be an even bigger prize, in the subsequent 2-3 years. Provided these operating systems are sufficiently scalable, they will become used in greater and greater portions of all phones (not just smartphones and high-end feature phones).

Proving time for the Symbian Foundation platform

Here’s how I expect the Symbian platform to prove itself in the next 12-18 months. Our move to open source was announced in June this year, and we said it could take up to two years to complete it. Since then, planning has been continuing, at great speed. Lee Williams, current head of the S60 organisation in Nokia, and formerly of Palm Inc and Be Inc, has been announced as the Executive Director of the Symbian Foundation.

The Foundation will make its first software release midway through the first half of 2009. Up till that point, access to internal Symbian OS source code is governed by our historical CustKit Licence and DevKit Licence. There’s a steep entry price, around 30,000 dollars per year, and a long contract to sign to gain access, so the community of platform developers has been relatively small. From the first Symbian Foundation release, that will change.

The source code will be released under two different licenses. Part will be open source, under the Eclipse Public Licence. This part has no licence fee, and is accessible to everyone. The other part will be community source, under an interim Symbian Foundation Licence. This is also royalty free, but there is a small contract that companies have to sign, and a small annual fee of 1,500 dollars. I expect a large community to take advantage of this.

This interim community source part will diminish, in stages, until it vanishes around the middle of 2010. By then, everything will be open source. We can’t get there quicker because there are 40 million lines of source code altogether, and we need to carry out various checks and cleanups and contract renegotiations first. But we’ll get there as quickly as we can.

There’s one other important difference worth highlighting. It goes back to the theme of reducing fragmentation. Historically, there have been three different UIs for Symbian OS: S60, UIQ, and MOAP(S) used in Japan. But going forwards, there will only be one UI system: S60, which is nowadays flexible enough to support the different kinds of user models for which the other UI systems were initially created.

To be clear, developers don’t have to wait until 2010 before experimenting with this software system. Software written to the current S60 SDK will run fine on these later releases. We’ll continue to make incremental compatible releases throughout this time period.

What you should also see over this period is that the number of independent contributors will increase. It won’t just be Nokia and Symbian employees who are making contributions. It will be like the example of the Eclipse Foundation, in which the bulk of contributions initially came from just one company, IBM, but nowadays there’s a much wider participation. So also for the Symbian Foundation, contributions will be welcome based on merit. And the governance of the Foundation will also be open and transparent.

The view from 2013

I’ll close by returning to the vision for 2013. Inside Symbian, we’ve long had the vision that Symbian OS will be the most widely used software platform on the planet. By adopting the best principles of open source, we expect we will fulfil this vision. We expect there will in due course be, not just 100s of millions, but billions of great devices, all running our software. And we’ll get there because we’ll be at the heart of what will be the most vibrant software ecosystem on the planet – the mobile innovation ecosystem. Thank you very much.

Saturday, October 25, 2008

"Symbian too old" - a mountain worth climbing

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!

Thursday, October 9, 2008

In search of software glamour

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!

Saturday, July 26, 2008

Naming the passion killers

Passion makes a big difference. Posters all over Symbian premises (and on our websites) boldly declare that we "are at our best when we... love working for Symbian, drive to succeed, believe in ourselves, and take pride in what we do..."

That's the Symbian description of the practical importance of passion. Along with people, collaboration, integrity, collaboration, and excellence, passion is one of Symbian's six declared corporate values.

Like many other companies, Symbian each year carries out an internal employee satisfaction survey. The survey is conducted by an external agency, who provide us with information on how our results compare with broadly similar surveys held by other high-tech companies. In the most recent survey, aggregate Symbian employee views demonstrated strong Passion (80% positive rating). Of the six values, this one had the strongest support of all. The score also came in notably higher than the benchmark. In general, our employees enjoy working here, and put their hearts into their activities.

In some ways, "passion" is a longer word for "fun". The good news is that, on the whole, Symbian employees enjoy and value their work. The bad news, however, is as I covered in my previous blog posting, "Symbian, just for fun": many developers outside the company have a less positive feeling about working with Symbian OS software. They may persevere with writing Symbian OS software because their employer pays them to do so, and because of the somewhat attractive prospect of a share in a growing 200M+ unit market, but they often lack the kind of inner motivation and satisfaction that can put them into a super-productive state of "flow".

The encouraging responses I've received to that posting (both via email and online) stengthen my view that it's vitally important to identify understand the inhibitors to developer flow - the killers of Symbian passion. That's a big topic, and I suspect I'll be writing lots more on this topic in the months ahead. But let's make a start.

Lack of clarity with Symbian Signed

The experience of my correspondent ilgaz is probably quite common:

I think the issue here is , we (even technical users) don't really get what should be signed, what shouldn't.
Ilgaz wanted to use a particular third party application (Y-Tasks by Dr Jukka), and thought that it would first need to be signed with a developer certificate. That proved to be an awkward process. However, it turns out that the application is ready to use (for many purposes) without any additional signing. So the attempt to get a developer certificate was unnecessary.

Some might say that Symbian Signed itself is intrinsically a passion killer. I disagree - as I've argued elsewhere. But what does kill passion here is the confusion about the rules for Symbian Signed. You can't expect flow from confusion. I see six causes for this confusion:
  1. Different devices implement Symbian Signed in different ways. Some devices helpfully support a setting to allow the installation of self-signed apps, as well as Symbian Signed ones. Others do not;
  2. Different operators have different views about what kinds of applications they want to allow on their phones;
  3. The subject of permissions for the different capabilities of different pieces of software is intrinsically complex;
  4. The operation of Symbian Signed has changed over time. It's great that it has improved, but some people still remember how it used to work, and that confuses them;
  5. "Once bitten, twice shy": past bad experiences sometimes over-colour present views on the topic;
  6. A small number of people seem to be motivated to spread particularly bad vibes about Symbian Signed.
In this situation, we can't expect to reverse all the accumulated mistrust and apprehension overnight. But the following steps should help:
  • Continue to seek to improve the clarity of communications;
  • Be alert to implementation issues (eg an overworked website - as experienced some months back) and seek to address them quickly;
  • Avoid a divergence of implementations of different application approval schemes by different network operators.
It's my profound hope that the attractive statements of common aims of openness, made by the various parties supporting the Symbian Foundation, will translate into a unity of approaches towards application approval schemes.

Lack of reprogrammable devices

Another correspondent, puterman, points out:
Getting people to develop apps just for fun is one thing, but getting them to hack the actual OS is another thing. For that to be of interest, there have to be open devices available, so that the developers can actually see their code running.
I agree with the importance of quick feedback to changes made in your software. If you change the lower levels of the software, you'll need to be able to re-program an actual device.

The Linux community shows the way here, with the Trolltech Greenphone and the FIC OpenMoko Neo1973 and FreeRunner devices. It's true that there have been issues with these devices. For example, Trolltech eventually discontinued the Greenphone, and the FIC devices have proved quite hard to purchase. However, as the Symbian Foundation software becomes increasingly open source, we can reasonably expect the stage-by-stage appearance of phones that are increasingly end-user re-programmable.

Lack of well-documented API support for "interesting" features of a phone

Marcus Groeber makes a series of insightful points. For example,
One of the main things mobile developers would want to do is make use of the unique features of a mobile phone (connectivity, built in camera, physical interaction with the user). However, it is those area where documentation is still most patchy and API support is erratic (CCameraAdvancedSettings anyone?).

In my view, this aspect of mobilie development should be acknowledged to a much greater degree, and the documentation efforts focused accordingly: If there is a feature in a built-in app of the phone, chances are that a developer will want to try and improve on that. Can s/he?...

I believe that these moments of frustration - finding an API that looks useful in the SDK docs, then spending an evening writing an application that uses it, only to get KErrNotSupported in the end - is probably among the chief reasons for people abandoning their pet projects...

True, many "fun" programmers (me included) don't want to wade through tons of documentation and whitepapers before writing their first proof-of-concept - but to me this makes it even more important that the existing documentation is streamlined, accurate and compact.
Improving our developer documentation remains one of the top-priority goals at Symbian. In parallel, we're hoping that additional publications from Symbian Press (and others) will help to guide developers more quickly through the potential minefields of APIs for the more interesting functionality. The book "Quick Recipes on Symbian OS" (which I mentioned at the end of an earlier posting, "Mobile development in a hurry") is intended to address this audience.

Of course, as Simon Judge points out, sometimes it's not a matter of improving the documentation of existing APIs. Sometimes, what's required is to improve the APIs themselves.

API awkwardness across the UI-OS boundary

The last passion-killer I'll mention for now is another one raised by Marcus Groeber:
most of the "interesting" bits of developing for devices actually come from the licensee's layers of API (in my case, mostly S60), and I believe it is here where there is most work to be done, as well as the interface between the two...

The ad-hoc-ish nature of the S60 UI, which seems to require a lot of experimenting and guesswork for developing even very simple screen layouts that mimic closely what is already present in the phone in dozens of places. Even after years of development, I still consider the CAkn and CEik listbox classes a jungle.
As one of the original designers of the CEik listbox class hierarchy (circa 1995-6) perhaps I should keep my head low at this point! (Though I can claim little direct credit - or blame - for the subsequent evolution of these classes.)

However, the bigger point is the following: both Symbian and S60 have recognised for many years that the separation of the two software development teams into two distinct companies has imposed drawbacks on the overall design and implementation of the APIs of functionality that straddles the two domains. Keeping the UI and the OS separate had some positives, but a lot of negatives too. Assuming the acquisition by Nokia of Symbian receives regulatory approval, the resulting combined engineering teams should enable considerably improved co-design. The new APIs will, hopefully, inspire greater fascination and approval from those who use them!

Wednesday, July 23, 2008

Symbian, just for fun

"There are two kinds of OSS developers: the guys who do things for fun, and the guys who do OSS because they are paid to do so. In order for an open source project to really flourish and take over the world, you need both."
These comments were made a few days ago by Janne Jalkanen of Nokia, speaking in a personal capacity. I think Janne is competely right. My own view is that the only reliable way for the Symbian Foundation software to become the most widely used software platform on the planet, is if that software also becomes the most widely liked software platform on the planet.

The two kinds of OSS developers aren't completely distinct. Ideally the ones who are paid by their company to work on the software should also have a strong inner desire to do that work - to go the extra mile out of the sheer enjoyment and fascination they get from that software.

I've seen that kind of deep enthusiasm for software many times in my life. I first ventured onto online community discussion groups in the early 1990s, using the login name "dw2" on the CIX (Compulink Information eXchange) bulletin boards. The Psion devices of that time - running a 16-bit precursor to Symbian OS - could be programmed using an interpreted language called OPL. Hobbyists made increasingly creative use of the possibilities of that language, creating some highly impressive games, serviceable business applications, alternative personal information management functionality, and lots more besides. I was drawn into providing support and encouragement to this burgeoning community. Plucking an example at random from September 1992 from my archives, here's a reply I posted to someone who had been pushing the envelope of OPL functionality:

Access to C routines from Opl

I don't suppose it'll cause any harm to pre-announce something that Psion will shortly make available to Series3 Opl programmers. Namely a mechanism to access functionality written in a C library, from Opl. What will be possible is as follows:

  • Someone provides some C functionality in a so-called DYL library
  • Opl programs can hook into this functionality by means of the LibSend operating system service (CALL ($cf)).
Psion will make some suitable DYLs available, and it will be up to third parties to provide other general or specific DYLs. For example, in a hypothetical company writing software for the S3, out of a team of say six programmers, only one would need to understand C. All routine coding could be done in Opl, with only the performance-critical parts being done in C (together with a few parts that are technically out of the reach of pure Opl).

Even before you (BobG) raised this subject, Psion were working on a specific DYL to quicksort the index of a DBF file.

Regards, DavidW


That was 1992, when many enthusiasts were happy to while away their free time programming devices powered by EPOC16. Fast forward again to 2008. Janne goes on to say,
The problem with Symbian is that very, very few people touch it for fun. So I believe that while we can open source it, it is going to be very difficult to get people participate out of their own free will, unless we are prepared to make very serious refactorings to the entire system.

My first instinct is to disagree with Janne here. I'd love to list lots of people I know who do seem to enjoy developing Symbian software, "just for fun". For example,

  • Python on S60 can be a real joy to use - and supports lots of extensions. (In many ways, Python is for Symbian OS in 2008 what OPL was for EPOC16 back in the 1990s.)
  • The forthcoming new Symbian graphics architecture ("ScreenPlay") and IP networking architecture ("FreeWay") are full of interesting software development opportunities
  • The PIPS libraries hide away many of the idiosyncracies of native Symbian C++ development, and can increase the pleasure of porting certain types of applications to Symbian devices.

However, as Mike Rowehl rightly reminds all would-be Symbian blogging enthusiasts - like me! - the first duty of a blogger is to listen, rather than to speak:

I’m not saying that Nokia doesn’t have market share, I’m saying they don’t have developer mindshare and they haven’t captured the attention of new entrants. How often do you hear about people “fooling around with developing for Symbian” just for fun in their free time? I’ve attended developer focused events in a number of different areas and I’ve heard that very infrequently. Compare that to the number of times you run across people fooling around with iPhone or Android SDKs (or even Maemo for that matter). I’m filtering out all the Silicon Valley events cause we’re weird over here. But even of events in others areas - developers area paying way more attention to the other platforms. You can argue that all you want but it won’t go away, I’m just telling you what I hear. Do with it what you want. If you want to deny it though, you’ve already lost really.

And I can't deny that, as I search through the blogosphere and developer forums, I find the number of postings that are negative about the the developer experience of Symbian and S60 kits significantly exceeds those that express heart-felt enjoyment with the experience. As much as I can find reasons to discount individual postings, I can't discount the overall weight of comments by such a diverse group of writers.

So all I can say is the following:

  • I see lots of API improvement projects inside the Symbian labs - such as the experimental forthcoming ZString class alternative to text descriptors, and the proposed RAll utility classes for simplified resource management - which should be warmly received by a wide audience
  • I believe Symbian's developer tools and documentation have improved significantly over the last few years, and are continuing to make big leaps forward (but the impressions some developers hold towards these topics is unduly negatively coloured by their past bad experiences with older tools or documentation)
  • A more transparent approach to planning and experimentation inside Symbian's development halls - as befits a switch to open source development - will generate more good ideas (and even some good will...)
  • Experimentation and quick starts on Symbian development projects will become easier.

(I also believe, by the way, that developers' enthusiasm for their experience on other platforms will decline, unless these other platforms learn to cope with some hard disciplines like binary compatibility and SDK quality control, as their market success grows. For related comments, see "The emperor's new handset".)

I close by making a commitment: improved developer experience will be central to the goals of the Symbian Foundation. If the number of people who develop for Symbian "just for fun" doesn't increase substantially, the Foundation will have failed in its objectives.