terça-feira, 27 de abril de 2021

Colagem de trabalhos individuais não é trabalho em equipe

No início, do ano falei aqui sobre como as Reviews sem participação de stakeholders podem ser um sintoma da falta do verdadeiro trabalho em equipe.

Comentei que, algumas vezes, os times fazem Sprint Reviews para servir apenas à própria vaidade: Os desenvolvedores apresentam o que fizeram e recebem aplausos de seus colegas. E isso não acrescenta nada ao produto nem ao processo. Disse também que esse evento demonstra que o time não está trabalhando como time, visto que, se todos participassem de tudo que foi desenvolvido, não haveria nada para se apresentar.

No final do referido artigo, prometi falar mais sobre a diferença entre uma colagem de trabalhos individuais e um trabalho em equipe. Aqui vou eu:

O que é um trabalho em equipe:

Trabalho em equipe é a integração das atividades das pessoas de forma a tornar a execução das tarefas mais simples e ágil, gerando um resultado melhor. Em outras palavras: trabalho em equipe não é simplesmente um grupo de pessoas que trabalham juntas, mas a cultura de valorizar a convivência harmônica entre as pessoas e o trabalho colaborativo.

Tá, mas o que é esse tal Trabalho Colaborativo?

Trabalho colaborativo ocorre quando duas ou mais pessoas executam juntas o mesmo trabalho. Não há o "seu trabalho" e o "meu trabalho", e sim o "nosso trabalho". Quando o trabalho é colaborativo, não é possível determinar qual parte é responsabilidade de quem. Tudo é criado pelo grupo e executado pelo grupo.

Não é por acaso que, no Scrum, os itens de backlog são do time. Em nenhum momento um desenvolvedor assume a responsabilidade por um item, e todos devem colaborar na execução das atividades que compõem cada item do backlog.

E essa tal "colagem de trabalhos individuais", o que é isso?

Quando falo sobre isso, eu nunca consigo fugir da analogia com os "trabalhos em grupo" da escola: Se eram 4 integrantes, dividíamos o trabalho em 3 partes. 3 integrantes faziam, cada um, uma parte e o 4º integrante — normalmente quem tinha a letra mais bonita — passava tudo "a limpo" no papel almaço. Depois colávamos, cada um, uma figura na cartolina e apresentávamos, cada um, a sua parte do trabalho.

Vi, várias e várias vezes, times Scrum que na parte final da Planning separam os itens, criando backlogs pessoais: "Joãozinho pega os itens X, Y e Z"; "Mariazinha faz Alfa, Beta e Gama". Então os membros trabalham em seus próprios sprint backlogs e entregam as suas tarefas. Ao final da sprint, os itens de cada desenvolvedor são colados (ou mergeados) aos dos outros e cria-se o incremento do produto. Depois todos se reúnem e cada um apresenta a sua parte.

Se você reconheceu seu time nessa descrição, não importa que ferramenta, método ou framework vocês usem, tenho uma má notícia para você: Vocês não estão trabalhando em equipe! Vocês estão trabalhando de modo individual e agrupando os resultados.

Entendi, mas qual seria o jeito correto?

O ideal é trabalhar de forma colaborativa, trabalhando realmente juntos. Se um item de backlog envolve análise, programação e teste, ao menos uma pessoa com competência de análise, ao menos uma pessoa com competência de programação e ao menos uma pessoa com competência de teste devem trabalhar juntas, nas três etapas. Programadora e testadora devem participar ativamente da análise, a analista e a testadora devem estar comprometidas com a programação e tanto a analista quanto a desenvolvedora devem atuar nos testes. Todos envolvidos em tudo. O único cuidado aqui é não deixar que o número de pessoas aumente a complexidade das tomadas de decisão. — Na minha vivência: De 3 a 5 pessoas, com diferentes especializações e experiências, é ótimo para discutir abordagens em desenvolvimento de software. E 5 desenvolvedores é uma quantidade normal para times Scrum. —

Numa equipe de alta performance — seja ela ágil ou tradicional, de desenvolvimento de software ou de futebol — não há espaço para aqueles que simplesmente fazem "a sua parte" e deixam seus colegas se virarem com as deles. É fundamental que todos saiam do trivial e ajudem seus companheiros a desempenhar melhor.

Concluindo...

Quando o time colabora em todos os itens do backlog, não há trabalho realizado por um desenvolvedor para ser compartilhado ou demonstrado aos demais. Todo o trabalho é de todas as pessoas, todas sabem o que foi feito e como foi feito. Todas deram sua contribuição.

É sabido há algum tempo que as melhores soluções não emergem da cabeça solitária de uma especialista, e sim da união de pessoas competentes, auto-organizadas em torno do objetivo comum.

Portanto, em vez de dividir o trabalho entre os desenvolvedores, una as pessoas em torno do trabalho.

Scrum - You're doing it the right way! Or... maybe... not at all

     Once upon a time, a long time ago, in a galaxy far, far away, there was a human called John Goodsense. John was a senior Scrum Master, ...