[openstack-dev] [Openstack-operators] [Neutron] The specs process, effective operators feedback and product management

Salvatore Orlando sorlando at nicira.com
Thu Apr 9 16:18:48 UTC 2015


On 9 April 2015 at 17:04, Kyle Mestery <mestery at mestery.com> wrote:

> On Thu, Apr 9, 2015 at 9:52 AM, Assaf Muller <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.
>>
>> Agreed.
>
>
>> 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.



>
> Thanks,
> Kyle
>
>
>> Assaf Muller, Cloud Networking Engineer
>> Red Hat
>>
>> _______________________________________________
>> OpenStack-operators mailing list
>> OpenStack-operators at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators
>>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150409/6fbf06e0/attachment-0001.html>


More information about the OpenStack-dev mailing list