[Openstack-operators] [openstack-dev] [Neutron] The specs process, effective operators feedback and product management
rochelle.grober at huawei.com
Thu Apr 9 23:09:45 UTC 2015
Adding the product working group mailing list to this thread 
I’d like to introduce the Neutron Drivers (and others) to the Product Working Group. We are a bunch of “influencers” who are focused on adding value through some broader outlooks in the OpenStack community. And yes, many of us are or have been Product/Program/Project managers.
We’ve just started (first meeting was at the Paris summit) and have been brainstorming on ways our skillsets could be applied to the OpenStack Environment. A number of us have stepped up to provide some drive for cross project efforts and all of us have been reaching out to work with PTLs and developers and Ops and Users on how we can lighten their loads. One way we are looking at is to provide some tracking of development efforts and plans, along with providing Use Cases to projects that will help developers figure out how to address User and Operator functionality or other gaps.
This discussion is perfect for our mailing list, and IRC scheduled chat and a cross project session at the summit (at a minimum). I’ll leave others in the Product WG to respond in line (even though I have lots of thoughts on this, too), but let’s try to get a working session or two, or even a lunch session on this topic with all interested parties at the Summit.
And yes, I think that more, different patches in the specs area could allow for mapping use cases and other user requests to individual specs and/or blueprints and/or bug reports. It’s a matter of communicating both what is needed and how and where to do it.
From: Salvatore Orlando [mailto:sorlando at nicira.com]
Sent: Thursday, April 09, 2015 09:19
To: OpenStack Development Mailing List (not for usage questions)
Cc: OpenStack Operators
Subject: Re: [openstack-dev] [Openstack-operators] [Neutron] The specs process, effective operators feedback and product management
On 9 April 2015 at 17:04, Kyle Mestery <mestery at mestery.com<mailto:mestery at mestery.com>> wrote:
On Thu, Apr 9, 2015 at 9:52 AM, Assaf Muller <amuller at redhat.com<mailto:amuller at redhat.com>> wrote:
The Neutron specs process was introduced during the Juno timecycle. At the time it
was mostly a bureaucratic bottleneck (The ability to say no) to ease the pain of cores
and manage workloads throughout a cycle. Perhaps this is a somewhat naive outlook,
but I see other positives, such as more upfront design (Some is better than none),
less high level talk during the implementation review process and more focus on the details,
and 'free' documentation for every major change to the project (Some would say this
is kind of a big deal; What better way to write documentation than to force the developers
to do it in order for their features to get merged).
Right. Keep in mind that for Liberty we're making changes to this process. For instance, I've already indicated specs which were approved for Kilo but failed were moved to kilo-backlog. To get them into Liberty, you just propose a patch which moves the patch in the liberty directory. We already have a bunch that have taken this path. I hope we can merge the patches for these specs in Liberty-1.
It was never meant to be a bureaucratic bottleneck, although the ability of moving out early in the process blueprint that did not fit in the scope of the current release (or in the scope of the project altogether) was a goal.
However, it became a bureaucratic step - it has been surely been perceived as that. Fast tracking blueprints which were already approved makes sense. I believe the process should be made even slimmer, removing the deadlines for spec proposal and approval, and making the approval process simpler - with reviewers being a lot less pedant on one side, and proposer not expecting approval of a spec to be a binding contract on the other side.
That being said, you can only get a feature merged if you propose a spec, and the only
people largely proposing specs are developers. This ingrains the open source culture of
developer focused evolution, that, while empowering and great for developers, is bad
for product managers, users (That are sometimes under-presented, as is the case I'm trying
to make) and generally causes a lack of a cohesive vision. Like it or not, the specs process
and the driver's team approval process form a sort of product management, deciding what
features will ultimately go in to Neutron and in what time frame.
We haven't done anything to limit reviews of specs by these other users, and in fact, I would love for more users to review these specs.
I think your analysis is correct. Neutron is a developer-led community, and that's why the "drivers" acting also as "product managers" approve specifications.
I don't want to discuss here the merits of the drivers team - that probably deserves another discussion thread - but as Kyle says no-one has been discouraged for reviewing specs and influencing the decision process. The neutron-drivers meetings were very open in my opinion. However, if this meant - as you say - that users, operators, and product managers (yes, them too ;) ) were left off this process, I'm happy to hear proposals to improve it.
We shouldn't ignore the fact that we clearly have people and product managers pulling the strings
in the background, often deciding where developers will spend their time and what specs to propose,
for the purpose of this discussion. I argue that managers often don't have the tools to understand
what is important to the project, only to their own customers. The Neutron drivers team, on the other hand,
don't have a clear incentive (Or I suspect the will) to spend enormous amounts of time doing 'product management',
as being a driver is essentially your third or fourth job by this point, and are the same people
solving gate issues, merging code, triaging bugs and so on. I'd like to avoid to go in to a discussion of what's
wrong with the current specs process as I'm sure people have heard me complain about this in
#openstack-neutron plenty of times before.
Yes I have heard you complaining. Ideally I would borrow concepts from anarchism to define an ideal way in which various contributors should take over the different. However, I am afraid this will quickly translate in a sort of extreme neo-liberism which will probably lead the project with self destruction. But I'm all up for a change in the process since what we have now is drifting towards Soviet-style bureaucracy.
Jokes apart, I think you are right, the process as it is just adds responsibilities to a subset of people who are already busy with other duties, increasing frustration in people who depends on them (being one of these people I am fully aware of that!)
Instead, I'd like to suggest a system that would perhaps
get us to implement specs that are currently not being proposed, and give an additional form of
input that would make sure that the development community is spending it's time in the right places.
While these are valid points, the fact that a spec merges isn't an indication that hte code will merge. We have plenty of examples of that in the past two releases. Thus, there are issues beyond the specs process which may prevent your code from merging for an approved spec. That said, I admire your guile in proposing some changes. :)
While 'super users' have been given more exposure, and operators summits give operators
an additional tool to provide feedback, from a developer's point of view, the input is
non-empiric and scattered. I also have a hunch that operators still feel their voice is not being heard.
I propose an upvote/downvote system (Think Reddit), where everyone (Operators especially) would upload
paragraph long explanations of what they think is missing in Neutron. The proposals have to be actionable
(So 'Neutron sucks', while of great humorous value, isn't something I can do anything about),
and I suspect the downvote system will help self-regulate that anyway. The proposals are not specs, but are
like product RFEs, so for example there would not be a 'testing' section, as these proposals will not
replace the specs process anyway but augment it as an additional form of input.
I personally do not believe in the viability of a system which gives priority to features based on "popular acclamation", mostly for the reasons kyle explains above.
Also, "additional form of input" leaves an uncomfortable grey area where whoever is authorized to approve spec will need to strike the right balance between what they believe are the right engineering priorities and what are the priorities set by the community through the system you propose.
Also, rather than having a different system, we might just sum the score associated with current neutron specs.
Proposals can range
from new features (Role based access control for Neutron resources, dynamic routing,
Neutron availability zones, QoS, ...) to quality of life improvements (Missing logs, too many
DEBUG level logs, poor trouble shooting areas with an explanation of what could be improved, ...)
to long standing bugs, Nova network parity issues, and whatever else may be irking the operators community.
The proposals would have to be moderated (Closing duplicates, low quality submissions and implemented proposals
for example) and if that is a concern then I volunteer to do so.
I think that the answer to a process issue is never more process. But this is just my personal opinion!
Anytime you introduce a voting system you provide incentive to game the system. I am not in favor of a voting system for anything involving specs. If people think things are important, they should be reviewing specs and collaborating to write specs. There are examples of people who have written specs and not done the work.
Do you mean the plugin perestroika thing? I'll never write a spec I don't intend to implement myself again!!!
Perhaps what we really need is for people to write specs with no assignee initially. Then we could have people looking for things to work on (there are many, I've been approached by many in the last months) to take those specs up.
This system will also give drivers a 'way out': The last cycle we spent time refactoring this and that,
and developers love doing that so it's easy to get behind. I think that as in the next cycles we move back to features,
friction will rise and the process will reveal its flaws.
I think the flaws are already quite clear, or do you reckon that there is something worse looming?
Something to consider: Maybe the top proposal takes a day to implement. Maybe some low priority bug is actually
the second highest proposal. Maybe all of the currently marked 'critical' bugs don't even appear on the list.
Maybe we aren't spending our time where we should be.
Those are all valid concerns. As a member of the drivers team I've personally asked myself these questions. Obviously this does not imply I had the right answers!
And now a word from our legal team: In order for this to be viable, the system would have to be a
*non binding*, *additional* form of input. The top proposal *could* be declined for the same reasons
that specs are currently being declined. It would not replace any of our current systems or processes.
I like the intent here, but I'm not sure we need an additional layer of input. What about the current specs process and bugs in LP isn't working that this will address specifically? It seems to me like you're saying people don't know how to use these, and this is another avenue for those people to suggest input into the project. I'm pondering the implications of that now.
Since it seems there a 1:1 mapping between specs and "proposals", your idea might be implemented in gerrit. Rather than submitting a proposal, submit a spec, and then have people give it a +1 or -1. Collect scores, and publish them on a web page.
Even if I do not think it is the right think to have it as a part of the decision process, it is probably a useful thing to have, and requires low maintenance.
For the specs process, I would rather consider how to delegate decision making around specs - for instance involving SMEs and cross-product team members - and how to make this process as smooth as possible.
Assaf Muller, Cloud Networking Engineer
OpenStack-operators mailing list
OpenStack-operators at lists.openstack.org<mailto:OpenStack-operators at lists.openstack.org>
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe<http://OpenStackemail@example.com?subject:unsubscribe>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the OpenStack-operators