Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Program Deprecation RFC - CLOSED #22

Merged
merged 1 commit into from Jun 10, 2020
Merged

Conversation

mindthegab
Copy link
Member

@mindthegab mindthegab commented Jan 13, 2020

Dear PMCs and Community,

as presented over the last 2 Pan-PMC meetings, the Board has discussed in October a proposal to simplify the FINOS Governance with the goal of reducing overhead for contributors and community leaders, while enabling the FINOS team to efficiently grow the community through a simplified message and process, also based on objective criteria defined by with the previous RFCs approved last year (the Project Lifecycle revision).

Please post your feedback by:

  • Adding a comment on a specific line of the commit
  • Post overarching comments below
  • Use +1 / 👍 or -1 / 👎 to cast your vote

This RFC is open until February 15th 2020.

@mindthegab mindthegab added the rfc Request for Comments label Jan 13, 2020
@mindthegab mindthegab requested a review from a team January 13, 2020 08:23
@bingenito
Copy link
Member

For anyone looking for the formatted markdown of this PR to make it easier to initially read, here is a link directly to the branch file - https://github.com/finos/finos-pmcs/blob/program-removal-rfc/rfcs/202001-rfc-program-removal.md

@rikoe
Copy link

rikoe commented Jan 13, 2020

@bingenito you can also view from the PR by using the "Rich Diff" feature:

image

This is how to enable it:

image

@rikoe
Copy link

rikoe commented Jan 13, 2020

I would like to request that the new proposal for project at the top level still support the idea of multiple "working groups" or "teams" per project, which would correspond to different sub-teams that cover particular disciplines.

E.g. in FDC3, we are working on the same project, and in the same repository in GitHub, but the "API team" and the "Use Case team" have separate meeting times and mailing lists, as not everything covered in every meeting is relevant for everyone.

I view this as, for example during a large software development project, while one project, you might have multiple chat channels/email groups, e.g. for the UI team, the server team and the DevOps team.

I expect this to be the exception, not the rule, but it will be great if the new project model can support such a structure, even if it is mostly self-governed by each project. I think the easiest way to accomplish this is via GitHub sub-teams for the project, and email/chat setup to correspond to the GitHub teams.


Programs were designed to be self-governing, managed by a Program Management Committee of contributors to the projects within each program. Programs were required to abide by the high-level governance requirements of the FINOS Program Governance Policy (PGP) and to adopt a Program Operations Policy (POP) setting out their own particular operational rules. (Most adopted the “standard” POP recommended by the Foundation.)

This governance structure was largely borrowed from other open source foundations with mature projects produced by many active contributors experienced with open source collaboration. FINOS is different: our members are still new to open source collaboration and many FINOS projects are experimental or less mature. For many participants, the projects they contribute to are not essential to their daily work, so participation in FINOS governance is extra work with little reward. Strict requirements to constitute a PMC, hold meetings, and report regularly on program activity can be burdensome or pointless for programs whose projects are loosely connected and immature.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strict requirements to constitute a PMC, hold meetings, and report regularly on program activity can be burdensome or pointless for programs whose projects are loosely connected and immature.

You can eliminate these requirements without eliminating the program. Bathwater & baby.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tschady This raises a really excellent point. Certainly the quarterly reporting requirements around programs is up to us/FINOS to decide, so any burden there is self imposed. My experience is that the governance around meeting structure, agendas, and minutes at the program level is legal/compliance driven. @mindthegab @brooklynrob if a project still holds meetings, would they be under the same governance obligations as programs currently are?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nkolba @tschady That's correct, Nick. The "quarterly reporting requirements around programs is up to us/FINOS to decide" and, I think, especially the FINOS Board as that's for whom the quarterly reports are prepared.

As the primary architect of the quarterly health check template and measures I can share that our impetus was to give us the ability to report on our open source programs and projects in a manner, style, and quantitative rigor that I think, based on my strategy consulting experience, is often expected in Fortune 500 corporations, especially in financial services.

A year+ in we've heard the feedback that many of program PMCs think the quarterly health check burden is too much. Personally, I think part of the reason is that the responsibility tends to fall too much on just the PMC lead, not the wider PMCs. And I agree with Tom's point that the burden can feel especially high for those programs that are immature and/or for which the projects are "loosely connected". And while I think we've made a lot of progress in centralizing and automating reporting of the metrics we ask for, there is still more we can do.

Back to Nick's question -- regarding program/project meetings themselves, you are right that the requirements around agenda, minutes, etc. are largely "legal/compliance driven", especially from our anti-trust policy.

Copy link

@tschady tschady Jan 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Q health check takes < 15m / quarter (foreground), plus the roadmap generation which I think should be done anyway. If someone thinks the work is too much, then they value the results at 0.

