Planejando Projetos Ágeis

by alisson.vale 17/8/2007 02:31:00

http://www.mountaingoatsoftware.com/presentation/access/51

Essa é uma apresentação que eu gostaria muito de ter visto. É impressionante como o Mike Cohn tem um dom para falar sobre estimativas.

Nessa apresentação eu destaco o "The Planning onion", uma metáfora muito bem formulada para explicar os níveis de planejamento em uma abordagem Ágil.

onionplanning

Um time Ágil planeja em três níveis. Um release planning representa um planejamento de médio e longo prazo. A cada iteração há um planejamento de curto prazo e todos dias um planejamento de curtíssimo prazo (por meio dos Daily Meetings). Com base nisso, os clientes (em seus vários níveis) montam suas estratégias de portifólio e produto.

A parte da apresentação que fala sobre release planning também é excelente. A idéia das múltiplas visões para análise e observação do release planning também vale o ingresso.

multipleviews  

Pra terminar, há um podcast disponível em http://www.controllingchaos.com/?p=88 para quem quer ouvir um pouco sobre suas idéias.

Rastreabilidade em Projetos Ágeis

by alisson.vale 15/8/2007 23:56:00

Recentemente eu participei como entrevistado em um dos podcasts que o Vinícius Teles da Improve it está promovendo sobre experiências ágeis. Essa série que ele vem conduzindo tem mostrado que há gente de todo o país se envolvendo muito seriamente com as técnicas e conceitos de desenvolvimento Ágil e é uma ótima oportunidade para aprender sobre o que tem sido feito e testado por aí.

Algumas pessoas que ouviram a entrevista entraram em contato para saber mais detalhes sobre alguns tópicos abordados que não ficaram muito claros (a entrevista foi gravada via skype e a conexão de internet não ajudou muito no dia :S) . De qualquer forma, meu contato continua aberto para quem quiser compartilhar alguma experiência ou tirar alguma dúvida.

Um dos tópicos que eu falei um pouco rápido mas que sempre gera muita dúvida é o conceito de "Rastreabilidade" e como ele pode ser aplicado em projetos Ágeis.

Quem houve falar em Rastreabilidade já lembra logo da famosa "Matriz de Rastreabilidade" tão utilizada em projetos tradicionais, especialmente naqueles que precisam estar aderentes aos principais selos de certificação do mercado (CMM, ISO, etc).  O fato é que, em um projeto Ágil, essa matriz não vai servir para muita coisa.

Entretanto, o conceito de Rastreabilidade continua sendo importante e, mesmo em um projeto Ágil, pode lhe trazer significantes benefícios. Rastreablidade significa, de uma forma mais simplificada, unir diferentes artefatos gerados pelo seu processo por meio de um cordão imaginário que, em um dado momento, pode ser "puxado" trazendo consigo todos os artefatos que estão relacionados entre si. É como se eu tivesse um mecanismo para navegar entre artefatos que mantém algum tipo de relacionamento entre si, tais como:

  • user story (business value) => features (tasks) => tests => code   ou
  • release => features => user story    ou
  • code => tests => release => features => user story  ou
  • user story => features => documentação
  • e por aí vai...

Em um projeto Ágil o objetivo da rastreabilidade também é diferente daquele para a qual ela é usada em projetos tradicionais. Nesses projetos essa matriz é utilizada principalmente para se detectar que artefatos devem ser modificados quando uma solicitação de mudança é feita pelo cliente. Já em um projeto Ágil a  rastreabilidade é tratada como mais um elemento que visa aproximar aquilo que o usuário pede daquilo que ele recebe. Ele tem que ser trabalhado de uma maneira que dispense o uso planilhas ou qualquer alimentação manual de dados. O processo e o ambiente técnico montado podem, se preparados adequadamente, serem capazes de gerar essa rastreabilidade sem que ninguém tenha que mantê-la de forma manual.

Assim, o grande objetivo dessa prática é ser capaz de mapear, identificar e acoplar as demandas do usuário com suas respectivas entregas. Como incentivar ou garantir que sua equipe não vai entregar nada que não tenha sido efetivamente fruto de uma demanda válida do seu cliente? Em outras palavras, o que o seu cliente pede aparece documentado em seu release note? Você consegue identificar exatamente o quê foi modificado em termos de código-fonte para que aquela entrega fosse feita?

Um outro ponto interessante é que conseguir implementar isso te dá uma grande vantagem no processo de aderência ao que está estipulado para a área de gerência de requisitos na maioria dos processos de certificação.

Aqui na empresa nós conseguimos implementar isso integrando algumas ferramentas open-source que utilizamos, entre elas o Mantis, o CVS, o NAnt e o CruiseControl.Net. O próprio processo, apoiado pelo ferramental utilizado favorece e gera a rastreabilidade. E, para que isso ocorra, não é preciso preencher nenhuma planilha ou documento. Há algumas ferramentas mais pesadas que podem ajudar nisso, como o Team System da Microsoft ou o Star Team da Borland. Mas como elas oferecem muitos recursos o risco de criarem overheads no processo pode ser grande. O ideal é ir devagar trazendo para uso apenas aquilo que realmente interessa. O importante é identificar no seu processo os pontos onde você pode criar as conexões de rastreabilidade e implementá-los.

Alguns pontos de rastreabilidade que são comuns a quase todo projeto de software:

  1. user story to task: Seu processo consegue te dizer quais foram as tasks necessárias para implementação de uma user story? Que bugs a corrigiram? Que tasks a modificaram?
  2. task to code: Seu desenvolvedor trabalha com workingspaces individualizadas para cada tarefa?
  3. code to sourcecontrol: Há uma política de check-in que favorece a integração do código alterado de forma atrelada a tarefa que originou a intervenção? O processo de check-in gera informação de rastreabilidade?
  4. sourcecontrol to build: As builds são identificadas pela tarefa que a originou? Release Notes e Change Logs são gerados de forma automática?
  5.  Seu cliente consegue mapear a build gerada com a tarefa que ele solicitou?

Sobre o Autor

Alisson Vale Alisson Vale
Líder de Projeto da Phidelis Tecnologia.


E-mail me Send mail
      Sign in

Últimos posts

Últimos comentários

Termo de Responsabilidade

Este site apresenta apenas opiniões pessoais. Não necessariamente representa as opiniões ou práticas da Phidelis Tecnologia.

© 2008