Mobile Open Source Economic Analysis
Total Page:16
File Type:pdf, Size:1020Kb
Mobile Open Source Economic Analysis LiMo Foundation White Paper August 2009 ™ ™ White Paper 1 Executive Summary It is possible to use quantitative techniques to examine a number of the proposed economic benefits of open source software. The claimed benefits are a reduction in cost of acquisition, access to innovation and cost of ownership of software technology. The quantitative techniques we use to conduct our analysis are based on measuring source lines of code (SLOC) applied to publicly accessible open source project repositories. To aid our analysis, we have developed a command line tool to mine information on open source projects using the ohloh1 web service. Based on this analysis, Based on this analysis, there is a strong case for constructive engagement with there is a strong case for open source communities where the corresponding open source software constructive engagement components are used within a collaboratively developed, open mobile software with open source platform such as the LiMo Platform™. communities... There is additionally a case for mobile software platform providers to consider using certain strategic open source projects as the basis for development of new functionality on their roadmap. There is no proven case within this analysis for converting existing proprietary items already within a mobile software platform to open source. To conduct a cost-benefit analysis of that scenario would require examination of more factors than SLOC alone. 1http://www.ohloh.net ™ White Paper 1 1. Introduction The subject of open source is increasingly important in relation to mobile device platforms and in view of this, it is vital to understand the underlying economic factors driving the use of open source software in a mobile context. This paper seeks to move beyond opinion-based debate, by identifying the economic case for open mobile platforms to acknowledge and embrace their use of open source software and to actively contribute back changes to open source components modified or adapted within their platform. This white paper attempts to quantify and corroborate the benefits of using open Moving away from source software in mobile platforms in relation to key components which opinion-based lie below the mobile commodity line. This line, for our purposes, lies approximately conjecture towards around the UI framework level of a typical mobile software stack. Components data-based analysis below the line are considered for this analysis to be commodity software. Above the line lies the domain of differentiation. The approach we use involves applying economic cost-benefit analysis techniques where applicable in addition to citing relevant authoritative peer-reviewed material. The following areas of claimed benefit have been analysed in relation to open source mobile software components around or below the commodity line: • Reduced cost of software acquisition • Access to software innovation • Reduced cost of software ownership The analysis of this last area involves trying to quantify the cost to a mobile platform provider of failing to engage with upstream changes. ™ White Paper 2 2. Adopting open source to reduce the cost of software acquisition 2.1 The COCOMO model The claim that adopting existing open source technology reduces the cost of software acquisition can be measured using the COnstructive COst MOdel2 (COCOMO) developed in 19813 The COCOMO Model, by Dr Barry Boehm4, Emeritus Professor of Software Engineering at UCSC and developed at USC a leading software engineering academic. COCOMO has since evolved into an and based on industry standard5 with respect to software cost metrics. The model computes the measurement of SLOC, cost of software development as a function of the total source lines of code (SLOC) is widely used of the corresponding components. for estimating COCOMO has been significantly refined since its inception to reflect the software costs. intervening changes in software development methodology and techniques, in particular to acknowledge more iterative approaches which better reflect modern development. The latest version of the model, COCOMO II, contains a number of further adjusting factors and according to the UCSC Center for Systems and Software Engineering: “This new, improved COCOMO is now ready to assist professional software cost estimators for many years to come”6. The approach taken by COCOMO II is twofold. First, a hierarchy of three different cost models (organic, semi- detached and embedded) is introduced which is designed to take into account the overhead of development depending on the type of project being analysed. Secondly, COCOMO combines the cost model with suitable annualized engineer cost/productivity figure to yield the equivalent cost of development within a typical software engineering context. These elements combine in a single regression function as follows: Effort Applied = a(KLOC)b [man-months7] Development Time = c(Effort Applied)d [months] People required = Effort Applied / Development Time [count] 2http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html 3Barry Boehm. Software engineering economics. Englewood Cliffs, NJ: Prentice-Hall, 1981. 4http://sunset.usc.edu/Research_Group/barry.html 5See US Govt Dept of Defense SoftwareTech estimation site: https://www.thedacs.com/databases/url/key/4 6http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html 7http://www.amazon.com/Mythical-Month-Essays-Software-Engineering/dp/0201835959 ™ White Paper 3 The coefficients in this function vary according to the project type thus: Software project a b c d Organic 2.4 1.05 2.5 0.38 Semi-detached 3.0 1.12 2.5 0.35 Embedded 3.6 1.20 2.5 0.32 (source: Software Cost Estimation With Cocomo II) More detailed information on the COCOMO coefficients is available elsewhere8. For our purposes, COCOMO data can be viewed as a recognized and respectable starting point to begin an empirical examination of the potential benefits that open source offers for mobile platform providers in terms of the cost of software acquisition, access to innovation and cost of software ownership. 2.2 The application of COCOMO to open source software The applicability of COCOMO models to open source software was introduced in an influential and well-regarded economic analysis, “Why Open Source? Look At the Numbers!” written by D. Wheeler in 20029 (and updated regularly since), which remains a widely cited10 paper in relation to the economics We used a loaded cost of of Linux. The Linux Foundation commissioned some research11 in Oct 2008 $75,000 per engineer per updating Wheeler’s work. For the first calculation, they used the basic (i.e. “organic annum – the same figure used project”) COCOMO model applied to Fedora 9. Their choice of annualized salary by the Linux Foundation when figure was justified as follows: they updated Wheeler’s work. “To calculate the costs for these distributions, a base salary was found for computer programmers from the US Bureau of Labor Statistics. According to the BLS, the average salary for a US programmer in July, 2008 was $75,662.0810. This was the salary amount used in our SLOC Count run … the programmer making the average US salary figure of $75,662.08 is actually costing the employer $97,604.08 in compensation alone. This is just one piece of the total wrap pie.” 8http://www.amazon.com/Software-Cost-Estimation-Cocomo-II/dp/0130266922 9http://www.dwheeler.com/oss_fs_why.html 10For example: http://abstract.cs.washington.edu/wiki/index.php/Open_Source_and_Search, 11http://www.linuxfoundation.org/publications/estimatinglinux.php ™ White Paper 4 Combining these factors and applying them to the Fedora 9 source base, the research calculated an equivalent development cost of $10.78 billion for 204.5 million source lines of code (or SLOC) or in other words, $52/SLOC for its development up to the current state. Table 1 shows the COCOMO figures taken from this paper and how they were arrived at by using the coefficients for an organic project. Total Physical Source Lines of Code (SLOC) 204,500,946 Development Effort Estimate, Person-Years (Person-Months) 59389.53 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05)) (712674.36) Schedule Estimate, Years (Months) 24.64 (295.68) (Basic COCOMO model, Months = 2.5 * (person-months**0.38)) Total Estimated Cost to Develop $10,784,484,309 (average salary = $75,662.08/year, overhead = 2.40). Table 1: SLOC and estimated production values for Fedora 9 (source: Linux Foundation) For the Fedora 9 Linux kernel itself, the paper acknowledges that the “organic project” COCOMO model is not appropriate since: “the Linux kernel code is typically more complex than an “average” application—among other things—it requires an analysis that goes beyond the basic COCOMO model. A user space application like Mozilla, for instance, is much easier to code line by line since it’s abstracted at a much higher level and has to handle far less tasks. A modern and enterprise-class operating system kernel is asked to do a great number of extremely complex things, all at once.” The paper moves on to indicate that an adjusted version of the organic project model is used which takes in the exponent value from the semi-detached project model instead. The result of this is an upwards revision of the equivalent cost of development of the 2.6.25 Linux kernel of $1.32 billion for 6.772 million SLOC or $202/SLOC for its development up to the current state. Table 2 shows the corresponding figures from the paper which details the use of adjusted COCOMO coefficients: Total Physical Source Lines of Code (SLOC) 6,772,902 Development Effort Estimate, Person-Years (Person-Months)\ 7557.4 (90688.77) (effort model Person-Months = 4.64607 * (KSLOC**1.12)) Schedule Estimate, Years (Months) 15.95 (191.34) (Basic COCOMO model, Months = 2.5 * (person-months**0.38)) Estimated Average Number of Developers (Effort/Schedule) 473.96 Total Estimated Cost to Develop $1,372,340,206 (average salary = $75,662.08/year, overhead = 2.40).