Thursday, March 20, 2003
Software Development Models Overview
Posted: March 2003
http://www.microsoft.com/resources/sharedsource/Articles/SoftwareDevelopmentModelsOverview.mspx
The Software Ecosystem
Microsoft's Shared Source Initiative derives from the company's standing as a commercial participant in the greater software ecosystem�a continuous cycle of critical interactions among the various organizations and individuals that develop and work with software. The success of the information economy over the past several decades is due, in large part, to this essential cycle, which has enabled the governmental, academic, and commercial sectors to collaborate in the advance of technology and innovation. The actions that fuel the software ecosystem can be grouped into five fundamental categories:
Governments and universities undertake basic research and dispense the findings both into the societal base of technical knowledge and to private enterprises and individuals capable of developing these innovations commercially.
Governments also establish and enforce legal regimes that recognize intellectual property rights, creating powerful incentives for private enterprises and individuals to develop products that build upon the basic research.
Commercial enterprises undertake applied research to develop products that advance the state of technology, generating jobs, profits and tax revenues that boost the global, national and local economies.
Commercial enterprises and their employees contribute tax revenues and philanthropic donations that help fund additional governmental and academic research.
Commercial enterprises and individual developers contribute directly to the technical knowledge base by participating in the efforts of various organizations that establish open, public standards.
Open Source Software
The term "open source software" is broadly applied to any (or a combination) of four interrelated concepts: the OSS development model; OSS philosophies; OSS licensing regimes; and OSS business models. The development model is the "core" component of all OSS-the other three concepts, and the debates surrounding them, lend further definition to the OSS movement or "culture."
There is no unified OSS philosophy. In fact, there is a great deal of disagreement within the community itself. The two most fundamental and often rival OSS schools of thought can be characterized loosely as
Ideological: �
Believes that all software (both source and object code) should be available at no cost to anyone, because no one should hold intellectual property (IP) rights in software.
Pragmatic: �
Supports ownership of source and object code but believes that the OSS is a superior development model that can serve as the basis of a healthy software industry.
Microsoft is not opposed to the OSS development model. Indeed, both commercial software and OSS have demonstrated benefits for sectors of the software market, which has determined that multiple licensing and distribution models should coexist in healthy competition. In particular, OSS offers the significant benefits of community-building, customer feedback, code transparency and custom application development. The Shared Source Initiative seeks to afford these benefits while preserving valuable intellectual property rights in software.
The OSS development model has the potential to support services and hardware businesses, but has yet to demonstrate the ability to support profitable software businesses, particularly in the long term. In the software industry, intellectual property is a company's most valuable asset. The OSS model requires a company to compromise the exclusivity of its IP to support communal development. It is extremely difficult to generate revenue streams from software to which everyone has no-cost access.
Commercial Software
As a commercial enterprise participating in the software ecosystem, Microsoft believes in sharing its source code without sacrificing its intellectual property rights. The Shared Source Initiative framework supports an array of licenses and programs that make source code more broadly available to customers, partners, developers, researchers and other interested individuals.
The commercial software development model fosters innovation; it meets the needs of the customers, and has greatly empowered hundreds of millions of computer users. It is the basis for over 200,000 software companies employing greater than 2 million people and generates hundreds of billions in revenues (source: BSA). The commercial software model best serves customers' needs because software producers modify the characteristics of their products based on user feedback. The commercial model fosters reliability as developers subject programs to rigorous quality control prior to release. Furthermore, the commercial model promotes interoperability among software programs through the disclosure of Application Programming Interfaces (APIs) that enable programs to work together. Control over source-code availability by software companies permits technology innovators to prevent others from using their developments without compensation.
Today, the debate between commercial development and open-source models centers around three broad topics:
(1) total cost of ownership, (2) business models, and (3) security. The cost of software includes an initial purchase cost, as well as costs associated with installation, management, support and training. Studies show commercial software often has a lead over open source when it comes to total cost of ownership. The open-source model uses software as a "loss-leader" to drive sales of proprietary hardware, proprietary software or services. After years of some software companies experimenting with open-source business models, few have achieved profitability. Limited intellectual property protection for open-source products discourages investors and is driving many open-source products into the hands of large hardware companies that increase hardware costs to offset software-development costs.
Virus and hacker attacks are facts of life for both commercial and open-source software products. Open source faces a unique challenge because the availability of source code makes it possible for developers who want to find and fix security vulnerabilities to do so. At first blush, that may sound like an advantage, but there are two accompanying problems: (1) a great deal of expertise is required to identify security flaws and to fix them without creating new vulnerabilities, and (2) readily available source code also empowers malicious hackers who use the transparency of the open-source model to exploit weaknesses in the product's code base.
Innovation and Intellectual Property
The free exchange of ideas is an important ingredient in creating and fostering an innovative environment, but not the only ingredient. Motivation and incentive also are critical to innovation, especially in the context of large, complex systems that software programs often must implement. Many innovative ideas have been developed and brought to market only through major corporate research and development investments, venture-capital funding or combined public/private research initiatives. Intellectual property laws protect the creative works of authors and inventors to promote innovation and differentiation-both of which ultimately benefit the public.
Many in the OSS community have shifted to hybrid business models. They are making the same business decisions as any commercial software company in terms of what products and services to give away, what intellectual property to protect, how to generate revenue and how to participate in the community. Market forces are driving both commercial and OSS developers toward this hybrid middle ground.
The optimal environment for innovation is the coexistence of OSS and commercial software within the greater software ecosystem. This ecosystem has sustained innovation for decades through an ongoing cycle of interactions among organizations and individuals working with software. The governmental and academic research communities conduct fundamental research under an open-source model; private-sector developers build upon this research to develop viable commercial products; and then the private sector provides tax revenue and philanthropic contributions that fund additional research by the government and academia.
The competition that open source is brining to the commercial software industry is healthy and will continue to spur debate. Because software develops and changes so rapidly, however, governments should not favor one development model over another in either procurement or economic development. Governments should purchase software programs that offer optimum combinations of cost and features for their needs. They should take a technology-neutral approach to promoting software development; otherwise, they risk undermining the economic contributions made by local and international software companies.