Where do we go after the ‘Open Source Revolution’?
A lot has been written about the open source revolution and its impact on public and private business in the last several decades. Throughout the late 20th and early 21st century, open source made huge inroads in virtually all aspects of computing thanks to economic uncertainty, the widespread availability of the internet, and a new generation of software developers raised in a world of sharing and mutual benefit through open development. I think everyone can agree that open source has in some sense "won" and we are firmly in a post-open source revolution.
But there's something else to consider when thinking about how open source got here and what its future holds. It's found in what I believe to be a gradual yet unmistakable rise in the approachability of open source.
There are many -ilities that one looks for in any software system: flexibility, scalability, reliability, accessibility, and so on. These can be measured (some more accurately than others) and compared to find the best of breed system that matches the needs of the consumer. However, even the most flexible and scalable solution might not achieve the desired result if the project's architects, developers and maintainers do not fully understand how to apply it to their situation, or fail to recognize and apply best practices appropriately, or have no idea what to do if something goes wrong. And this is where the concept of open source and open development has a distinct advantage: the more approachable software is, the greater the chance it will be used correctly and effectively by its target audience.
What is approachability, and how can open source be better at it?
Approachability refers to the ease of adopting a software package: understanding not only how it works and how to use it (documentation), but how to use it effectively and without unnecessary complexity (best practices). But that's not all there is to it. Approachable software has as much to do with the people behind software as it does with the technology itself. Simply throwing source code over the development team's wall does not increase its approachability. Embracing the collaborative spirit and building a thriving community of interested people around software, in which they can share experiences and innovate together, results in a much more approachable system over time. Organizations' procurement processes are increasingly evaluating software not only on its feature set, but also its approachability in terms of availability of existing experiences, best practices, longevity, and community health.
Open source has a distinct advantage, but does not have a monopoly. There are many closed source packages that are easy to use and have a solid community (think Apple's iOS or Adobe's Photoshop), but the principles of open source and open development often provide a shortcut to better approachability. The history of open source and the motivation of its developers give some clue as to why.
Open source developers have historically been motivated by two big reasons: the desire to innovate and the desire to give back.
First, a lot of open source was born from frustrations with alternative systems that were closed source, too expensive, too license-restrictive, or almost, but didn't quite meet a need. Without the ability to innovate and re-use the "good parts" of these closed systems, developers chose to craft their own open alternatives, sharing them with the wider software community and attracting other developers with similar motivations. Communities that formed around these alternatives were infused from the start with a competitive spirit and a strong desire to make their open "alternative" into the "mainstream", often through increased approachability.
This "itch-scratching" desire and strong feedback mechanism from open source communities drove software like Linux to become the dominant mainstream player in modern application platforms for web infrastructure, cloud computing, mobile devices, and even embedded systems. The approachability of Linux is evident in its ability to be successfully adopted across huge swaths of the computing landscape.
Second, and the reason why many software projects start out as open source to begin with is the desire to "do good" and donate knowledge and experience to society, thereby advancing the state of the art and enabling continuous innovation for future developers. The Free Software movement exists for this reason, and in fact many contributors to open source projects are motivated not by financial gain, but by their desire to give a little intellectual capital back to the communities built around the software on which they depend.
Audacity began in this way, and has gone from a 1-person academic project for developing audio processing algorithms to one of the most popular digital audio tools in the world, with 10,000 downloads per day, hundreds of contributors to the project and many more community members and users throughout the world. In an article from Linux User & Developer magazine, Audacity founder Dominic Mazzoni states "I don’t think nearly as many developers would be willing to contribute their code if we used a different [non-free] license."
In other words, open source contributors often act in the self-perceived best interests of open source, choosing to work on a project not only based on its technology, but also based on its moral compass. With a diversity guaranteed by this innate selection process, open source projects are often easier to use, more applicable across cultures, and have a more supportive community. In other words: more approachable.
It's also interesting to note that many of today's popular open source projects sprouted from or were inspired by existing open source projects with the same issues as their closed source brethren. Open source web server nginx has seen huge adoption since its inception as a high-performance alternative to the open source Apache HTTP server, and is now the most widely used Web server among the world's 1,000 busiest sites, according to the company. nginx may not have all of the features found in other solutions, but its approachability in terms of its configuration, lightweight nature, and passionate community has led to widespread adoption in a short period of time.
Becoming More Approachable
Projects should consider how they are perceived on first approach, especially if they are a new project seeking increased adoption and are often compared to other open- or closed alternatives, where there are existing expectations. How easy is it to test drive? How difficult is it to configure and use for a real world scenario? Are there support communities (free or paid)? Are there established best practices for the project? How does it compare to other alternatives? For developer communities, what is the "Hello World" equivalent process for writing extensions or for contributing to the project?
Highly flexible or configurable projects have additional work to do to provide sane defaults and sample configurations for various scenarios. Ideally, there is a mix of best practices and guides both from the project itself and from its users.
While there is no quantitative measurement of approachability, efforts that concentrate on improving the process of adopting the software as a replacement to a real or perceived alternative will increase approachability. Increased approachability, when combined with other efforts in advertising and marketing, can be extremely effective at making a project feel less like "the alternative” and driving adoption.
Approachability is key to improving adoption rates for software. Open source projects enjoy a distinct potential advantage over closed source alternatives when it comes to approachability, and much of this stems from the very nature of open development. Open source developers are often motivated not by money, buy by a strong desire to innovate, to be recognized for achievements, and to give back and advance the state of the art in a given field. However, simply being open source does not guarantee better software. Rather, having a strong focus on improving the "first impression" that a project makes on its target audience, along with ample supporting documentation and a strong sense of community can greatly enhance a project's adoption rate and position in the marketplace.