Olá! Meu nome é Dmitry Pavlov e trabalho em Também sou committer e membro do PMC do Apache Ignite e contribuo para o Apache Training. Recentemente, palestrei sobre o trabalho de committer em um encontro de código aberto do Sberbank. Com o crescimento da comunidade de código aberto, muitas pessoas têm dúvidas sobre como se tornar um committer, quais tarefas assumir e quantas linhas de código escrever para alcançar esse papel. Quando pensamos em committers, imaginamos imediatamente indivíduos todo-poderosos e oniscientes com uma coroa na cabeça e um exemplar de "Clean Code" em vez de um cetro. Será que isso é realmente verdade? Neste post, tentarei responder a todas as perguntas importantes sobre committers para que você possa entender se essa função é realmente para você.

Todo recém-chegado à comunidade de código aberto tem um pensamento furtivo de que nunca se tornará um committer. Afinal, para muitos, é um cargo prestigioso, alcançável apenas por meio de conquistas excepcionais e da escrita de toneladas de código. Mas não é tão simples assim. Vamos analisar o committer da perspectiva da comunidade.
Quem é um committer e por que ele é necessário?
Ao criar um novo produto de código aberto, sempre permitimos que os usuários o utilizem e explorem, bem como o modifiquem e distribuam cópias modificadas. Mas quando ocorre a distribuição descontrolada de cópias modificadas do software, não recebemos contribuições para o código principal e o projeto fica estagnado. É aqui que um committer, que tem a autoridade para coletar as contribuições dos usuários, se torna essencial.
Por que se tornar um committer?
Comecemos pelo fato de que a capacidade de fazer commits é um ponto positivo no currículo e, para quem está começando na programação, é um ponto ainda mais positivo, já que exemplos de código são frequentemente solicitados ao se candidatar a um emprego.
A segunda vantagem inegável de ser um colaborador é a oportunidade de interagir com os melhores especialistas e incorporar ideias inovadoras do código aberto ao seu projeto. Além disso, se você tiver conhecimento sobre um produto de código aberto, poderá conseguir um emprego em uma empresa que o apoie ou utilize. Há até quem acredite que, se você não contribuir para o código aberto, não alcançará posições de destaque na carreira.
Além dos benefícios para a carreira e o emprego, o comprometimento em si já é gratificante. Você é reconhecido pela comunidade profissional e vê claramente os resultados do seu trabalho. Diferentemente de alguns projetos de desenvolvimento corporativo, onde às vezes você não tem ideia do porquê de estar movendo campos em XML.
Você pode encontrar especialistas renomados como Linus Torvalds em comunidades de código aberto. Mas se você não faz parte delas, não pense que não há nada a fazer por lá — existem desafios em todos os níveis.
E também existem alguns bônus adicionais: os colaboradores do Apache, por exemplo, recebem uma licença gratuita do IntelliJ IDEA Ultimate (embora com algumas limitações).
O que preciso fazer para me tornar um committer?
É simples: você precisa se comprometer.

Se você acha que não há trabalho para você em nenhum projeto, está enganado. Basta se juntar à comunidade que lhe interessa e fazer o que for necessário lá. A Apache Software Foundation tem um programa separado para isso. com requisitos para os contribuidores.
Que problemas você terá que resolver?
O trabalho varia bastante, desde o desenvolvimento até a escrita de testes e documentação. Sim, as contribuições de testadores e documentadores são tão valorizadas na comunidade quanto as dos desenvolvedores. Há também tarefas não convencionais, como administrar um canal no YouTube e explicar a outros usuários como usar um produto de código aberto. Por exemplo, a Apache Software Foundation tem uma seção separada dedicada a isso. , onde é indicado que tipo de assistência é necessária.
É preciso desenvolver uma funcionalidade complexa para se tornar um committer?
Não. Não é de todo necessário. Um colaborador não deve escrever toneladas de código. Mas se você escreveu uma funcionalidade importante, será mais fácil para o comitê de gerenciamento do projeto avaliá-lo. Contribuir para a comunidade não se resume apenas a funcionalidades, programação e testes. Escrever um e-mail explicando um problema e propondo uma solução fundamentada também é uma contribuição.
É importante entender que o comprometimento é uma questão de confiança. Se você se tornará ou não um colaborador é decidido por pessoas como você, com base na visão que elas têm de você como alguém que agrega valor ao produto. Portanto, você deve conquistar essa confiança por meio de suas ações e realizações na comunidade.
Como se comportar?
Seja construtivo, positivo, educado e paciente. Lembre-se de que, em projetos de código aberto, todos são voluntários e ninguém deve nada a ninguém. Se não responderem, espere e lembre-os da sua pergunta em 3 ou 4 dias. Se continuarem sem responder, bem, o trabalho em projetos de código aberto é voluntário.

