7. R&D sharing
From SME Guide
In the previous chapter we already mentioned as a potential model the idea of sharing research and development efforts, by creating one or more open source projects and by facilitating reuse.
One of the more visible form is in “integrated reuse”, the leverage of OSS components to reduce development and maintenance costs. I will take some examples from an excellent thesis by Erkko Anttila, “Open Source Software and Impact on Competitiveness: Case Study” from Helsinki University of Technology. Erkko interviewed many actors from Nokia and Apple about their adoption of OSS in the Maemo platform and in OSX, and measured the OSS contribution through the traditional (albeit not always accurate) COCOMO model. Here are some results:
Maemo: the total software stack includes 10.5 million lines of code (product and development tools), which is split into 85% coming directly from OSS, and 15% either modified or developed by Nokia. In source code lines the respective amounts are 8.9 Million lines of OSS code and 1.6 million lines of Nokia developed software. Out of the 15% created by Nokia, 50% are made available to the community as modifications to components or totally new components, leaving roughly 7.5% of the software stack closed. (…) Based on the COCOMO model we can estimate the value of the utilized OSS to be $228,000,000, including both product software and tools.”
Apple: “Based on the COCOMO model the total cost of internally developing the OSS included in the Darwin core and the used development tools would be $350,000,000.”
More recently the release of the source code for the Palm Pre mobile device shows that the amount of code changed in the largest packages is quite small; for example, the patch distributed by Palm for the Linux kernel is less than 4% of the total code size, and consists mostly of patches from other projects, like the OMAP porting code or from audio/video support libraries.
The code reuse is not, however, the only advantage. As Ari Jaaksi of Nokia mentioned during one of his presentations: “No need to execute complex licensing negotiations; Saving can be up to 6- 12 months in real projects”. 6-12 months of totally non-productive wait are already important, but when added to the developers time saved by reuse it is possible to estimate that for end-user products the total savings are between 12 and 18 months; and for consumer products (especially in IT) reducing time to market by one year means having a significant first-mover advantage.
The reuse of code is a longstanding practice in software engineering; doing software takes time and money, and code needs to be maintained for a long time- adding additional costs on top. In one of the most widely known article in software engineering (”no silver bullet: essence and accidents of software engineering“), Frederick Brooks exposes some fundamental reasons behind the inherent difficulty of making software, especially large scale software systems. He also coined his law, the “no silver bullet law”:
There is no single development, in either technology or in management technique, that by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity.
Despite many trials, and many technologies (better languages, OOP, formal methods, automatic programming and many others..) the law has remained true until now. In the same article, however, Brooks marks some potential attacks on the inherent difficulty of making software:
- buy, don’t build (that is, if possible don’t code at all)
- requirement refining, rapid prototyping, incremental building
- great designers
It is quite easy to make a parallel with open source style development, that promotes the same ideas:
- reuse components and source code from other projects
- release early/release often (or allow anyone read access to CVS for making their own version)
- meritocracy (small group of respected core developers, and many smaller contributors)
In the software engineering world the reuse of code coming from the “external” world is commonly called COTS, Commercial Off The Shelf, and has been studied for many years. Boehm and others created a model for mixed development that can be graphically presented as:
As can be seen in the image, there are costs that are related to the integration of COTS (in our case, OSS) within a newly developed product. These costs are related to the evaluation (and searching) of OSS, “tailoring” (the adaptation of the code for the project needs), and development of glue code (the layer of code between OSS modules and between OSS and internally developed code).
It is possible to estimate code cost and effort using theCOCOMO II model, adapted to a model where a varying percentage of code is developed or reused from OSS. First of all, some assumptions:
- The average company cost of a developer is fixed at 25€ per hour. It should be a reasonable approximation of European costs (in particular, costs in Mediterranean areas like Spain, France, Italy, Greece); we know that it is lower than other estimates (especially US ones), but this way we provide a “lower bound” for savings instead of averages.
- The “tailoring” of code is performed on 15% of the OSS code; percentage comes from several separate projects, with estimates ranging from 5% for mature projects with structured and well-documented interfaces to 20% for complex, deeply-interlocked code like that found in embedded systems.
- Tailoring cost is higher than traditional coding; for this reason, the COCOMO complexity index is increased to 6 compared to new-code development.
- Volatility is based on our own model for cost estimation and data from literature on COTS (”Empirical observations on COTS software integration effort based on the initial COCOTS calibration database”, Abts C., Boehm B.W., Bailey Clark E.) and it can be approximate with an average effort equivalent to 1.5 to 2.5 full time person-year.
This is the result:
| Project size (lines of code) | |||||
| 100000
| 0
| 1703
| 0%
| 1.7
| 20.5
|
| 100000
| 50
| 975
| 43%
| 1.3
| 15.4
|
| 100000
| 75
| 487
| 71%
| 0.9
| 8.6
|
| 1000000
| 0
| 22000
| 0%
| 3.3
| 141.7
|
| 1000000
| 50
| 12061
| 45%
| 2.6
| 103.2
|
| 1000000
| 75
| 3012
| 86%
| 2
| 32
|
| 10000000
| 0
| 295955
| 0%
| 7.5
| 818
|
| 10000000
| 50
| 160596
| 46%
| 5.9
| 631.2
|
| 10000000
| 75
| 80845
| 73%
| 3.8
| 421
|
In the case of 10Mlines of code, the saving is estimated at more than 210M€, that is consistent with previously mentioned estimates of savings by Nokia in reusing open source within Maemo. Even for the “small” project of 100000 lines, the savings are estimated at 1.2M€. Another interesting aspect is related to staffing and time: not only the use of OSS can reduce development time substantially, but it allows for a substantial reduction in the amount of staff necessary for the development. In the smallest example (100000 lines of code, still substantial) the average staffing is reduced from more than 20 developers to slightly less than 9, bringing this project within reach even by small companies, and in my personal view it explains the exceptional take-up of OSS by new and innovative companies, that even before external sources of capital (like VCs) are capable of creating non-trivial projects with very limited resources.
The reduction in staffing needs, and the increased efficiency introduced by FLOSS may explain why some research found that FLOSS-using SMEs are more efficient. From a recent research from the TEDIS group of Venice University[1]: “Finally, comparing the individual data on firms with turnover of less than 500,000€ with the variable on size classes of customers (by number of employees), one can hypothesize a correlation between the use of software Open Source and the ability to attract customers of relatively larger scale. At the same turnover, in other words, companies “Open Source only” seem to have more chances to obtain work orders from companies with more than 50 employees (ie medium - large compared to our universe of reference).”
This, given the relative similarity of other data (like revenue-per-employee of the cluster) provide at least an hint that OSS gives “leverage” in the kind of activities that a small company can create or propose to the market.
- ↑ Report from the TEDIS research on italian OSS companies, http://opensource.univiu.org/

