|
| 1 | +== Mecânica de contribuição |
| 2 | +Você está pronto para começar a contribuir com outras equipes de projetos / repositórios? |
| 3 | +Você está ansioso para reduzir seus bloqueadores não pela escalada de gerenciamento, mas pela colaboração? |
| 4 | +Esta seção fornece conselhos práticos e destaca as gotchas para lembrar ao fazer uma contribuição do InnerSource. |
| 5 | +Ele permite que você e a equipe anfitriã tenham uma experiência o mais agradável possível, estabelecendo a base para mais contribuições e grande colaboração. |
| 6 | +Este artigo é separado nas três etapas que você provavelmente experimentará |
| 7 | +* <<preparação para o trabalho, Solicitando sua oportunidade de contribuição e preparando-se para trabalhar sobre ele>> |
| 8 | +* <<criar-o-pull-request, Na verdade, criando a contribuição>> |
| 9 | +* <<enviar-o-pedido-pull, polir e embrulhar o presente bem e apresentá-lo para a equipe do anfitrião>>. |
| 10 | +Se a sua contribuição for maior, você possivelmente percorrerá (alguns) desses passos repetidamente à medida que você iterar em direção ao seu objetivo comum. |
| 11 | +É muito provável que, ao fazer isso, tudo se sinta cada vez mais natural-talvez você até se pergunte por que você estava fazendo qualquer outra coisa antes. |
| 12 | +== = Preparando para trabalhar |
| 13 | +== == Tempos de espera |
| 14 | +Uma diferença fundamental é o tempo de retorno. |
| 15 | +Com cada contribuição pela primeira vez, você está chegando a uma nova equipe (host). |
| 16 | +Como resultado, você precisará conhecer sua base de código, as tecnologias usadas e também seu ambiente de desenvolvimento preferido (pense em uma estrutura de teste, construa um sistema). |
| 17 | +Mesmo nos casos em que este tipo de ferramentas é padronizado, cada equipe terá desenvolvido algumas peculiaridades individuais. |
| 18 | +Além do lado técnico, você pode se deparar com diferenças na comunicação (think code reviews). |
| 19 | +Mesmo se você estiver voltando depois de um tempo, as maneiras e os membros das equipes podem ter mudado. |
| 20 | +Tome o seu tempo como você faria para se encontrar com um amigo que você não vê há um tempo e quem você está visitando agora. |
| 21 | +Dê a si mesmo tempo suficiente. |
| 22 | +Comece cedo o suficiente para que seu trabalho esteja disponível para você aproveitar no momento em que você precisar dele. |
| 23 | +É melhor adicionar mais tempo de folga inicialmente-você terá uma sensação sobre os tempos de retorno depois de trabalhar com a equipe anfitriã. |
| 24 | +Muitas vezes, você notará uma redução no tempo de resposta por equipe anfitriã depois de fazer algumas contribuições bem-sucedidas para essa equipe anfitriã. |
| 25 | +Esse efeito pode ser observado com o Open Source também, você pode ler mais sobre ele <<buildup-of-trust-through-collaboration,here>>. |
| 26 | +== == Gestão de expectativas |
| 27 | +Em suas equipes clássicas, todos tinham uma ideia dos tempos de espera. |
| 28 | +Dentro de um contexto InnerSource, isso pode não ser o caso, seja devido a grandes diferenças de fuso horário (por exemplo, Seattle, EUA com PDT vs Berlim, Alemanha com CEST) ou você não estar disponível em tempo integral como com sua equipe original, mesmo se eles estiverem no mesmo local físico que você. |
| 29 | +Assim, para evitar a frustração de ambos os lados, impaciência e outros efeitos que não sejam de confiança, você precisará explicitamente fazer o gerenciamento de expectativas com relação aos tempos de reação esperados. |
| 30 | +Uma abordagem é apenas reagir rapidamente com um "Eu vou olhar para ele, eu não vou chegar a ele nos próximos dias embora" para um feedback do https://innersourcecommons.org/learn/learning-path/trusted-committer [_Trusted Committeter_] se você sabe que você só será capaz de voltar para eles em alguns dias. |
| 31 | +Idealmente, você pode fornecer-lhes uma estimativa aproximada quando você provavelmente terá tempo para dar uma olhada em sua entrada. |
| 32 | +Fazer isso constrói confiança por confiabilidade, mesmo sobre contato não físico, maior distância ou mídia assíncrona. |
| 33 | +A confiança estabelecida permitirá que você supere os obstáculos da incerteza na estrada colaborativa à sua frente. |
| 34 | +== == Construindo confiança |
| 35 | +InnerSource coloca um enorme peso na comunicação escrita-em particular quando se trata de decisões de projeto. |
| 36 | +Isso implica que a comunicação presencial é proibida? |
| 37 | +Claramente não: enquanto a comunicação escrita brilha quando se trata de arquivamento e pesquisabilidade, a comunicação presencial brilha quando se trata de largura de banda de comunicação. |
| 38 | +Tente fazer tempo para se encontrar com as pessoas por trás dos nomes. |
| 39 | +Se possível, tente encontrá-los na sua bebida favorita ou em alguma comida. |
| 40 | +Quando você é capaz de ouvir as pessoas falando, quando você sabe suas idiossincrasias, a colaboração remota se tornará mais fácil. |
| 41 | +== == Evitando rejeição |
| 42 | +Você tem um recurso grande que deseja contribuir? |
| 43 | +Excelente! |
| 44 | +Não seria horrível se todo o seu trabalho fosse desperdiçado? |
| 45 | +Isso pode acontecer quando a equipe anfitriã já está construindo algo muito semelhante, está planejando descontinuar o software, ou não vê o que você está propondo para ser um ajuste para seu projeto. |
| 46 | +Esse desafio é frequente, e muitas relações de equipe sofreram por não concordarem antecipadamente que uma contribuição é um bom ajuste. |
| 47 | +Faça a si mesmo e à equipe anfitriã felizes (e possivelmente salve algum trabalho) obtendo um acordo da equipe anfitriã sobre o design técnico / usuário da contribuição _antes_ trabalhando nas mudanças e enviando uma solicitação pull. |
| 48 | +Você terá que entender como a equipe anfitriã gostaria que você alcançasse isso. |
| 49 | +É melhor perguntar a um https://innersourcecommons.org/learn/learning-path/trusted-committer [_Trusted Committe_] sobre como melhor discutir sua proposta. |
| 50 | +É tempo-e-novamente-comprovada sabedoria da arena de código aberto que, se você começar a selecionar como discutir sua proposta, você deve tentar selecionar uma maneira escrita. |
| 51 | +Idealmente, escolha a maneira na qual os artefatos são públicos, pesquisáveis e perma-linkable para permitir referenciar sua proposta em discussões posteriores sobre essa futura contribuição ou outras contribuições que virão por você ou outros. |
| 52 | +Esse tipo de acordo antecipado de alto nível economizará tempo em retrabalho ou rejeição de sua solicitação de pull na estrada. |
| 53 | +== = Criando a solicitação pull |
| 54 | +== == Comunicação e desbloqueando a si mesmo |
| 55 | +Ótimo, você se familiarizou com a abordagem da equipe anfitriã e eles estão ansiosos para receber seu pedido de pull. |
| 56 | +Quais cidades estão lá esperando por você agora? |
| 57 | +Primeiro, você estará em menos contato direto com eles. |
| 58 | +Em segundo lugar, não se espera que você seja tão experiente e proficiente quanto você pode ser nos projetos em tempo integral que sua equipe possui. |
| 59 | +Como você pode agora lidar com isso o melhor? |
| 60 | +Tente examinar a documentação deles, os arquivos de conversa e os artefatos de código da equipe do host para se desbloquear. |
| 61 | +Isso é semelhante à situação em que você e a maioria das pessoas provavelmente se encontram ao usar um dos projetos OSS populares. |
| 62 | +Assim como em projetos de código aberto, pergunte à equipe anfitriã se as coisas não estão indo a lugar nenhum, mesmo depois de tentar se desbloquear. |
| 63 | +As perguntas que você faz e as respostas que você recebe ajudarão os outros que vêm depois de você resolver os mesmos problemas. |
| 64 | +Certifique-se de que sua comunicação termine em um arquivo pesquisável que esteja intimamente ligado ao próprio projeto. |
| 65 | +Se você ver oportunidades de melhoria fáceis para alcançar esse objetivo se ele ainda não for alcançado, você poderia tentar-muito educadamente-sugerir uma melhoria para a sua equipe anfitriã. |
| 66 | +Às vezes, o status quo surge de pura casualidade e permanece assim porque ninguém tinha uma ideia diferente ou se importava o suficiente. |
| 67 | +Sugestões de melhoria podem ser bem-vindas nesses casos. |
| 68 | +Isso não faz nenhum lado bom para você girar para sempre em um problema que poderia ser resolvido em uma conversa de poucos minutos com alguém mais informado sobre o projeto. |
| 69 | +Tudo bem pedir ajuda. |
| 70 | +No entanto, há uma diferença fundamental, trazendo vantagem para você e outras pessoas no futuro: em quase todos os casos, você deve preferir os canais de comunicação oficiais dos projetos-isso pode ser uma lista de discussão, uma sala de bate-papo, um rastreador de problemas ou algo semelhante, dependendo do propósito de ter uma maneira mais síncrona ou assíncrona de interagir, ou as diferentes necessidades de estrutura na comunicação. |
| 71 | +Todos eles geralmente têm em comum que são baseados em texto, arquivados, pesquisáveis e vêm com links estáveis-isso significa que sua pergunta e a resposta serão anotadas, e as referências que você vincular nessas respostas também serão mantidas acessíveis. |
| 72 | +Desta forma, você pode se beneficiar deste conhecimento passivamente documentado em sua pesquisa E ajudar futuros colaboradores a ter a mesma vantagem. |
| 73 | +Essa documentação passiva poderia até servir para enriquecer a documentação 'oficial', caso ela contivesse joias especialmente valiosas-como definições importantes que foram criadas ad hoc. |
| 74 | +Conforme você trabalha, se você encontrar documentação ausente (ou desatualizada), faça um favor ao próximo Contribuidor e atualize-o com o que você descobriu. |
| 75 | +As equipes do projeto geralmente estão felizes em receber adições, atualizações ou correções para a documentação existente-você acabou de encontrar outra oportunidade para contribuir! (ou apenas educadamente fornecer-lhes um feedback sobre sua experiência e o que teria ajudado você.) |
| 76 | +== == Crafting o código |
| 77 | +Todos nós temos nossas preferências e opiniões sobre estilo de código, indentação, etc. |
| 78 | +O projeto da equipe anfitriã também tem. |
| 79 | +Tente adaptar e corresponder essas preferências, mesmo que não seja o que você faria normalmente e mesmo que não esteja especificado nos projetos ' https://innersourcecommons.org/learn/learning-path/trusted-committer/05/ [_ ` CONTRIBUTING.md ` _]. |
| 80 | +Se você não tem certeza, você sempre pode pedir educadamente. |
| 81 | +No entanto, uma contribuição de convidado para um recurso ou uma correção de bug não é o momento de introduzir uma nova maneira de estruturar ou formatar código do projeto. |
| 82 | +== = Enviando a solicitação pull |
| 83 | +Você concluiu todo o trabalho essencial, descobriu todas as peculiaridades do problema e o projeto para o qual você está contribuindo, o tempo que você planejou para que o novo recurso a ser usado se aproximasse, e você quer garantir que sua contribuição seja mesclada o mais rápido e suave possível. |
| 84 | +Aqui está o que você pode fazer para tornar a revisão e mesclagem o mais fácil possível para o https://innersourcecommons.org/learn/learning-path/trusted-committer [_Trusted Committer_] e a equipe host. |
| 85 | +Isso pode ser bastante semelhante ao que você já está fazendo em seu próprio projeto para que suas mudanças sejam aceitas. |
| 86 | +Se esse é o caso-ótimo, isso vai ser natural para você! |
| 87 | +== == Teste e automação |
| 88 | +O ponto básico aqui é permitir que o https://innersourcecommons.org/learn/learning-path/trusted-committer [_Trusted Committer_] valide a contribuição sem sua presença e assegure fácil manutenção. |
| 89 | +Imagine que você construiu um recurso ou manipulação de uma peculiaridade insolúvel, ou um ajuste de desempenho importante, e seu código não é totalmente óbvio (ou pode até parecer hacky / errado à primeira vista). |
| 90 | +Se você tiver coberto isso com um teste-e idealmente tiver derramado algumas palavras sobre a lógica por trás dele em um comentário-um futuro editor será lembrado sobre o propósito do código, e o (s) teste (s) garantirá que o valor que seu código realiza será mantido, mesmo nas novas implementações. |
| 91 | +Para conseguir isso, faça o seguinte: |
| 92 | +* Adicione testes para sua contribuição de código, para que validar a função de sua contribuição por outros funcione bem, mesmo depois de algum tempo, quando você trabalhar em outros projetos ou pode ter parado de contribuir para este projeto. |
| 93 | +** Muitas vezes, os projetos terão verificações automatizadas contra solicitações pull usando esses testes e o nível de cobertura de código. |
| 94 | +Tente atender aos critérios que esses testes aplicam. |
| 95 | +* Muitos projetos fornecerão scripts de construção e validação de projeto que permitem testar localmente suas mudanças. |
| 96 | +** Use-os para garantir que sua contribuição funcione o melhor possível antes de abrir uma solicitação pull. |
| 97 | +** Ter que revisar solicitações pull defeituosas com erros fáceis de corrigir muitas vezes bugs confiáveis committers. |
| 98 | +Eles não vão corrigir o seu código, mas pedir-lhe para fazê-lo. |
| 99 | +Isso pode criar mais round-trips e retardar a mesclagem. |
| 100 | +** Ninguém é perfeito. |
| 101 | +Faça o seu melhor, use scripts de validação preparados se houver algum, e dê o seu melhor tiro com um pull request! |
| 102 | +** Se a sua solicitação de pull continuar quebrando os testes, e você não conseguir descobrir por que depois de dar o seu melhor tiro: tente destacar esses testes no comentário da solicitação de pull, ilustre sua compreensão atual do problema e peça ajuda sobre ele. |
| 103 | +* Não se esqueça do seu próprio projeto que desencadeou a sua contribuição em primeiro lugar. |
| 104 | +Crie uma construção modificada do projeto compartilhado com suas mudanças e tente em seu próprio projeto que o consome. |
| 105 | +== == Documentação e revisibilidade |
| 106 | +Você deseja assegurar que sua solicitação pull inclua quaisquer atualizações de documentação relevantes para suas mudanças. |
| 107 | +Se a documentação estiver em um local diferente, certifique-se de incluí-la e vinculá-la a ela em sua solicitação pull. |
| 108 | +Para tornar a revisão de código real o mais fácil possível para o responsável confiável ou outras pessoas que a revisem, tente seguir estas dicas: |
| 109 | +* Certifique-se de que sua solicitação pull inclua apenas as mudanças relevantes para o problema que você está concluindo. |
| 110 | +* Tente evitar confirmações supergrandes, confirmações com mensagens de confirmação obscuras, gazilhões de arquivos, mudanças incoerentes (por exemplo, tocando vários tópicos). |
| 111 | +* Forneça uma descrição clara do que essa solicitação pull muda, por que ela faz isso e quais documentos de emissão e design (se houver) a que ela se refere. |
| 112 | +* Se houver algo incomum ou inesperado na solicitação pull, destaque-a e forneça a explicação. |
| 113 | +Isso tornará mais fácil raciocinar e resolver possíveis questões de bloqueio que um revisor possa ter durante a revisão. |
| 114 | +** O mesmo vale para o cenário em que você não tinha certeza da implementação ou da sua abordagem-destaque-a e peça um insight. |
| 115 | +** Seja civil e espere civilidade da revisão do https://innersourcecommons.org/learn/learning-path/trusted-committer [_Trusted Committe_]. |
| 116 | +* Fazer pedidos de pull muito amplos e grandes os torna mais difíceis de revisar, então levará muito mais tempo até que eles sejam aceitos. |
| 117 | +** Se você tiver um recurso maior que você está contribuindo, ele geralmente ajuda a dividi-lo em várias solicitações pull que são enviadas, revisadas e aceitas sequencialmente. |
| 118 | +Ainda é possível ligá-las a um problema ao qual você está se referindo. |
| 119 | +*** Algumas ferramentas também têm a funcionalidade de solicitação pull de Rascunho / WIP que você pode usar para marcar explicitamente o trabalho inacabado e não polido e ainda obter feedback antecipado dos https://innersourcecommons.org/learn/learning-path/trusted-committer/02/[ _Trusted Committers_] da sua equipe de host. |
| 120 | +*** Isso permite que você assegure que você está seguindo um caminho que sua equipe anfitriã está feliz em mesclar uma vez que está feito, aderindo à ideia de "liberação antecipada, liberação muitas vezes" de uma maneira. |
| 121 | +*** A responsabilidade da equipe anfitriã é criar uma atmosfera onde compartilhar e discutir trabalho não totalmente polido é possível e bem-vindo. |
| 122 | +Se você não pode falhar seguro, você não pode inovar, e a colaboração torna-se muito difícil. |
| 123 | +*** Tente equilibrar entre pedir uma revisão antecipada e fornecer mudanças significativas para revisão. |
| 124 | +== = Artigos adicionais |
| 125 | +Alguns desses recursos podem estar escondidos por trás de paywalls. |
| 126 | +Às vezes, seu empregador tem uma assinatura que permite o acesso, caso contrário, as bibliotecas universitárias públicas também permitem o acesso aos convidados. |
| 127 | +== == https://doi.org/10.1109/MS.2013.95 [Construído de confiança através da colaboração] |
0 commit comments