Não peça que façam nada por você ou em seu lugar. Os membros experientes da comunidade têm um faro apurado para esses "pedintes" e desenvolvem imediatamente uma aversão a quem tenta lhes impor o trabalho.
Se alguém te ajudar, ótimo, mas não abuse da ajuda. Não diga: "Pessoal, resolvam isso ou vou perder meu bônus anual". Em vez disso, pergunte qual o próximo passo e compartilhe o que você descobriu sobre o bug. E se você prometer atualizar a wiki assim que o problema for resolvido, a probabilidade de uma resposta aumentará exponencialmente.
Por fim, continue a leitura. e aprender .
Como contribuir se você não for um committer?
Os projetos geralmente utilizam o modelo RTC (Release-To-Council), no qual todos passam primeiro por um processo de revisão e, em seguida, suas alterações são incorporadas à branch principal. Com esse sistema, absolutamente todos passam por uma revisão, inclusive os committers. Portanto, você pode contribuir com sucesso para o projeto sem ser um committer. E para ser selecionado como committer com mais facilidade, você pode orientar novos membros, compartilhar seu conhecimento e criar novos materiais.
Diversidade – benefício ou prejuízo?
A diversidade, conforme definida pela Apache Software Foundation, inclui a afiliação dos participantes de um projeto de código aberto a múltiplas empresas. Se todos estiverem afiliados a apenas uma organização, caso essa organização perca o interesse no projeto, todos os participantes o abandonarão rapidamente. A diversidade garante longevidade, estabilidade, experiências diversas e uma ampla gama de opiniões.
Por amor ou por dinheiro?
Os projetos de código aberto geralmente contam com dois tipos de pessoas: aquelas que trabalham para a organização que contribui para o projeto e aquelas que trabalham lá por paixão — os voluntários. Quem é mais produtivo? Normalmente, são os colaboradores que apoiam o projeto em nome da organização que contribui. Eles simplesmente têm mais tempo e uma motivação clara para se aprofundarem nos problemas; estão focados na tarefa em questão e mais próximos do usuário.
Aqueles que participam "por amor" também são motivados, mas de uma forma diferente: estão ansiosos para explorar o projeto e tornar o mundo um lugar melhor. E são justamente esses participantes que se mostram mais estáveis e com uma visão de longo prazo, pois quem entra na comunidade por iniciativa própria dificilmente a abandona da noite para o dia.
Como encontrar o equilíbrio entre produtividade e estabilidade? Existem duas opções. A primeira é quando o participante trabalha para uma empresa que apoia oficialmente o projeto de código aberto e contribui para ele em nível pessoal, por exemplo, auxiliando os recém-chegados. A segunda opção é uma empresa que passou por uma transformação em direção ao código aberto. Por exemplo, quando os funcionários dedicam quatro dias por semana ao projeto principal da empresa e o restante do tempo ao projeto de código aberto.
Committer - ser ou não ser?

Ser um committer é um tópico bom e útil, mas você não deve almejar se tornar um. Esse papel não é conquistado por meio de código e não comprova seu conhecimento. O que importa é a expertise — o conhecimento e a experiência que você adquire estudando o projeto, aprofundando-se nele e ajudando outros a resolver problemas.
Fonte: habr.com
