Lei De Brooks
Constantemente estão nascendo e surgindo novos projetos que envolvem desenvolvimento de software, mas, um dos motivos de muitos projetos atrasarem refere-se ao planejamento. Mais especificamente em prazos, ou seja, dado os requisitos X, Y e Z, quantas pessoas vamos precisar para entregar o projeto em um mês?
Vamos imaginar um cenário: Precisamos criar um projeto para que pessoas consigam ter uma lista de compras para churrasco apenas por informar a quantidade de pessoas que irão participar do mesmo.
Depois de ter analisado todos os requisitos e necessidades, chegamos à conclusão que precisamos de duas pessoas para entregar o projeto em dois meses.
Após um mês de trabalho ainda estamos atrasados e vimos que o projeto ainda vai levar dois meses para que seja finalizado e entregue. Dessa forma, o projeto no final vai levar três meses e não apenas dois (um mês a mais do planejamento).
Algo que muitas pessoas podem pensar é:
Tudo bem, se com duas pessoas a gente vai precisar de dois meses, então, se a gente adicionar mais duas pessoas o projeto pode ser feito em apenas mais um mês.
Mas, isso não reflete em nossa realidade e não necessariamente é verdade.
Lei de Brooks
A lei de Brooks citada em The Mythical Man Month é uma observação sobre gerenciamento de projetos de software da qual destaca:
Adicionar mais mão de obra para um projeto atrasado o torna mais longo
De acordo com Brooks, quando adicionamos novas pessoas para um projeto em andamento, estamos o tornando maior e não menor, isso porque:
- Leva tempo para novas pessoas se tornarem produtivas (ramp up).
- Gargá-los de comunicação aumenta quando o número de pessoas aumenta.
- A divisibilidade de tarefas pode causar mais caos.
- Alguns trabalhos à serem feitos não podem ser divisiveis e paralelizados.
Então você deve pensar:
Nunca devemos adicionar novas pessoas em projetos em andamento?
Calma, primeiro precisamos ver onde e sobre quais condições essa lei é aplicável:
- Apenas projetos que já estão atrasados.
Assim podemos esclarecer que a lei nunca disse que você não deve adicionar novas pessoas, ela apenas diz que o projeto irá atrasar sobre essa circunstância e você pode estar tranquilo com o atraso, isso porque:
- O time já conta com pessoas muito boas.
- O time é resiliente à mudanças.
- Tempo não é o unico critério de sucesso para o projeto.
- A nova pessoa preenche um cargo/gap importante para o time.
Há algumas hipoteses que podem evitar esse problema e não precisar aplicar a lei de Brooks:
- Seja pessimista sobre prazos.
- Ter uma faixa de erro (fator cagada kkk) é sempre bom.
- Ter padrões de engenharia ajuda nos gargá-los de comunicação e permitem uma escalabilidade melhor, tais como: CI, TDD e desenvolvimento iterativo.
- A expertise das pessoas podem ter um grande impacto nos entregáveis.
Conclusão
Nesse post vimos que adicionar novas pessoas para projetos atrasados não faz com que o projeto dure menos tempo e sim mais.
Abraços, até a próxima.