Dr. Ari Jaaski, Nokia's director of open source, recently authored a paper titled "Building consumer products with open source," (pdf here, article here) which after reviewing, I consider to be a noteworthy piece about the process of integrating open source software into the consumer product engineering life cycle.
It can be submitted as fact that open source already is playing a significant role in cutting the costs and increasing the efficiency of product delivery. Yet there are very few concise narratives which can detail how this is achieved, Dr. Jaaski's paper is one such. Below are some of the more luminous points touched on by Dr. Jaaski:
The Nokia 770 team's strategy towards utilizing open source:
We used open source extensively in the creation of the Nokia 770. We favored components that were developed by active communities and already used by many. Thus, instead of an embedded version of a component, we rather used a mainstream desktop component when possible.
The software is built atop the Linux 2.6 kernel (directly from kernel.org), relying on the Debian distribution as a guide. Drawing from kernel.org provided the Nokia team with the most recent technology and a straight shot into the open source community.
Efficiency gains and cost savings:
The biggest cost savings came from the utilization of already available components.
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.
Leveraging and contributing to open source 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].
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.
The above serves as proof that Nokia has a fundamental grasp of the value of contributing back enhancements even if they compose the IP of a product sold for-profit. James McGovern has always been a big proponent of enterprises finding ways to influence and participate in open source communities, and Nokia's described actions are a laudable example of how to go about doing just that...by giving back improvements and enhancements directly to the community, no questions asked. After that, it becomes easier to align any future enhancements with the commons (community digested codebase), providing larger numbers of patrons for various core components of a product. Also, you've gained creed as a certified contributor as opposed to a garden variety corporate leech ;-).
Open source 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.
Licensing is simpler with open source. The licensor has already done the most of the due diligence work in advance. 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.
Open source simplifies and accelerates software licensing, and reduces technology and quality risks. Instead of negotiation for months, the technical work can start immediately.
Selecting open source components:
In the beginning of the product development, we analyzed different technologies and architectural solutions. When selecting open source components we took technical, community, roadmap, and legal and IPR (intellectual property rights) aspects into account.
We analyzed the technical suitability of various components and subsystems. A selected component needed to fulfill our functional requirements and be suitable for our hardware specifications. The component also needed to be of good quality and mature enough for a consumer product.
Finally, we analyzed the legal and IPR aspects of the components under consideration. It was important for us that the open source components used have been licensed under proper licenses and have clear copyright and licensing information attached to them. We also wanted to select components that do not lock us into one vendor, for example through a mandatory copyright donation or a dual licensing model.
Developing an open platform:
We utilize the open model in the creation of our products. In addition, we want others to execute their software development projects on our software and devices.
For that reason we manage the www.maemo.org web site, illustrated in Figure 3. Maemo is an open source development environment for Nokia 770 Internet Tablet, targeted to open source developers and innovation houses. It provides tools to develop and share your own applications for the Nokia 770. We opened the maemo site months before the devices were commercially available to provide early access to developers.
The key features of the maemo site include a test and debug environment on x86, flashing tools, a developer root file system, the Hildon Application Framework and UI, the Scratchbox cross-compilation toolkit, developer documentation, sample applications, mailing lists, wiki and planet for discussion, announcements and support, and bug reporting system. In addition, the site provides a forum to share applications and code for the Nokia 770 internet tablets.
The paper carries on as an objective explication of both the benefits and challenges of using open source. Overall, it serves as a stellar example of how and why to successfully incorporate open source software into more traditional forms of product engineering within the enterprise. I've questioned Nokia's commitment to open source in the past, but Dr. Jaaski has done well to help forge a more positive picture of the company's understanding of what open source can mean to the product development life cycle.




Leave a comment