Ari Jaaksi is head of open source software operations at Nokia, and is responsible for Nokia's N770/N800 and maemo.org initiatives. When Nokia developed the software platform for the N770 internet tablet, they determined early on to use as much open source software as was feasible to deliver the device. In a white paper on Ari's blog, he details the early learnings at Nokia around open source and product delivery.
The concise 10 pages is stunning and worth the read in its entirety. Nokia worked with a Debian 2.6 kernel, GNOME, the Hildon framework, and D-Bus to name a few open source components. Here's just a sampling of some of the observations:
On working in communities:
We used existing open sourced components such as the gnuchess chess game engine, bzip2 data compressor, id3lib for manipulating ID3v1 and ID3v2 tags in digital audio files, and many more as such, whenever that was possible. The bigger the component or subsystem was, the better. When possible, we reused an entire subsystem and subsystem architectures, such as GNOME [GNOME 2006] and Debian [Debian 2006]. Instead of separate components we reused architectural blocks that already integrate several independent components.
In several cases we sponsored the development of existing components, such as the Linux kernel, DBUS, GNOME-VFS, GTK+, GStreamer, and OBEX to make them better meet our requirements. The additional work was needed especially in the areas of UI and usability, power management, performance, and memory management. Our engineers worked directly with communities participating development projects. We also hired and asked developers within the communities to enhance components based on our needs.
On cost savings:
The biggest cost savings came from the utilization of already available components. We utilized several free components and subsystems as such, with no modifications.
We also improved several components to better meet our requirements. Such improvement is cheaper than creating the needed functionality from scratch.
Some 2/3 of the code of the Nokia 770 is licensed under an open source license. These components made it possible for us to build the software cheaper than we could have done using closed and proprietary technologies.
On code quality:
If we compare the code from open source to the code developed by us, our conclusion is that open source is of better quality. We have more bugs and problems in the Nokia developed code. This is only natural because the majority of the Nokia code is build from scratch and is thus very young. Open source code, on the other hand, has mostly been used by others already. They have fixed the most severe errors already before we started to use the code.
If we compare open source code to commercial components used on our platform, the quality difference is not that obvious. The commercial components have typically been used by others, too. That has improved their quality.
On engineering flexibility:
Open source is flexible when we needed to fix a problem or change functionality. We often requested bug fixes or modifications to the commercial closed components on our platform. If the vendors didn’t have the capacity or will to fix the problem on time, we had few options. We could not fix problems ourselves because the companies using closed source didn’t want us to access their source code. With open source components, though, we fixed bugs yourself, hired somebody else to fix them, or worked with the communities for the modifications. We thus had many options available, and in most cases we managed to fix the problems at hand. The free access to the code and to the developers improved the quality of open source originated components within the final product.
On software licensing:
Software licensing is often a complicated and time consuming process. It requires a lot of negotiations between the licenser and the licensee. Based on our experience, an average in-licensing process for a software component takes 6 – 12 months. It is only then when you know if you can really use the component in your project or whether you need to find other solutions.
Licensing is simpler with open source. The licensor has already done the most of the due diligence work in advance. In most cases, the licensor keeps the copyright, doesn’t give any exclusivity, and gives the licenser full right to use the component any way needed. At the financial side, licenser has decided that the code is free, but the licenser may offer support or engineering services for money. Nothing prevents the licensor to go elsewhere for help, if so needed.
All the source code is available for the licensor to study and evaluate. The licensor can assess the community, companies, and available hackers supporting the technology in question. Also, the licensor can talk to others without worrying about trade secrets.
Open source simplifies and accelerates software licensing, and reduces technology and quality risks. Instead of negotiation for months, the technical work can start immediately.
On confidentiality and the open source community:
We worked intensively with communities already before we announced the Nokia 770 Internet Tablet. Open source approach requires openness and information sharing during development. A high publicity launch, on the other hand, is the way to introduce consumer products to the public and you do not want to reveal the products before the launch date. There is thus a potential conflict between the open source openness and product launch secrecy.
The credentials, work, and history of open source hackers are open for everybody to see. The hackers typically want to work with interesting things also in the future. Therefore, they don’t want to become famous for jeopardizing somebody else’s project and misusing their trust. Thus, openness and open source can actually be much stronger bond than any NDA or monetary sanction one can put on an individual or a company.
Based on our experiences, we can combine open communication and product confidentiality. We had no information leakage prior to the commercial product announcements, although we had had tens of developers working on the software with us. For some of the developers, we had told very detailed information about the forthcoming product. Developing products in open source and yet maintain the confidentiality of the product plans and roadmaps was possible for us.
He further outlines some of the challenges of working in communities, managing the licenses, and where new costs showed up in the project, but summarizes:
Our experiences demonstrate that open source technologies and development model suit very well for such devices. We created the product in shorter time and with lesser resources that we have managed to develop other products utilizing proprietary software. In essence, open source offers time and cost savings in a form of readily available components and subsystems, available developers, and effective development model.
The one interesting thing he doesn't mention: the lack of royalties paid to a Microsoft or Symbian, but then this is a paper about open source software. As the Asian markets open up, a billion handsets in China won't translate into a billion royalty payments for the OS vendors. When that amount of money is at stake, experiments like this one are critical to getting the open source engineering model right to save Nokia billions of dollars long term.
I've thought the Nokia 770 was cool since Mikko handed me his to explore. The slides to Ari's original presentation on the N770 development are here. Ari's paper is a fabulous contribution describing how a large company can engage in open source communities. Ari maintains a blog that is also well worth tracking.
Enjoy!
I want one...
Posted by: Brian Aker | 29 June 2007 at 18:24