If momentum is any indication, 2014 is poised to be a defining year for OpenStack. All of our vital statistics, from community growth to code commits and tracked deployments, doubled in 2013, and all signs point to continued growth. Still, we continue to hear the questions:
Who’s really driving OpenStack?
Are there too many cooks in the kitchen?
What defines OpenStack, and do we need all of the new programs?
Where’s the voice of the user?
These points reflect the common question of how decisions are made in the OpenStack community. As we start a new year, we in the OpenStack Foundation are putting our resources behind elevating the voice of OpenStack users and tightening the feedback loop between users and developers to influence decisions such as the scope of the project, new feature priorities, interoperability requirements and operational best practices.
Balancing Voices In Software Development
Every foundational technology platform is driven by common forces: the developers who build it, users who consume it, and the ecosystem of vendors that extend it. OpenStack’s development process is unique because it is designed to allow all of these constituencies to directly influence the cloud platform.
In OpenStack, technical decisions – everything from new features to long-term roadmap – are governed by a technical meritocracy in which Program Technical Leads manage the involvement of developers and users in their programs under the oversight of a Technical Committee. The Board of Directors of the OpenStack Foundation, by comparison, focuses its attention on long-term policy, strategy and governance.
Each of these groups already includes representatives who are responsible for real-world OpenStack usage in their organizations, but we can benefit from even greater involvement from users. As we work to raise the level of user involvement, we see that some are simply not as comfortable with open source, but also that our process can be intimidating to dive in and get involved with so many people and moving parts.
The fact we often miss is that technology development is a messy process regardless of how decisions are made. Whether you’re talking about open source or proprietary software, deciding how to evolve a code base is beset by the same kinds of tradeoffs, optimizations and calculated gambles. In the end, your goal is to deliver software that solves a particular set of problems.
For OpenStack, the community chose an open process that relies on the disinfectant of transparency to maximize the chances that all points of view are heard, considered and when embraced by the community, incorporated into the code. How we make decisions in the OpenStack community is a source of strength.
Transparency Is Noisy
Of course, transparency by its very nature exposes the world at large to much more information, insight and noise than a tightly controlled process. A rapidly growing, global, diverse and passionate community of developers and users will disagree. That disagreement is often very useful even if it isn’t always going to be pretty.
But guess what? Because it’s an open process, you get to see it all and participate where you want to make an impact. Backroom and backchannel conversations are still present, to be sure, but their effect is kept in proportion. If you want to understand why particular technical decisions were made – as in the case of the networking stack, for example, with both Neutron and nova-network still present as options – it’s a relatively straightforward matter to find out. In that particular case, when you look, you’ll discover that users said they still needed features available in nova-network, so the deprecation schedule was extended to give Neutron additional time to meet their requirements.
Uncovering the decision chain in other open source projects isn’t always that simple. And with proprietary software, it’s virtually impossible, because the trail of communication from the end user goes through the sales or support organization to product management to the development team like a high stakes game of telephone. It’s a system that’s been in place for a long time, but there’s also a growing consensus that we can’t build software the way we used to.
This level of transparency can be a distraction, and it sometimes makes for snarky, counterproductive and ill-informed side conversations. As we’ve seen in the past year, it can also lead to misunderstandings among the media and analyst communities covering OpenStack with regard to why decisions are made and where the project is headed. But messiness as a result of transparency is not our enemy. Our enemy is an opaque process with no accountability and responsibility to the people using the software.
Amplifying the User Voice in 2014
I have worked with many developers over nearly 20 years, and the ones who have built the best software had a passion for meeting the needs of their users. As we have ramped up the User Committee and put user input mechanisms in place, OpenStack technical leaders have been very enthusiastic about receiving this feedback. That work influenced improvements in the Havana and Icehouse development cycles, and will continue to do so in the Juno release and beyond.
Users bring valuable contributions to the project, whether they are directly contributing code, open sourcing their management tools, contributing to documentation, sharing operational best practices at user group meetups or capturing their experiences through the User Survey and Design Summit talks. In 2014, we are bringing several new initiatives to life to bring the voice of the user closer to our process to deliver the best cloud software:
- Closing the Feedback Loop – The user and technical communities are working to close the feedback loop in the design and development process to make sure we are delivering user-driven features. Specific activities include an operator’s mini-session to gather input well before the Design Summit, beefing up the user survey with more specific feedback requests, and having more user representatives engage directly on technical mailing lists and in technical Summit sessions.
- Ramping Up Support of Application Developers and Cloud End Users – A major focus this year will be moving beyond cloud operators to attract and support the growing community of app developers and OpenStack end users. Current projects underway include an aggregation of popular SDKs and developer resources for OpenStack clouds, as well as adding new survey questions for application developers, largely driven by community member Everett Toews. The Technical Committee is also considering how to incorporate a new program focused on user/consumer experience.
- Establishing Baseline Interoperability Testing – The community is engaged in creating baseline interoperability testing for OpenStack products and open source distributions. Rob Hirschfeld and Joshua McKenty are leading a Board of Directors committee to drive this effort, and it’s important that we have operators and end-users engaged, especially as we work to create a consistent target a better experience for the latter.
- Clarifying the Path to Adoption – With such a vibrant commercial ecosystem, and still many organizations who are running it themselves, one of the most common questions we hear is how to get started with OpenStack. The answer depends on many factors, including your use case and technology expertise, and this year the Foundation staff is helping users make sense of the many ways to consume OpenStack, expanding on efforts like the Training marketplace.
- Growing Ambassador Program – Our community managers are also ramping up the global Ambassador program, which will empower more community members to get involved in these initiatives as well as through our traditional contribution channels. We now have 12 Ambassadors in eight countries.
This is of course not an exhaustive list, but they represent key activities in 2014, and now is the time to get involved, whether it’s completing a user survey, joining the interoperability testing efforts, or volunteering with the User Committee.
Pioneering a Better Way to Build Software
We in the OpenStack community are pioneering new ways to do collaborative software development at very large scale. We’re meeting our biannual release cadence, growing our base of contributors, and our testing and review process is already being emulated by other software projects. Reflecting on success is good, but there’s more work to be done.
In 2014, we are committed to bringing more users into our open and transparent process, helping them to participate directly in building great cloud software. When we balance the voices and contributors involved in all parts of OpenStack, we see the incredible power of a diverse community, focused in the same direction, driving change across our industry.