The Four Opens
The Four Opens are a set of principles guidelines that were created by the OpenStack community as a way to guarantee that the users get all the benefits associated with open source software, including the ability to engage with the community and influence future evolution of the software.
Under these guidelines, the OpenStack community grew from tens of contributors to thousands, creating one of the top three most active open source projects in the world behind the Linux Kernel and Chromium. The Four Opens were instrumental not only in this success but also in building a thriving, global community.
We at OSF consider The Four Opens our guiding principles in everything we do.
Any software developed under the Four Opens must be released under an open source license. It means being able to study a program, modify it, and redistribute either the original or the modified version so that others may benefit from your work. That is a minimum standard for what we mean by “Open source” in the Four Opens. Beyond that, we want the software to be truly usable and scalable. This adds the additional condition that it should not be limited in features or crippled in performance to artificially enable any business model.
What that means more directly: We do not produce “open core” software. We are committed to creating truly open source software that is usable and scalable. Truly open source software is not feature or performance limited and is not crippled. There will be no “Enterprise Edition.”
“Open Community” embodies the key difference with single-vendor-controlled open source projects. It is about ensuring that the community is a cohesive, inclusive, level playing ground where all the voices are heard and anyone can rise to leadership positions.
To build a truly open community, you need to balance the three forces: developers, users and ecosystem. It’s easy to think simply in terms of upstream and downstream, but communities are complex organisms, and the reality is much more dynamic. It’s important to establish common goals and build strong connections between the forces, because operating in silos will dilute the power of the community. Each force affects the others, and they have to be working in harmony to achieve anything.
“Open Development” refers to the adoption of transparent and inclusive development processes that enable everyone to participate as an equal on a level playing field. Publicly-accessible services means that everyone can see everything about development activities, without even needing to sign up to a service. Open development also means that all patches are welcome for consideration, whether that patch is from a project founder or a first-time contributor. A successful open source project will adopt a set of standards that clearly states the metrics and standards that a contribution will be evaluated against. By defining these standards we create an egalitarian process in which contributions are evaluated on a level playing field.
“Open Design” guarantees a transparent and open process for planning and designing the software. It’s about letting go of the control of the design of the software and its feature road-map, and accepting that it should be driven by the community.
This is not easy to do. Design is an opinionated process. Design by committee can be inefficient. It’s easier and faster to keep design and feature development in the hands of a happy few, behind closed doors, than it is to get consensus across a community around desired features and priorities. But that would be choosing to go fast in the short term with a small group rather than going far in the long term with a larger group. Community-agreed design will lead to a better product that better answers the need of the users.