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

Mudança no Processo de Criação de Propostas e Votação #27

Open
pauloelr opened this issue Dec 2, 2014 · 11 comments
Open

Mudança no Processo de Criação de Propostas e Votação #27

pauloelr opened this issue Dec 2, 2014 · 11 comments

Comments

@pauloelr
Copy link
Member

pauloelr commented Dec 2, 2014

Motivação

A criação desse repositório para discussões gerais sobre o PHPSP foi uma ideia muito boa do @duodraco, porém, como acredito que já foi percebido por outras pessoas, o processo de voatação através de labels se tornou muito lento pois exige que no mínimo metade +1 dos participantes vejam e aprovem cada uma das issues, o que pode variar muito dependendo da disponibilidade dos participantes no periodo

Pesquisa

Para elaboraçã dessa proposta tomei como base os processos atuais de RFC e Votação do PHP Internals (https://wiki.php.net/rfc/voting) e do FIG (https://github.com/php-fig/fig-standards/tree/master/bylaws)

Se avaliarmos hoje o processo de votação do PHP Internals temos algo do tipo:

  • Alterações que mantenha BC (50% + 1 dos votos)
  • Alterações que quebrem BC (2/3 dos votos)

Porém esse número leva em conta somente a quantidade relativa dos votos apresentados no periodo difinido para isso, conforme descrito no documento:

O mesmo documento defini que o autor da proposta deve definir quando a votação deve iniciar e quando deve terminar. No nosso caso acho que cabe ao autor da proposta também se responsabilizar por realizar o que for decidido ou indicar algum responsável (ou grupo de responsáveis) após já ter negociado isso com eles.

Proposta

  1. Definir tipos de Propostas, como por exemplo
    • Proposta de Evento
    • Proposta de Desenvolvimento
    • Proposta de Canal Social
    • Outras Propostas
  2. Definir o que é necessário para cada um dos tipos, como por exemplo
    • Periodo de Discussões
    • Data de Inicio da Votação
    • Periodo de Votação
    • Quantidade de Votos Necessários para Aprovação
    • Responsável (eis)

As labels então poderiam ser utilizadas para marcar os tipos de propostas e não mais os votos e os milestones poderiam ser utilizados para marcar as etapas das propostas

Conclusão

Aredito que ao modernizarmos o sistema de votação atual poderemos imprimir mais dinamizmo na aprovação dos temas propostos e tornar o processo de votação mais transparente para novos participantes

@williamespindola
Copy link
Member

E veja se eu entendi. Se cria a proposta ela tramita, entre uma data se durante a data ela atingir a quantidade necessária ela é implementada se não morre. É isto?

Algumas das discussões no hexagon não tiveram a quantidade de votos mas foram executadas com êxito. Talvez a implementação de votos negativos e neutros pode ajudar na votação. Exemplo, caso alguém não se interessa ou não tenha opinião sobre ela vota nulo, a partir dai a quantidade para aprovação pode diminuir. E o negativo atingindo a quantidade para definição mata a proposta. Ter uma data final pode ser legal.

Isto deve ser o mais simples e direto possível, porque senão via congresso nacional. hehehe

@pauloelr
Copy link
Member Author

pauloelr commented Dec 2, 2014

O voto negativo seria sim implementado, o voto nulo nesse caso é o mesmo que não votar.
A decisão do tempo em que a votação deve permanecer aberta na minha opinião deveria ficar a cargo do autor da issue, mas esse é exatamento o ponto que quero que é objetivo dessa Issue, chegar a um método mais eficiente de se tomar as decisões no grupo.

@williamespindola
Copy link
Member

Sim falei do voto nulo buscando diminuir a quantidade necessária para atingir a meta. Tipo, é necessário 7 se 2 se anularam é necessário apenas 5, fica mais fácil de atingir a meta e não precisa esperar a data final. Mas a data é bem legal.

@pauloelr
Copy link
Member Author

pauloelr commented Dec 3, 2014

Sim, realmente, o voto nulo poderia servir para fechar a votação antes mesmo da data limite, mas para isso precisariamos manter atualizada a lista de participantes com direito a voto, e como alguem que entra no grupo hoje passa a ter direito a esse voto.

Esse é outro ponto que já foi levantado quando conversamos sobre a criação de um sistema de karma e que poderia influenciar nas decisões dessa Issue

@jpjoao
Copy link
Member

jpjoao commented Mar 18, 2015

Acho que as issues no github não seja o melhor canal para isso. Apesar de dar bastante margem à discussão peca (e muito) na gerência de votos. Complicado demais para votar, contabilizar votos e entender o que esta acontecendo.

Sugiro a criação de uma sessão no site (tipo de post novo) para as "RFCs". Onde elas seria discutidas e votadas (sistema de enquete).

Dúvidas:

  • Os votos deveriam ser restritos a algum grupo de usuários ou aberto a todos os usuários que se registrarem no site? Ou talvez, restringir para os membros ativos da comunidade (que participem do slack, por exemplo)
  • Quem pode propor RFCs?
  • Qual formato da proposta?

@pauloelr
Copy link
Member Author

@jpjoao

Hoje concordo com você de que as issues não seriam o melhor lugar para realizar a votação.
Na época nem o canal do Slack ainda não existia, hoje acredito que ele pode ajudar nesse processo de discussão e votação, principalmente de discussão, mas as issues ainda poderiam ser utilizadas para discutir alterações nos documentos e os Pull Requests para validar os documentos que descrevem as decisões antes de serem de fato publicados.

@jpjoao
Copy link
Member

jpjoao commented Mar 18, 2015

Vejo duas possíveis soluções:
Issues são quase que exclusivamente apenas para problemas. Se tem um
problema, abre a issue e pronto.

Modificações e sugestões seria feitas pro RFCs que, se é quando aprovadas,
gerariam uma issue.

PRs seriam criados contra issues e pronto.

Ou:
Issues são criadas para qualquer coisa. Relatam o problema ou sugerem
melhoria.

Pessoas entram lá e opinam. Em algum momento uma RFC surge e se rejeitada
fecha a issue.

PRs são feitos contra issues com RFCs aprovadas.

Eu acredito mais na primeira opção.

O que tem acontecido hoje (motivo de minha crítica) é que o mesmo tema é
discutido em vários lugares (às vezes em várias frentes nos mesmos lugares)
e nada avança. Essa issue mesmo tem uma duplicada nesse repo e esta também
sendo discutida no Slack.

On Wednesday, March 18, 2015, Paulo Eduardo [email protected]
wrote:

@jpjoao https://github.com/jpjoao

Hoje concordo com você de que as issues não seriam o melhor lugar para
realizar a votação.
Na época nem o canal do Slack ainda não existia, hoje acredito que ele
pode ajudar nesse processo de discussão e votação, principalmente de
discussão, mas as issues ainda poderiam ser utilizadas para discutir
alterações nos documentos e os Pull Requests para validar os documentos que
descrevem as decisões antes de serem de fato publicados.


Reply to this email directly or view it on GitHub
#27 (comment)
.

Sent from my GMail

@pauloelr
Copy link
Member Author

Eu acredito mais na segunda opção, acho meio difícil controlar quais issues as pessoas vão abrir, ainda mais sendo esse um repositório público (com razão de ser).

Agora sobre discutir as issues em diversos canais eu não vejo isso como um problema, acho que elas podem sim ser discutidas onde cada um achar melhor, veja o caso do php.net, existe a lista de discussões onde devem ser anunciados os RFC's e Votações, mas as discussões não se restringem a essa lista, muita coisa é discutida nas próprias redes sociais, como Twitter e Facebook, canais do IRC também são frequentemente usados para discutir as RFC's

A única coisa que acho que tem que ser centralizado é um lugar fácil para votação (o php.net tem a wiki com o próprio sistema de votação, controle de acesso e karma) e um lugar onde ficariam documentadas as decisões que forem tomadas (O FIG documenta isso em arquivos Markdown no próprio repositório que são espelhados com uma formatação melhor no site deles, mas o site é somente um espelho, os documentos oficiais estão no repositório).

Concluindo, acho impossível limitar as discussões e as issues, e por isso acho que deveríamos focar mais em regulamentar o que é possível como votação e karma.

@jpjoao
Copy link
Member

jpjoao commented Mar 18, 2015

Do Slack:
@pauloelr Você tem razão. Eu não desliguei meu cérebro corporativo antes de pensar nas soluções. Como comunidade faz mais sentido “abrir as pernas” pra issues.
O que eu disse de discussão em vários lugares, na verdade era mais o problema de vários lugares para votar e não discutir. Por ter 2 issues abertas e usar as issues pra votar poderia ter uma coisa aceita em uma e rejeitada na outra.

Se forem criadas várias issues sobre o mesmo tema, podemos fechar todas e unificar em uma única com uma RFC e uma única votação. Não sei, temos que discutir isso.

Mas acredito ser um consenso que precisamos de uma solução para as RFCs, suas votações e consequentes decisões. Acho que seria possível, ao menos no princípio, fazer um esquema de usar um "post type" para criar as RFCs, instalar um plugin de votação só para usuários de ao menos um certo role (talvez um genérico de "membro ativo da comunidade"). o flow seria: usuário cria conta no site, envia a RFC, um moderador aprova a RFC e cria a votação; Votação rola e decisão é tomada.

Note que ignorei o karma e fui vago no que significa "membro ativo da comunidade". Ambos foram propositais.

  • Ignorar o karma pela simplicidade. Criar 200 dependências para que algo ocorra faz com que ele nunca ocorra. Karma pode entrar num segundo estágio.
  • "membro ativo da comunidade" seria até certo ponto um teste. Como deixar aberto pode virar várzea, exigiríamos um registro e alguma comprovação de que é um humano e único por de trás do login. Ir num meetup, entrar no slack, ir num evento, encontrar ocasionalmente algum moderador... qualquer tipo de contato humano daria esse direito ao voto. Ao menos no começo. Com isso veríamos até mesmo a quantidade de interessados e a necessidade ou não de uma ferramenta complexa (como o karma) para gerenciar quem pode ou não fazer as coisas. Até pq, se tiver muitos interessados isso significa mais mão de obra para criar os mecanismos necessários para "botar ordem na casa".

@jpjoao
Copy link
Member

jpjoao commented Mar 19, 2015

Acabo de lançar a versão 0.0.1 (focado em RFC) do plugin de wordpress wit-like-post:
https://github.com/jpjoao/wti-like-post/tree/0.0.2

Essa versão permite a escolha da categoria de posts que é para entrar em votação, votos sim e não para usuários logados, mostra os votantes, possui data limite (por post) para fim da votação.

@jpjoao
Copy link
Member

jpjoao commented Aug 12, 2015

Plugin agora conta com sistema de "karma". Somente usuários com essa opção podem votar. Somente admins podem colocar ou tirar karma de usuários. Karma, por enquanto, é booleano. Quando tivermos um sistema de métrica para karma ele pode ser baseado em valor mínimo.
O voto pode ser modificado a qualquer momento (enquanto a votação estiver aberta).

image

Detalhes em:
https://github.com/jpjoao/wti-like-post/tree/dev

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

No branches or pull requests

3 participants