6 de abril de 2010

Olhando para dentro do Sprint

A metodologias ágeis de desenvolvimento de software possuem terminologia comum na maioria dos casos. Isso porque uma "empresta" o termo a outra ao passo que o desenvolvimento e as novas demandas de organização aparecem. Mas há algo que sempre tive dificuldade de encontrar na documentação: o que acontece dentro do sprint do ponto de vista de engenharia de software. Na maioria dos casos você vai encontrar material sobre as reuniões de revisão e acompanhamento do sprint, que são atividades para o projeto, e não para o objeto do projeto (o que está em desenvolvimento).

Localizei no Wikipedia uma referência no termo "Extreme Programming" que resume bem as atividades dentro do sprint. São elas:

- Listening (escutar): em primeiro lugar a equipe de desenvolvimento precisa escutar o que o cliente espera do produto final, suas características, limites e restrições. É um momento de troca e análise de alternativas onde o desenvolvedor age como consultor do cliente, oferecendo soluções técnicas para os desafios do produto/projeto.

- Designing (desenhar): o bom desenho do sistema reduz sua complexidade e dá ao grupo uma melhor visão do todo. Projetos que omitem a etapa de desenho - partindo do Listening para o Coding - tendem a gerar mais retrabalho e custo do que aqueles que partem de um desenho analisado e validado pelo cliente.

- Coding (codificar): etapa principal do processo de desenvolvimento, aqui o trabalho é concretizar os desejos do cliente que foram previamente desenhados.

- Testing (testar): etapa final do processo, e que tenta garantir a qualidade do trabalho executado. Produto bom é aquele que atende às necessidades do cliente e não apresenta falhas, nem problemas de desempenho. São muitas as modalidades de testes que podem ser executados. Os mais comuns são os unitários e os integrados. O primeiro preocupa-se com o funcionamento de um objeto, módulo ou funcionalidade operando de forma isolada. O outro, no relacionamento entre objetos, módulos e funcionalidades para que o sistema como um todo seja funcional. Veja lista completa de testes de software.

Ao final do sprint, tendo escutado, desenhado, codificado e testado o produto, a equipe de desenvolvimento e o gerente do projeto saberão que o produto entregue é válido e utilizável dentro das expectativas funcionais e de desempenho do cliente.

Nenhum comentário: