Code Onwership
Em posts anteriores vimos como organizar e dividir times orientados à contextos: https://blog.matheuscastiglioni.com.br/inverse-conway-maneuver/ e uma pergunta ou problemas que podem surgir com essa aboragem: “Que pessoa ou time pode mexer nos contextos de outro time?”
Quando a gente chega em perguntas assim estamos falando sobre propriedade dos códigos (code ownership) e existem três tipos de propriedades que podemos aplicar para diferentes momentos em diferentes situações:
- Strong code onwership: Apenas pessoas e times donos do contexto podem realizar alterações no mesmo, caso outra pessoa ou time precisa realizar alguma modificação, é necessário comunicar o time e alinhar o planejamento para tal mudança ser realizada.
- Weak code ownership: Qualquer pessoa pode realizar mudanças no código, mas, elas só podem ser aplicadas de fato através de uma revisão e alinhamento com as pessoas e times donos, normalmente realizado através de pull requests.
- Collective code ownership: Qualquer pessoa pode mexer em qualquer parte dos códigos (também chamado de no code onwership), normalmente nesses cenários a area ou time todo de engenharia é dono dos códigos.
Cada uma pode ser aplicada para um devido momento e necessidade ou aplicadas em conjuntas ao mesmo tempo. Você precisa analisar quais os problemas atuais e o lado positivo/negativo de cada uma, por exemplo:
- Com uma forte propriedade podemos acabar tendo impactos cross times e atrasos de planejamentos em entregas, tornando os times gargá-los entre si.
- Já uma propriedade fraca pode ser boa, mas, precisamos garantir o fluxo de revisão para que apenas sejam realizadas mudanças que fazem sentido para o negócio e para o time.
- E por fim a coletiva podemos ter vários impactos com todos as pessoas mexendo em qualquer parte da base de código.
Conclusão
Nesse post vimos diferentes tipos de propriedade de códigos, cada uma aplica-se para um determinado momento e contexto da empresa, as vezes elas podem ser aplicadas de forma misturada ao mesmo tempo.
Abraços, até a próxima.