A talk at day one of PyconUK has stirred some thoughts about politics in the OpenStack community that I hope by writing down I can gain some clarity and maybe do something to improve the situation. Thus far the connections between the thoughts are rather weak.
That talk made the point that it is very important that if we want to make effective use of power we must destroy the taboo of talking about power: how to get it, who has it, how to get more, how to make getting it accessible to more people. Power, in the context of opensource communities, is expressed by being useful.
Since joining the community I've had continued feelings that OpenStack is getting some aspects of opensource wrong and it is because of the vendors. To correct these issues the vendors need to step back and consume the products of the community rather than try to drive the community. At this time a normal person cannot use OpenStack. This is to the advantage of the sellers and the integrators.
If you are a developer in this context, with common opensource desires to both have power and serve the community (as described in the talk linked above) it is difficult to properly serve (and thus express power) because what matters is being useful to someone (individuals or groups of people) not something (enterprises).
This is a fundamental problem in modern opensource. I originally thought that the best way to fix it was for enterprises to fund foundations which fund developers to cause a gap between their needs and the desires of the devs while narrowing the gap between the devs and the end users. However this probably doesn't provide sufficient bragging rights--sorry marketing material--for the enterprises. Having disconnected skunk works is another: "we fund N developers 100% upstream, look at us!"
This, however, drives some of the perverse incentives in OpenStack. How much better is it to say "we fund N developers, 75% are core and 25% of them are PTLs! Aren't we special!"
Part of the perversion here is that people are incented to focus on visible features in a single project (so they may become core or PTL) rather on the overall quality and, critically, usability of OpenStack at large. This takes us back to the earlier point: working towards overall quality is not the primary active and direct goal across the community.
The incentives need to change so that quality can be the goal. I think we can do this to some extent by concentrating, as a community in concert self-identifying primarily as OpenStack developers, on the end user and the tasks they want to accomplish.
Are we able to enumerate those tasks? More importantly, can we agree?