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

Clarify the governance model of community-driven development #4799

Closed
wants to merge 1 commit into from
Closed

Clarify the governance model of community-driven development #4799

wants to merge 1 commit into from

Conversation

Xrayez
Copy link
Contributor

@Xrayez Xrayez commented Mar 31, 2021

@clayjohn
Copy link
Member

I think this is mostly good. However, I think the discussion in godotengine/godot-proposals#2531 needs to settle a little bit before we take action.

I would also offer one correction to the first line. Decisions are made by the community. The maintainers are community members just like everyone else who contributes to the engine and ecosystem. A person doesn't stop being a community member just because they are trusted by other maintainers.

I'll make a suggestion directly on the text for what I think may be a bit more accurate :)

Comment on lines 146 to 150
Community-driven does not mean that decisions are made by the community as
such. The Godot's governance model may be based on the feedback of the
community which directly influence, lead, and guide the final decision-making
of the core developers in relation to Godot's development and shape the
future behind Godot as a project.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Community-driven does not mean that decisions are made by the community as
such. The Godot's governance model may be based on the feedback of the
community which directly influence, lead, and guide the final decision-making
of the core developers in relation to Godot's development and shape the
future behind Godot as a project.
Community-driven does not mean that all decisions are made by voting.
Decisions are made by trusted community members who have shown
dedication, skill, and leadership within the community. The feedback of
the community directly guides final decisions in relation to Godot's
development and shapes the future behind Godot as a project.

Copy link
Contributor Author

@Xrayez Xrayez Apr 1, 2021

Choose a reason for hiding this comment

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

I disagree because:

  1. Decisions are not made by voting in either case. It's been discussed earlier by other core developers that voting only brings up necessary attention to the core dev team. But voting (or consensus) may indeed influence final decisions, which is all that matters, and that's how development is proceeded.
  2. The feedback of the community does not directly guides final decisions. It's the process of decision-making which may be influenced by the community. The community feedback should be the driving force for a change in a community-driven project, but it's not always the case that the fuel for change is purely community-based, there may be other motivations for a change.

I can amend my wording to be slightly more clear on semantical level, but I cannot apply these suggestions for the reasons above.

Copy link
Contributor Author

@Xrayez Xrayez Apr 1, 2021

Choose a reason for hiding this comment

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

Here's a slightly more concise and improved version of my own suggestion and the above, which reflects the reality:

Suggested change
Community-driven does not mean that decisions are made by the community as
such. The Godot's governance model may be based on the feedback of the
community which directly influence, lead, and guide the final decision-making
of the core developers in relation to Godot's development and shape the
future behind Godot as a project.
Community-driven does not mean that final decisions are made by the community as
such. Rather, Godot's development is based on community feedback which directly
guides the decision-making of people who earned trust of the core developers
that shape the future behind Godot as a project.

Of course, maintainers are also part of community, nobody denies that.

  1. More emphasis on the final decision, (meaning that the opinion of majority != final decision).
  2. Avoid the usage of "voting" word, because it's not democracy here, and never was.
  3. Not being specific on how trust is earned. I think it's totally subjective. Read reduz opinion on this, for instance:

Copy link
Contributor

Choose a reason for hiding this comment

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

At the very least, Clay's version reads better because it doesn't try to be one sentence. The more complex you make sentences, the more dependent parts there are, the harder they are to comprehend, which is against the goal of this PR.

Clay's take has 3 sentences answering individual questions:

  1. What "community-driven" isn't.
  2. Who makes the final decision.
  3. How is community involved then.

Copy link
Contributor Author

@Xrayez Xrayez Apr 1, 2021

Choose a reason for hiding this comment

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

I agree, the clarity can be improved. But simplification may lead to poor quality of the message as a whole.

If I were to suggest the edited clayjohn version, it would look something like this (the diff shows my initial version, though):

Suggested change
Community-driven does not mean that decisions are made by the community as
such. The Godot's governance model may be based on the feedback of the
community which directly influence, lead, and guide the final decision-making
of the core developers in relation to Godot's development and shape the
future behind Godot as a project.
Community-driven does not mean that final decisions are made by the community
at large. Decisions are made by community members who have earned trust within
the community. Yet community feedback directly guides this decision-making
process in relation to Godot's development and shapes the future behind Godot
as a project.

Which I think may be a good compromise between our versions.

Copy link

@LikeLakers2 LikeLakers2 Apr 1, 2021

Choose a reason for hiding this comment

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

I just woke up, so I may not be at 100% brain power, but here's my suggestion. I think it reads a little better while avoiding any potentially confusing technicalities. If not, I'll probably revise it later today.

Suggested change
Community-driven does not mean that decisions are made by the community as
such. The Godot's governance model may be based on the feedback of the
community which directly influence, lead, and guide the final decision-making
of the core developers in relation to Godot's development and shape the
future behind Godot as a project.
Community-driven does not mean that final decisions are made by the community
at large. Rather, decisions are made by trusted community members who have
shown dedication, skill, and leadership within the community. However,
community feedback often directly guides this decision-making process, which
allows the shaping of Godot's future as a project.

Note: I use "often" when saying it guides the decision-making process, as there are some rare cases where community feedback, even positive feedback, may not change the closure of a proposal.

Copy link
Contributor Author

@Xrayez Xrayez Apr 1, 2021

Choose a reason for hiding this comment

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

