godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Provide a better platform for polling community about features #2055

Closed YuriSizov closed 3 years ago

YuriSizov commented 3 years ago

Describe the project you are working on

Godot engine 🎉

Describe the problem or limitation you are having in your project

While the proposals are supposed to be the way to discuss things that the community wants in future versions of the engine, and measure the level of support from said community for each particular feature, it seems that the core team is relying more and more on their Twitter followers to gather public opinion about a proposed change.

This is a bad way to do it. First of all, the obvious and shared between all such instances problem is the audience. I'm sure a lot of people follow Reduz, Akien, and other members of the core team. However, Twitter is just one social platform. Not everyone uses it, so not everyone notices those polls or has an ability to cast a vote even if they get a direct link. The system is also easily abused and it harms the openness of the process.

Secondly, Twitter is not designed to discuss things in an organized manner, neither it is designed to provide clear comparisons between options. Two times in the recent history people were dissatisfied with how the information was presented about proposed changes, which skewed opinions towards one option or the other.

And just to make it clear that I am not angry that my favorite changes are getting rejected, the first time I am referring to has been about the float and integer division, where I stand with the core team on the final decision. But it doesn't mean that the way the information has been gathered hasn't affected the votes. There were several complaints that not everything about the options was obvious from the initial posts. And for every person who have complained there are several who just vote without realizing there is a problem with the presentation.

The second time I am referring to has been in the last couple of days with the editor coding font change. People were supposed to make a decision about a coding font based on a pair of blurry and compressed images which were hard to flip through without using external help. And some people even admitted to comparing those pictures on their phones. How good of a decision can a person make about their coding font preferences, when they check pictures of fonts on their phones?

But, despite the stated downsides, Twitter is still used as a platform to gather public opinions with dry numbers as opposed to weighted comments and arguments. In fact, it is the cases where there are weighted comments and arguments that provoke Twitter polls to appear.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

So in the current decision making process there is a clear desire to poll a large group of people to make as inoffensive decision as possible. I'd argue that this is not a good way to proceed, but that's beyond the point of this proposal. Here let's discuss an implementation of a platform that would be more suited for PRs and proposals to be evaluated against masses.

Arguably, Github's reaction feature could be utilized to track thumbs up and thumbs down, but Twitter polls are used on top of it already, and even despite of it. So maybe we need more ease of use and accessibility with our polls. After all, not everyone has a GitHub account just like not everyone uses Twitter. So we need a platform that would use OAuth to allow users to authorize with any social account they want to cast a vote. Maybe such a platform already exists, but I am not aware of it. Besides, I think it should be hosted as a part of the official website and be a part of the open process of discussing the proposed changes.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

A webpage can exist that allows users of all social (Facebook, Twitter, Reddit, etc) and development (GitHub, GitLab, StackOverflow, etc) websites to cast a signed vote in a poll in support or against of something. There doesn't need to be an account system or anything. OAuth can be used to sign votes and that's it. We wouldn't even need to store their emails or other tokens, if this is implemented properly.

Each proposed change would have its own page linking to the issue on GitHub. The options would need to be clearly presented by the author of the poll. As such, the page should allow not only for text, but for code blocks and images. A feature to compare with a click of a button two code blocks or two images would also be nice, as it would allow for a lot of subtle differences to pop out. Pretty sure there are libraries and services out there that could be utilized to implement this with minimal effort.

I'd also propose that a creator of the GitHub proposal or PR could make such a poll themselves, but that would require more work to implement securely, and would most likely result in a lot of unneeded polls. So keeping the right to create polls reserved to the core team and people with the website control panel access may be a better option still.

If this enhancement will not be used often, can it be worked around with a few lines of script?

This is a meta proposal.

Is there a reason why this should be core and not an add-on in the asset library?

This is a meta proposal.

Calinou commented 3 years ago

it seems that the core team is relying more and more on their Twitter followers to gather public opinion about a proposed change.

This is a bad way to do it. First of all, the obvious and shared between all such instances problem is the audience. I'm sure a lot of people follow Reduz, Akien, and other members of the core team. However, Twitter is just one social platform. Not everyone uses it, so not everyone notices those polls or has an ability to cast a vote even if they get a direct link. The system is also easily abused and is harms the openness of the process.

Most Godot development organization is done based on consensus (like Wikipedia, for instance). We only use voting as a last resort, never by default.

We resorted to voting for the various features you mentioned because we were unable to reach any reasonable consensus. Otherwise, we'd have rejected the features in question right away.

So we need a platform that would use OAuth to allow users to authorize with any social account they want to cast a vote. Maybe such a platform already exists, but I am not aware of it. Besides, I think it should be hosted as a part of the official website and be a part of the open process of discussing the proposed changes.

We have enough platforms already; I wouldn't spend time maintaining yet another platform. I've seen a few dedicated "feature vote" platforms (here's one) and they all ended up being poorly maintained.

YuriSizov commented 3 years ago

Most Godot development organization is done based on consensus (like Wikipedia, for instance). We only use voting as a last resort, never by default.

Yes, but that consensus is reached by likely three factors:

My only problem is that Twitter is not the best or even a good platform to use for mass polling for reasons stated. I see this as a way to reduce a decision to a flip of a coin. It also removes any incentive to cast a rational, educated and weighted opinion, if providing it is likely to make the issue end up in a Twitter poll of superficial opinions. This is hurting the process, and I'm saying it, again, after being on both sides of the argument.

We have enough platforms already, I wouldn't spend time maintaining yet another platform. I've seen a few dedicated "feature vote" platforms (here's one) and they all ended up being poorly maintained.

Then encourage people to vote on GitHub, where we already have that platform, plus can talk about features, and be done with the Twitter nonsense.

ShalokShalom commented 3 years ago

There seems also be a miscommunication on core aspects of the topic. Calinou just made a video, that says ligature support is already in since November and Akien just wrote on Twitter, that there is not even a PR ready and I think, ligatures are an important part of the new font.

https://youtu.be/3lm-veva15g?t=3m46s https://twitter.com/Akien/status/1344212805835231232

clayjohn commented 3 years ago

@ShalokShalom Please keep comments on topic. This thread is for discussing pycbouh's proposal to create (or find) a better polling platform for polling the community about new features.

ShalokShalom commented 3 years ago

Which would include communication about the topic. Do you agree that this is on-topic? To speak about the decisions, before and when we vote on them?

aaronfranke commented 3 years ago

@pycbouh If you want a polling option that doesn't require users to have a GitHub or Twitter account, how about Straw Poll? It's easy to create polls, and the polls can be linked to from GitHub or Twitter or IRC or anywhere else, and be voted on by anyone.

YuriSizov commented 3 years ago

I'll go ahead and close the issue. At the time it was posted, I didn't have a better way to express my concerns, but now we can use Godot Contributors Chat for this. I see no sense keeping this open, as the problem has been heard and will be considered as we move towards future.