Distribuição de responsabilidades

Disclaimer: todas as evidências são anedotais ou experiências próprias. Nenhum trabalho ou livro foi usado como referência. O texto é, pura e simplesmente, minha opinião pessoal.

No mundo agile, é normal repetirmos que toda a stack é de propriedade comum, que todos devem cuidar e se sentir responsáveis pela qualidade de código e pelo projeto como um todo. Atingir e utilizar esse tipo de arranjo é muito bonito na teoria, porém, muito difícil de ser aplicado na prática.

É necessário uma equipe muito madura e comprometida para manter essa dinâmica funcionando. No geral, quando tudo é de todo mundo, nada é de ninguém. Muitas coisas acabam sendo negligenciadas ou mal feitas, e todo mundo vai ter uma desculpa para não fazê-las.

A proposta aqui é transformar cada integrante da equipe em “dono” de um pedacinho do projeto.

Alguns exemplos de responsabilidades que podem ser distribuídas são:

Impacto

A separação de responsabilidades permite que cada integrante consiga contribuir de maneira mais impactante e profunda, já que não é necessário uma preocupação tão grande com todas as áreas ao mesmo tempo.

Essa maior participação pode causar, também, uma melhora na percepção de pertencimento e realização, favorecendo decisões com benefício a longo prazo, ao invés de decisões que podem ter uma melhora no curto prazo mas serem prejudiciais depois.

Pressão

Participar de um projeto moderno traz consigo a necessidade de uma gama cada vez maior de conhecimentos. A pressão por bastante conhecimento em cada uma das partes acaba por atrapalhar o desenvolvimento do pessoal e consequentemente, a qualidade do projeto. Diminuir esse leque pode trazer maior tranquilidade e uma melhor experiência de trabalho.

Accountability

Um time onde cada um é responsável por uma parte, permite um maior controle das partes, já que cada um sabe com o que se preocupar e qual é sua área. Isso não significa que só essa pessoa fará esse trabalho, mas que ela é responsável pelo resultado final.

Hierarquia

Algum nível de hierarquia é necessária para que o time como um todo funcione. Todos devem contribuir, ser ouvidos, mas é importante que alguém tenha o poder de decisão, o que evita alguns problemas como over engineering e principalmente, um projeto muito heterogêneo. O ganho no longo prazo de se ter uma “única voz” é muito grande, já que o todo se torna mais conciso.

Conclusão

A distribuição das responsabilidades permite um maior controle e um aumento de qualidade nas partes individuais do projeto. No geral, a qualidade técnica tende a subir significativamente, porém, vem também com uma maior necessidade de gestão e controle, já que, em essência, esse modelo favorece um time de especialistas e não generalistas.

Por Pedro Fornaza

Desenvolvedor de software há mais de 10 anos. Formado em Sistemas de Informação. Empreśario. Trabalha principalmente com CRM e projetos Web.