sábado, junho 13, 2009

Uma breve conversa sobre Metodologias Ágeis

As metodologias tradicionais herdam características de engenharias tradicionais. Ou seja, projetam tudo antes e só depois de muitos processos massivos usam a mão-de-obra para executar o trabalho. Mas, isso dá certo com software em que os requisitos são vagos, incertos, mudam todo tempo?

Estima-se que nos modelos tradicionais em torno 40% do que é desenvolvido não será utilizado. Porém, diferente das metodologias tradicionais observa-se nas metodologias ágeis que as características dos projetos são definidas com maior firmeza. Por que? As metodologias ágeis trabalham somente com aquilo que de fato gera valor ao cliente, usuário e a organização. É o famoso faça simples e somente o necessário. Daí surge um importante valor ágil: SIMPLICIDADE.

Diferente do processo tradicional em que o escopo é fixo e o tempo e custo são variáveis as metodologias ágeis utilizam um processo inverso. Seu escopo não é definido, o foco é num constante feedback que gera um produto incrementalmente. E já que falamos de um produto evolutivo e assim adaptativo (ou seja, que se transforma de acordo com as necessidades que surjam) um outro importante valor surge. A CORAGEM, eis que seus fiéis elementos são as mudanças e estas são sempre bem vindas.

Podemos definir os processos e metodologias ágeis como iterativo, incremental, auto-gerenciavel (programador pode optar por suas preferências), auto-organizavel, equipe multi-funcional, foco nas pessoas, valor agregado ao cliente, produtos de
qualidade. E estes não são grandes novidades, mas princípios herdados de Lean.

Assim, em agiles, há um modelo comportamental não exato, constrói-se só o necessário, se houver algo errado o processo é paralisado e elimina-se tudo que não agrega valor. E tudo isso alinha-se facilmente a parte de uma filosofia de trabalho em que é dado poder aos trabalhadores (empower) em que se aproveita o limite dos profissionais dando poder à ponta. E o que isso gera? Mais respeito aos trabalhadores que passam a ter grande poder de voz e conseqüentemente um uso maximizado da capacidade da carga produtiva e incentivo.

Para que fique mais clara a origem das metodologias ágeis podemos demonstrar o 7 princípios básicos de Lean:

1. Elimina desperdicio
2. Aumenta feedback
3. Comprometimento do tempo
4. Entregas rapidas
5. Construa a integridade do sistema
6. Poder ao time (empower)
7. Enxergar o todo


É isso, em breve continuamos a conversa.

Como criar um Produto de Backlog?

O Product Backlog é um documento de alto nível do projeto em que estão contidas as features, atividades, etc. que o cliente deseja. A linguagem desse documento é a do cliente (histórias). Deve-se fugir de qualquer orientação técnica, essas envolvem o "HOWTO". As histórias possuem uma estimativa de complexidade e o valor de negócio para o cliente, isso ajudará na priorização.

Etapas do processo:

1. Reunião com cliente e seu time para ouvir os “o quê” (“O QUÊ” e não o “HOWTO”)
2. Reunião com time para discutir os pontos levantados (planning poker das histórias, SÓ HISTÓRIAS)
3. Reunião com o cliente e dar um feedback.

A classificação de priorização dos requisitos pode ser dada por:
1. Tem que ser feito na primeira versão (urgente)
2. Seria bom se fosse realizado, mas pode ser retirado
3. Realizar se houver tempo
4. Versões futuras


Há um template de produto de backlog altamente eficiente e complexo feito com macros excel da belga Boulevart. Confiram aqui.

Nesse link vocês podem ver um exemplo extremamente simples de uma tabela com o produto backlog.