That's the issue to talk about. Why do PMCs think the health check is useless? Maybe it's the wrong PMC, maybe they're the wrong metrics, maybe we don't understand something.

I don't want to read between the lines Rob. Did the board ask for these metrics, or did you assume? Standing in the future, looking back on a successful FINOS org, at the variety of major and minor successful projects, these health checks had nothing to do with those victories.

The only reason I can think to continue is the board has explicitly mandated these, and you need them for survival.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We currently have reporting at project level and at program level, not necessarily 100% aligned.

We need some kind of reporting on a periodic basis up to the board, because yes that's how we can measure progress (you can't improve what you can measure).

But what we found consistently is that program level reporting does often masquerade the real progress or real issues, which happen at project level.

So the proposal is not to move away from reporting at all but to remove a governance superstructure which has provided no benefits but often confused the Board on the actual progress of "production" units (software and standard projects. This is especially true when projects within a program are loosely connected (like in DT or FDX).

Project reporting will continue up to the Board and will be very focused on the "incubating" vs "active" objective criteria we approved last year.

Note that we'll still be able to theme / tag projects around similar concepts, all it's suggested here is to remove the "governance" aspect of programs.

<tr>
<td>Programs are self-governing on technology and lifecycle matters
</td>
<td>Programs have become a governance overhead for FINOS and PMCs
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

n=1, but there is little overhead for me

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As DT PMC, I'm one of the complaining voices about "governance overhead".
The main frustrations are:

  1. Having to chase Project Owners quarterly sucks fun out of the role. I can only fire off a few emails to Project Owners to remind them of their responsibilities. FINOS has more levers to pull to ensure compliance with the process.

  2. Me digging through their meeting minutes (if sufficiently detailed) is useful in some ways. However, the DT program has extremely broad scope and some of the projects are simply less interesting to me personally than others. That's not a dig at the projects. Just some of them don't solve problems that come up day-to-day for me personally.

  3. I don't enjoy the process of trying to squeeze information of 4 disparate Projects onto a PowerPoint slide.

I felt that the Roundtable discusions at Trading Show NYC were far more satisfying. It had a good mix of existing FINOS participants as well as outsiders who seemed pleasantly surprised to learn of FINOS's mission. That provides motivation to continue toil in relative obscurity. (Takes 5 years to become an overnight success, right?)

Expanding it beyond New York might require a better handle on how to moderate videoconferences...



1. **Do away with programs and PMCs**: Projects will live at top level. They can still be categorized around similar themes and areas of interest in Github (theming / tagging) and other web properties.
2. **FINOS approval role in software projects**: FINOS team approves new software projects and lifecycle transitions, based on objective criteria of [Incubating](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/75530363/Incubating) and [Activation](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/75530376/Activation). An appeal process to the Board is provided to contributors and community members to ensure impartiality and appropriate checks and balances.
Copy link

@tschady tschady Jan 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you need to be careful on new projects, the FINOS team is tiny and from my view already strained. I would aim to distribute or automate responsibility as much as possible, not concentrate it further.
You don't double down on a bottleneck.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tschady thanks for the thoughtful comments.

In our experience, the bottleneck on approving new projects has never been the FINOS team, it's been instead the unsustainable amount of politics, backchannel emails, as well as dead-on-arrival projects which have not been properly policed by PMCs, therefore making the full responsibility fall back on FINOS.

In this sense, this proposal:

  1. Reduces the overhead for the FINOS team (we know and understand the governance, and it's easier for us to do it than getting others to do it the right way)
  2. Aligns incentives. The FINOS team, as small as it is, has no interest in starting projects which don't have any support from the community or more importantly the initial contributors.
  3. Allows for faster experimentation (which I know it's close to your heart) - we expect to be able to approve new projects much quicker, without hanging on largely unresponsive PMCs, etc.

I am sure you'd agree I'm in a prime position to make judgements on the FINOS team capacity (which is BTW expected to grow this year), so I'd ask to trust my judgement on this one, as it's based on data gathered of the whole last year.

@tschady
Copy link

tschady commented Jan 14, 2020

Initial thoughts:

I think you'll be deleting a natural scaffold for community. Program cultures might need more time to grow. I understand your conclusions on the 'con' side, but I think you've seen these because the overwhelming focus from the FINOS organization has been on bureaucracy, not solving problems or focusing on growth. I hope this doesn't sound harsh, I think the evidence supports my position: just look at the agendas for every pan-PMC meeting and you'll see they are 90% hygiene and bookkeeping. We're quite close to some good ideas - the recent 'roadmap delta' idea for the board meeting has potential.

My overhead as a PMC lead is almost nil. What little there is could be automated away with an expansion of the metadata-tool and an extra dotfile in each project.

I think doing away with this layer is going to have costs you are not predicting or ready for: it would not affect my day-to-day or that of the projects I'm in (besides perhaps increasing delays for administrivia), but I do think there will be a loss of potential community development.

I suppose a collection of projects could voluntarily organize under an unofficial program banner if they thought it furthered their goals.

I do think there needs to be a change: I would jettison the focus on bookkeeping, however comforting, and instead talk about setting up an environment where experimentation thrives, and good software comes out the other side. Communities enable that. You can't force a community through official Program decree, but I think it might help.

@mindthegab
Copy link
Member Author

Hey @rikoe - I created #23 to track this. We are actually meeting in 6m from now to discuss exactly this /cc @brooklynrob @mcleo-d and we'll report back.

I would like to request that the new proposal for project at the top level still support the idea of multiple "working groups" or "teams" per project, which would correspond to different sub-teams that cover particular disciplines.

E.g. in FDC3, we are working on the same project, and in the same repository in GitHub, but the "API team" and the "Use Case team" have separate meeting times and mailing lists, as not everything covered in every meeting is relevant for everyone.

I view this as, for example during a large software development project, while one project, you might have multiple chat channels/email groups, e.g. for the UI team, the server team and the DevOps team.

I expect this to be the exception, not the rule, but it will be great if the new project model can support such a structure, even if it is mostly self-governed by each project. I think the easiest way to accomplish this is via GitHub sub-teams for the project, and email/chat setup to correspond to the GitHub teams.

I would like to request that the new proposal for project at the top level still support the idea of multiple "working groups" or "teams" per project, which would correspond to different sub-teams that cover particular disciplines.

E.g. in FDC3, we are working on the same project, and in the same repository in GitHub, but the "API team" and the "Use Case team" have separate meeting times and mailing lists, as not everything covered in every meeting is relevant for everyone.

I view this as, for example during a large software development project, while one project, you might have multiple chat channels/email groups, e.g. for the UI team, the server team and the DevOps team.

I expect this to be the exception, not the rule, but it will be great if the new project model can support such a structure, even if it is mostly self-governed by each project. I think the easiest way to accomplish this is via GitHub sub-teams for the project, and email/chat setup to correspond to the GitHub teams.

@mindthegab
Copy link
Member Author

Hey @tschady,

thanks again for such a thorough review. This is exactly the type of deep engagement we'd love all our PMC Members and Community leaders to have.

See my answers interleaved:

Initial thoughts:

I think you'll be deleting a natural scaffold for community. Program cultures might need more time to grow. I understand your conclusions on the 'con' side, but I think you've seen these because the overwhelming focus from the FINOS organization has been on bureaucracy, not solving problems or focusing on growth.

This is exactly what we are trying to change. Remove governance overhead and governance structures which to date have proven to create a LOT of work - in part for PMCs but mostly for the FINOS team - and provide a streamlined process whereby new projects can come in the Foundation quickly to experiment, without having to:

  1. Find a proper program in a highly partitioned space (or start a new program with all the burden, process and procedure required)
  2. Win the minds (and potential political concerns) of the PMC

I hope this doesn't sound harsh, I think the evidence supports my position: just look at the agendas for every pan-PMC meeting and you'll see they are 90% hygiene and bookkeeping. We're quite close to some good ideas - the recent 'roadmap delta' idea for the board meeting has potential.

My overhead as a PMC lead is almost nil. What little there is could be automated away with an expansion of the metadata-tool and an extra dotfile in each project.

You are the model PMC member, unfortunately there's only 1 or 2 programs which are in this situation.

I think doing away with this layer is going to have costs you are not predicting or ready for: it would not affect my day-to-day or that of the projects I'm in (besides perhaps increasing delays for administrivia), but I do think there will be a loss of potential community development.

I suppose a collection of projects could voluntarily organize under an unofficial program banner if they thought it furthered their goals.

I agree with that. We would reach out to the community to define what the taxonomy is to improve discoverability. It's important to have some kind of grouping, but we found that a one dimensional highly partitioned space is more of an issue for community development than any advantage (for example, we have seen very little evidence of PMCs actually feeling partly responsible for growing their program.

I do think there needs to be a change: I would jettison the focus on bookkeeping, however comforting, and instead talk about setting up an environment where experimentation thrives, and good software comes out the other side. Communities enable that. You can't force a community through official Program decree, but I think it might help.

I think we are fully aligned on intents. That was our view 2 years ago when we put together the program construct, but despite several efforts to train, document and provide federated governance, unfortunately at this point programs have proven to be more of a burden (again mostly for the FINOS team, which is constantly prodding, nudging and going after PMCs - also creating a negative dynamic, a vicious circle we ought to break).

I'd be happy to get on a call with you to walk you through this proposal which received overwhelming support from the Board and how we can improve it.

@rikoe
Copy link

rikoe commented Jan 15, 2020

As in all things, it is helpful to look at where others have already forged a path. I really like the following:

https://landscape.cncf.io/format=card-mode&project=hosted

The Cloud Native Computing Foundation has one top-level construct - projects - and a status of Graduated, Incubating and Sandbox. Nice and simple, and website like the above make it really easy to navigate and discover projects.

However, you will note that there isn't necessarily a one-to-one relationship between CNCF "projects" and a single GitHub repository. E.g. fluentd has its own GitHub organisation: https://github.com/fluent.

I think simplicity and discoverability is key, as is flexibility. We don't want to put people off with process or rules.

"The process should work for us, we shouldn't work for the process."

@mindthegab
Copy link
Member Author

100% agreed. My answers below:

As in all things, it is helpful to look at where others have already forged a path. I really like the following:

https://landscape.cncf.io/format=card-mode&project=hosted

Our project catalog was largely modeled around that https://finos.github.io/?sort=hotness-down and we are planning improvements in Q1/Q2.

The Cloud Native Computing Foundation has one top-level construct - projects - and a status of Graduated, Incubating and Sandbox. Nice and simple, and website like the above make it really easy to navigate and discover projects.
That's what we are going after.

However, you will note that there isn't necessarily a one-to-one relationship between CNCF "projects" and a single GitHub repository. E.g. fluentd has its own GitHub organisation: https://github.com/fluent.

That is already supported in FINOS. One FINOS project can already have multiple repositories. See for example "Hadouken" or "Symphony Java Client" who have 2 repositories per project. So I think we are 100% aligned here.

I think simplicity and discoverability is key, as is flexibility. We don't want to put people off with process or rules.

The goal here would be to define a multidimensional (e.g. "user centric" or "tech centric") taxonomy of projects and keep discoverability high vs having a single highly partitioned program taxonomy - which was never meant to be a "messaging" framework (and creates hurdles for new contributors in an industry new to open source) but a governance structure (which largely hasn't worked).

"The process should work for us, we shouldn't work for the process."

@mindthegab
Copy link
Member Author

As an update, the Board has NOT discussed this topic at the last Board meeting and so I have extended the RFC for another 15 days to allow for more collaboration.

@mindthegab mindthegab changed the title Please review Program Removal RFC by Jan 31st 2020 Program Deprecation RFC - CLOSED Apr 21, 2020
@mindthegab
Copy link
Member Author

Dear PMCs and especially @tschady @rikoe @jbjonesjr @nkolba @bingenito,

thank for chiming in here.

In response to:

  1. Your feedback on this issue
  2. The changed market conditions with COVID-19 and the need to even more double-down on value delivery and defocus on governance

I have slightly modified this proposal and the related one to introduce a TAC (Technical Advisory Council) which I presented to the Pan-PMC meeting on 3-31 and plan to bring a consolidated proposal to the Board at our meeting tomorrow after having reviewed it with the Membership & Governance Committee.

I'm attaching a detailed set of slides which I'll present to the Board tomorrow (also available on Google Slides here), but will recap the highlights here before closing this RFC:

  1. We will be moving to "deprecate" (as opposed to "remove") Programs: This means no new Programs will be spun up and that existing Programs will be asked if they want to continue operating as Programs or disband and turn into one or more top level Projects. This "softer" approach will allow of us to slow-roll this change and also to take enough time to evaluate replacement options like a TAC, while existing governance will still be in place and so we can all focus on delivering value/innovation instead of having a massive load to update all of our public documentation. This slide shows a potential recommendation how existing programs can morph but of course we'll work with each of you to decide the best course of action.

  2. If there's general consensus tomorrow, over the next quarter we'll work with identify charter, initial deliverables and a roster for a technical advisory committee. This appendix shows a potential proposal, but again we'll work openly with the Community to understand value and how to make the TAC most effective before starting it.

  3. In the meanwhile, per our previous discussions, the FINOS officers will seek tomorrow authority to approve new (program-less) Projects and transition them through the lifecycle based on objective criteria, as well as to work with Programs to wind down those who choose to do so without requiring piece meal Board approval. If then the TAC is approved some responsibilities can be moved to the TAC at a later stage, but we expect this will streamline the process and have the FINOS team focus on governance while the Community can focus on delivering valuable solutions to pan-industry issues. Of course we as FINOS team have the best interest in seeking advise from Board (and TAC if its gets created) and any of you will always be able to appeal to the Board in case there's any concern with FINOS decisions.

I will proceed with closing this RFC and again thanking you for your very useful feedback here. And hope you like this middle-ground proposal, which effectively allows Programs that choose so to continue operating if they see value in it, while we look forward to a less onerous and more streamlined way of governing our Community.

2020Q2 - FINOS Program Deprecation proposal - For Board.pdf

/cc @brooklynrob @toshaellison @maoo @mcleo-d @aitana16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-present rfc Request for Comments
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants