[all][tc] Formalizing cross-project pop-up teams

Thierry Carrez thierry at openstack.org
Thu Jan 31 10:19:57 UTC 2019


TL;DR:
Maybe to help with cross-project work we should formalize temporary 
teams with clear objective and disband criteria, under the model of 
Kubernetes "working groups".

Long version:

Work in OpenStack is organized around project teams, who each own a set 
of git repositories. One well-known drawback of this organization is 
that it makes cross-project work harder, as someone has to coordinate 
activities that ultimately affects multiple project teams.

We tried various ways to facilitate cross-project work in the past. It 
started with a top-level repository of cross-project specs, a formal 
effort which failed due to a disconnect between the spec approvers (TC), 
the people signed up to push the work, and the teams that would need to 
approve the independent work items.

This was replaced by more informal "champions", doing project-management 
and other heavy lifting to get things done cross-project. This proved 
successful, but champions are often facing an up-hill battle and often 
suffer from lack of visibility / blessing / validation.

SIGs are another construct that helps holding discussions and 
coordinating work around OpenStack problem spaces, beyond specific 
project teams. Those are great as a permanent structure, but sometimes 
struggle to translate into specific development work, and are a bit 
heavy-weight just to coordinate a given set of work items.

Community goals fill the gap between champions and SIGs by blessing a 
given set of cross-community goals for a given release. However, given 
their nature (being blessed by the TC at every cycle), they are a better 
fit for small, cycle-long objectives that affect most of the OpenStack 
project teams, and great to push consistency across all projects.

It feels like we are missing a way to formally describe a short-term, 
cross-project objective that only affects a number of teams, is not tied 
to a specific cycle, and organize work around a temporary team 
specifically formed to reach that objective. A team that would get 
support from the various affected project teams, increasing chances of 
success.

Kubernetes encountered the same problem, with work organized around 
owners and permanent SIGs. They created the concept of a "working 
group"[1] with a clear limited objective, and a clear disband criteria. 
I feel like adopting something like it in OpenStack could help with work 
that affects multiple projects. We would not name it "working group" 
since that's already overloaded in OpenStack, but maybe "pop-up team" to 
stress the temporary nature of it. We've been sort-of informally using 
those in the past, but maybe formalizing and listing them could help 
getting extra visibility and prioritization.

Thoughts? Alternate solutions?

[1] 
https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md

-- 
Thierry Carrez (ttx)



More information about the openstack-discuss mailing list