No one would buy a car with the hood welded shut, but that is essentially what commercial software is. However, since computing began, some software has been distributed in such a way that users can change or repair it by modifying its source code–the step-by-step instructions that the computer executes when the software runs. Software distributed under a license that allows a programmer to modify the source code and freely distribute an improved version of it is called open source.
Open-source software can make good business sense. For example, a company might be able to reduce costs by building a product on top of an existing open-source application rather than writing it from scratch. But does open source matter to those who do not program computers? I think the answer is yes.
Open source is often discussed as if it were just about the code, but it’s really about the community of people who care about the code, or rather, who care about the things that open-source software helps them do. Within that community, some conversations will focus on the specifics of source code, but many more are about how to best use a tool or how to improve it. The community surrounding a given piece of open-source code is a valuable resource for people who want to share tips and best practices, get help with problems they are having, and chat about their successes.
In this respect, an open-source community is similar to a conventional user group, in which consumers discuss (or complain about) a company’s proprietary product. But unlike a user group, the open-source community includes the developers who are creating the next version of the product. This direct connection between those who write the software and those who apply it in their work allows developers to hear firsthand about what’s good and what’s bad. That feedback in turn allows open-source projects to more directly meet the needs of the software user than do similar commercial efforts where customer information is filtered by sales, marketing, and management before it reaches the developers.
In an open-source project, everyone–programmer or nonprogrammer–is involved in the design of new features. Good ideas can come from anyone in the community. Open discussion helps to refine the ideas, from their inception on through their implementation in the software. This process encourages product innovation. Just take a look at the new features being added to an open-source application like the Mozilla Firefox browser. These include the more than 2,000 extensions and almost 300 themes that have been contributed by community members.
Open source provides some hope that future software may become more robust. Commercial software is usually written under great time pressure: the need to start selling the next release is more important than fixing current bugs or adding certain features. Open-source projects tend to have a more organic approach, releasing new versions whenever there is enough new stuff to make it worthwhile, or just to fix existing bugs.
A final way in which open source has changed things is that now, for the first time, there is lots of source code publicly available for aspiring programmers to read and study. Much like writers studying literature, or architects analyzing great buildings, programmers examining source code can see examples of good design and style. Open source is transforming the end result of software development from throwaway code that is used once to code that we inhabit and modify over time to better suit our changing needs.
Ron Goldman is a researcher at the Sun Labs and coauthor of Innovation Happens Elsewhere: Open Source as Business Strategy.