Thursday, 19 November 2009

Como aumentar a produtividade de uma equipa de programadores?

Esta pergunta foi-me feita à uns dias e depois de pensar um pouco aqui está um conjunto de medidas que podemos tomar para aumentarmos a produtividade de uma equipa de desenvolvimento.

Antes dos passos, devem ler o seguinte post: Quem deve ganhar mais? e passar a dar boas condições às pessoas produtivas.
  1. Implementar a política de Stand up mettings - Este tipo de reuniões podem ser feitas a meio da manhã e serve para aferir sobre o que cada um está a fazer e ainda partilhar entre todos os problemas que estão a ter, as vitórias e ainda promove a interacção entre os membros da equipa.

  2. Criar mecanismos de compilações automáticas (automated build) - quando temos uma equipa extensa onde pessoas diferentes trabalham em áreas diferentes da aplicação é importante termos a certeza que uma alteração não vá estragar outras áreas do código. Agendar compilações de todo o projecto duas ou três vezes por dia não é muito e pode garantir que alguns problemas são resolvidos ainda no processo de desenvolvimento.

  3. Em problemas com alguma dimensão, criar equipas de duas pessoas e implementar o Extreme Programming - Esta medida leva a que o código criticado à medida que é feito e um par de olhos extra é sempre bom para encontrar os bugs da solução.

  4. Criar momentos de Code Review - No mundo da consultoria a rotatividade das pessoas é cada vez maior, pelo que temos que ter a certeza que o código produzido por uma pessoa está de acordo com as regras impostas para o projecto. Existem diversas ferramentas de Code Review, que a cada compilação analisa o código para encontrar erros pontos onde não foram seguidas essas regras. Com regras é mais fácil de ler e entender por qualquer membro da equipa.

  5. Mostrar os progressos no desenvolvimento - Reunir com frequência com a equipa e mostrar que o seu trabalho está a ir a algum lado. Muitas das ferramentas de compilação diárias já elabora relatórios que indicam a produtividade (em linhas de código) de cada pessoa e melhorias nas alterações em termos de execução desse mesmo código.

  6. Tentas mostras demonstrações do produto todos os meses - Uma vez por mês o gestor técnico do projecto deve mostrar a todos como é que o projecto está a correr e fazer uma demonstração das novas funcionalidades implementadas bem como as melhorias e correcções que foram efectuadas. Assim é obrigatório ter o projecto sempre pronto a ser instalado num cliente, e todos os membros da equipa sabem o que está feito e o que ainda ser feito.

  7. Aprendam da fazer Unit Tests - Esta tem sido uma frase muito batida nos últimos dois a três anos, mas, ainda não se fazem testes unitários ao código. É importante e poupa tempo de desenvolvimento.

  8. Exigir da chefia ou da direcção técnica do projecto que esteja vários passos à frente do desenvolvimento - O que acontece é que a chefia técnica fica-se pelo início do projecto e depois quer saber se tudo ficou feito. Esta forma de trabalhar é errada. O acompanhamento deve ser diário.
Um projecto gerido desta forma não tem tempos mortos, em qualquer momento todos sabem o que tem que fazer e o chefe de projecto irá passar despercebido no meio disto. Digo ainda que pode ir de férias que uma equipa gerida desta forma irá conseguir efectuar o seu trabalho na mesma.

Abraços
Paulo Aboim Pinto

2 comments:

anchorite said...

Ou resumindo tudo num ponto:
1- Usar Agile (nomeadamente Scrum)

Paulo Aboim Pinto said...

Viva,

tens alguma razão no que dizes. Engraçado que só reparei nisso depois de escrever os pontos, mas, mesmo assim não quiz fazer referencia a uma metodologia implantada.

Penso que o Scrum é um pouco mais que isto e este pontos acho que sºao fundamentais para aumentar a produtividade de uma equipa.


Paulo Aboim Pinto