Giving the code away
By Richard Hillesley
Why do corporations give away code under free and open source licences? What benefits do they derive and what are the pitfalls that can doom these code give-aways? And how do they make a real community grow around these projects? Richard Hillesley looks at the difficulties and rewards to giving away code.
Some eyebrows were raised when Citrix released the code of CloudStack to the Apache Software Foundation, having acquired Cloud.com, the makers of CloudStack, for $200 million, a few months earlier.
From a traditional business perspective giving away the ownership and governance of a project you have just paid $200 million to acquire is wrong and doesn't make much sense. But Citrix has taken the view that you don't have to 'own' the 'IP' or control the process to get the best out of free and open source software, and you don't have to own the code to influence its shape and development.
Giving the code away may pull in developers and free resources. Swapping the cares and responsibilities of ownership and governance for a lighter touch and a less pervasive influence over the growth of the project will give access to a wider market, a ready-made community and an extended ecosystem with unmatched expertise in web technologies. The greater significance of the donation of CloudStack to Apache may be the recognition by Citrix that it doesn't have to 'own' the process or the code to get the best out of open source.
This is a lesson that the CloudStack developers may have learnt from the experience of their rivals, OpenStack and Eucalyptus, both of which are open source but have encountered problems due to ambiguities around governance or licensing. Open core licensing and overt control of the development process are seen to be a disincentive to OEMs and other participants, and can limit the reach and scope of a project. As a consequence of these perceptions Eucalyptus has revised its open core licensing policy and gone fully open source, and OpenStack is looking to create a foundation of its own.
Citrix has gone a step further, and has removed all ambiguities around the licensing, ownership and control of the project, which was previously 'open core'. The company will hope to find its reward in its ability to package, install and support the code, free of the cost and responsibility that comes with owning the source.
Share and share alike
Free and open source software was once the province of hackers and hobbyists, but history, the web, and the spread of ideas changed perceptions. By the late nineties free and open source software had been taken up by thousands of businesses who were hoping to make a killing from the dotcom boom. Linux, Apache, MySQL and PHP became the cheap and easy way to work on the web. The more popular free and open source software projects that survive from this period share one enduring characteristic: they are owned by no-one, and the code belongs to the communities from which they grew. A foundation abstracts this idea and gives it form.
Linux was attractive to business because it was cheap, proven and reliable, and had been developed on a shoestring. Free software was a world-changing idea that the Linux community managed to both capture and encapsulate, bringing a new way of working and new attitudes to the spread and ownership of software and ideas.
Linux was especially popular among the former UNIX companies for reasons which owed everything to the open source nature of the code and the hangover from the fracturing of UNIX during the eighties and nineties. If the UNIX companies had learnt anything from the UNIX wars, it was that proprietary operating systems, even if they are your own, cost money and create hurdles for other parts of your business. The arrival of GNU/Linux opened up new possibilities. There was an obligation to share, and a mutual advantage to be gained. The release of core chunks of corporate code accelerated the development of Linux and ensured its success in the enterprise, enhanced by its scalability across a wide range of hardware.
Shared software development encourages commoditisation, and at the system level, commoditisation reduces costs and benefits everybody. Commoditisation of the operating system ensures commonality of standards. This makes it easier to port software between different machines and architectures, and makes it easier to design hardware itself, which increasingly operates within slim margins.
Dozens of companies contribute to the Linux kernel, and reap the benefits of the contributions of others. They don't contribute out of generosity, but because this effect has made it possible to port anything to anything at a vastly reduced cost, and the costs are shared. Companies don't use Linux because of sentimental attachment to Linux or 'open source', but because it makes business sense.
Companies and individuals win if they share ideas, effort and costs in working towards a common objective – but this can only work where no company seeks to 'own' the work of every other company, either because ownership of the copyright of the code is dispersed among the contributors, as is the case with the Linux kernel, or the code is 'owned' by a non-profit foundation, as happens with many free software projects.
The only way is ethics
Free and open source software has become popular because it attracts developers, reduces costs, increases productivity and frees resources. Open source software development has no set methodology, but the instruments that evolved to enable the free software project to happen, despite the geographical separation of the developers – mailing lists, version control systems and bug tracker databases – also enforce good habits on the developers. It is not just the 'many eyeballs' or the enthusiasm of developers, but also the functional necessities of maintaining a distributed system that encourage free software developers to produce better software.
The informality of the open source model, and its ability to allow participants to find their own level, tends to encourage productivity, initiative and innovation beyond the reach of formal structures. Developers and users are freed from the shackles of a set process and are able to contribute according to their interests and talents, rather than according to arbitrary selection, determined by length of service or adherence to the rules. The company that takes advantage of this process does not have to 'own' the code or control the process.
Unfortunately, companies that grew up in an era when software development and production was predicated on a closed-source model, with high internal development costs and fixed revenue streams, don't always see it this way, and sometimes search for ways to extract added value from 'open source' by overt control of the development process or by means of devices such as copyright assignment, dual or open core licensing.
Open source has become mainstream, and most of the larger open source projects that have had a commercial impact in recent times are 'owned' or subsidised by commercial interests, and are worked on by developers who are employed by the companies concerned. The idea of free and open source software development has caught the imagination of business and industry and may have lost some of its allure and a little of its excitement as a consequence. Of necessity this has changed the direction and mindset of what 'open source' has meant to different sets of people.
Advocates of free and open source software like to see free software as an ethical approach to software development that encourages freedom and cooperation, but corporates get involved because they can see a commercial advantage, not for idealistic or ethical reasons.
Usually this takes a benign form. Companies contribute heavily to projects that reduce their costs and increase their profitability, but they have their own agendas, which don't always meet the objectives of the developers who participate. The primary objective of corporate involvement is not the freedom of the code, but financial return. Open source gives access to communities of users and developers and their ecosystems, which bring reductions in cost and other opportunities. The ecosystems that grow around open source projects bring commercial and operational advantages which spill over into other parts of the business. The bonus for some developers is that they get paid for work they might be doing anyway.