"which allows to shape Godot's future as a truly community-driven project" may read better as well, and may be worth repeating "community-driven" at the end to emphasize on the importance of the community feedback, at least it would make it more optimistic, IMO (applies to all suggestions above) 🙂

The idea is that core developers/maintainers should be responsible for representing the community needs in the best way possible, while also trading off various technical and economical debts. Basically, the community itself delegates the realization of this vision to trusted people who have experience in a particular field, and when this happens, we get a truly community-driven development, rather than less community-driven development as someone noted in the proposal linked godotengine/godot-proposals#2531... 😉

But that's just me rambling on philosophical level.

Copy link

@LikeLakers2 LikeLakers2 Apr 2, 2021

Choose a reason for hiding this comment

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

Hmm. How's this sound, then?

Suggested change
Community-driven does not mean that decisions are made by the community as
such. The Godot's governance model may be based on the feedback of the
community which directly influence, lead, and guide the final decision-making
of the core developers in relation to Godot's development and shape the
future behind Godot as a project.
Community-driven does not mean that final decisions are made by the community
at large. Rather, decisions are made by trusted community members who have
shown dedication, skill, and leadership within the community. However,
community feedback often directly guides this decision-making process, which
in turn allows the community to shape Godot's future as a truly
community-driven project.

P.S. I use "in turn" here, but I'm actually not sure whether it would read better with or without it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think this is pretty much it! I can commit this, but see #4799 (comment).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I committed all of the above suggestions based on consensus (thanks to LikeLakers2 for summing it up in a final text). Up to further discussion, of course.

@Xrayez Xrayez requested a review from reduz March 31, 2021 20:50
@Xrayez
Copy link
Contributor Author

Xrayez commented Apr 1, 2021

I'm awaiting review from @reduz, because I think it's the only thing which really matters in this case. I won't apply any suggestions until we get feedback from @reduz.

@Xrayez
Copy link
Contributor Author

Xrayez commented Apr 2, 2021

For reference, we've got a feedback from reduz and gdquest at Godot contributors chat:

image

@LikeLakers2
Copy link

We can simply document the governance and decision process in case there is any doubt.

Okay, I'm confused. Isn't that what we're doing here? Or am I misunderstanding something here? Because that's what I thought we were doing already.

@YuriSizov
Copy link
Contributor

YuriSizov commented Apr 2, 2021

@LikeLakers2 There is an ongoing PR that adds detailed information on this matter to the website: godotengine/godot-website#215

Unlike this, which adds a note in the article about engine design philosophy.

@Xrayez
Copy link
Contributor Author

Xrayez commented Apr 3, 2021

I do think it's important to emphasize that decisions are not made by the community, as @reduz stated. He keeps telling this to me and @aaronfranke over and over when we talk about this in chat. Merging both this PR and godotengine/godot-website#215 will suffice in my opinion.

@Xrayez
Copy link
Contributor Author

Xrayez commented Apr 3, 2021

To comment on:

There is not a single open source project that works this way, at much they have a democratic process between contributors to choose leadership [emphasis mine], but its still not direct decision by community, so I really find it difficult to think this can be misunderstood.

It's not democratic if it's only contributors who participate in voting. I doubt there's any voting in place. Perhaps it does exist, but only on the level of PLC and core developers. If you call this democratic, then I'm sorry but you have the same issue with understanding the "democracy" term just as much as I'm having a problem with understanding the "community-driven" term. 😛

I mean, I guess you can call the process democratic among contributors on some level, but that's just substitution of concepts, I would definitely not use the "democracy" term if we're also talk about community at large.

Again, I don't have a problem with the current governance model once I know about it. But I literally used to think that community does have a final call when there's a significant support of users and other contributors, which lead to unnecessary conflicts in the past.

@YuriSizov
Copy link
Contributor

That part that you've emphasized wasn't even talking about Godot. It was talking about what may exist in other OSS projects as opposed to what we have here.

@Xrayez
Copy link
Contributor Author

Xrayez commented Apr 3, 2021

@pycbouh please read the quote more carefully, it's an analogy, not contrasting characteristic.

@YuriSizov
Copy link
Contributor

@Xrayez I advise you to do the same. It's not an analogy, it's an example of what is present in the OSS realm. Reduz literally says, that no other OSS project has a more open or more community-dependent system than Godot. He says that at most other OSS projects may have a way for contributors to elect core maintainers, but that's it. He explains that you can't expect more than that in an OSS project.

And most importantly, he does not talk about it being applicable to Godot, he talks about it being the most that another OSS project may do. So there is not point in speculating that "I doubt there's any voting in place. Perhaps it does exist, but only on the level of PLC and core developers." Because nobody said that there is anything like that in Godot.

@Xrayez
Copy link
Contributor Author

Xrayez commented Apr 3, 2021

@pycbouh I disagree with you. You are wrong.

@reduz
Copy link
Member

reduz commented Apr 3, 2021

This is something that will be properly discussed with the project leadership before we put something up, closing this PR.

@reduz reduz closed this Apr 3, 2021
@godotengine godotengine locked and limited conversation to collaborators Apr 3, 2021
@godotengine godotengine deleted a comment from Xrayez Apr 3, 2021
@reduz
Copy link
Member

reduz commented Apr 3, 2021

Thanks for the effort, though 👍

@akien-mga
Copy link
Member

For the reference, the project governance is now documented on the Godot website: https://godotengine.org/governance

Godot's governance is organic and keeps evolving, so this document will also be updated along the way as more things are formalized.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Regarding the governance model and community-driven development
6 participants