[openstack-dev] Thoughts on OpenStack Layers and a Big Tent model

Zane Bitter zbitter at redhat.com
Wed Sep 24 19:22:54 UTC 2014


On 19/09/14 22:37, Monty Taylor wrote:
> I think we can do what you're saying and generalize a little bit. What
> if we declared programs, as needed, when we think there is a need to
> "pick a winner". (I think we can all agree that early winner picking is
> an unintended but very real side effect of the current system)

Ooh, a challenge. I'll bite ;)

Here's a question: how many instances are there of two Stackforge 
projects working on the same problem domain? I can think of one example: 
Gnocchi and StackTach - though those are (respectively) a branch of and 
a sort-of competitor to an integrated project (where we supposedly 
"picked the winner" already).

So we have evidence of competitors surviving the picking of a winner, 
but not a lot of evidence of competition in general. (To be fair, you 
could make an argument that people are being put off starting competing 
projects by the prospect of eventually having to submit to 
winner-picking by the TC.)

Don't get me wrong, I think it's clear that our implicit hope for the 
current model - that picking a winner would mean everyone getting on 
board with that project and making it better - has failed to 
materialise. But there's also every reason to think that a model where 
we rely on competition between projects in the marketplace to determine 
a winner owes just as much to wishful thinking.

I suspect that part of the problem is that there are so many different 
things any given person could be working on to make users' lives better 
that when they see a project whose approach they don't agree with, 
they're more likely to just go work on something else than start a 
competitor or jump in to try and change the direction. (In fact, the 
people most qualified to do so are almost by definition the most busy 
already.) Maybe just throw a few rocks right before the graduation 
review, that sort of thing.

If you were hoping this email would end with some kind of proposed 
solution, prepare for disappointment.

Early winner-picking obviously sucks for the developer who realises that 
they need to make major changes and has to deal with the extra challenge 
of maintaining API compatibility and upgradability while doing it. On 
the other hand, it sucks precisely because that's great for users and 
operators. A competition model, even assuming that the competition 
actually arises, just means that the portion of operators who chose the 
'wrong' side and their users get hosed when an eventual winner emerges. 
Potential consequences include delayed interoperability, delayed 
adoption of new features altogether to avoid the risk, or even permanent 
lack of interoperability with proprietary solutions being used instead.

The only suggestion I can make is one I mentioned in another thread[1]: 
establish a design principle that the parts of the design which are hard 
to change (e.g. APIs) must be a simple as possible in order to provide 
the maximum flexibility of implementation, until such time as both the 
implementation and the need for more complexity have been validated in 
the real world.

cheers,
Zane.


[1] 
http://lists.openstack.org/pipermail/openstack-dev/2014-September/046563.html



More information about the OpenStack-dev mailing list