Métodos Ágeis – Parte 01

Projeto Integrado de Sistema de Informação

Jorge Santos¹, Leandro Lago Quintiliano¹, Lílian Barbosa¹, Paulo Roberto H. da Silva¹, Wanderley Giraldes Júnior¹

1.     Introdução


Metodologias ágeis têm sido apontadas como uma alternativa às abordagens tradicionais para o desenvolvimento de software. As metodologias tradicionais, conhecidas também como pesadas ou orientadas a planejamentos, devem ser aplicadas apenas em situações em que os requisitos do sistema são estáveis e requisitos futuros são previsíveis.

2.     Métodos ágeis


Agile é uma norma que visa oferecer leveza e rapidez no desenvolvimento de software.
Um dos principais motivos pelo grande aumento na demanda por agilidade é causado pelo grande crescimento de web sites e aplicações para dispositivos móveis.
Os requisitos de projeto de software são sempre congelados antes do desenvolvimento do projeto e seu produto, no entanto esses últimos são passíveis de mudanças e requer maior flexibilidade de adaptação. Isso é permitido aos desenvolvedores através da metodologia que segue os princípios ágeis.
O movimento de métodos ágeis da indústria de software teve acontecimento com a publicação do Manifesto de Desenvolvimento de Software em 2001, por um grupo que praticava preceitos ágeis.
Os princípios do manifesto são:

 

·        Indivíduos e interações são mais importantes que processos e ferramentas.

·        Software funcionando é mais importante do que documentação completa e detalhada.

·        Colaboração com o cliente é mais importante do que negociação de contratos.

·        Adaptação a mudanças é mais importante do que seguir o plano inicial.

 

3.     Principais Métodos Ágeis


O grande foco dos métodos ágeis são simplicidade e rapidez. Alguns dos principais métodos de desenvolvimento dessa categoria são:

 

·         Scrum

·         Metodologia Crystal

·         Desenvolvimento Voltado a Funcionalidades

·         XP (eXtreme Programming)

 

 

3.1.          Scrum

 


O Scrum apresenta uma abordagem experimental que considera idéias de flexibilidade, adaptabilidade e produtividade. O resultado do processo deve ser um software que é realmente útil para o cliente. O Scrum é baseado nos seguintes princípios: equipes pequenas (no máximo 7 pessoas), requisitos pouco estáveis ou desconhecidos e iterações curtas para promover visibilidade para o desenvolvimento.

Scrum divide o desenvolvimento em partes de 30 dias. Suas equipes são formadas geralmente por projetistas, programadores, engenheiros e gerentes de qualidade. Tais equipes trabalham em cima da funcionalidade definidas no início de cada parte.

Diariamente são feitas reuniões de 15 minutos onde o time expõe à gerência o que será feito no próximo dia e os gerentes podem levantar os fatores de impedimento, e o progresso geral do desenvolvimento.

net-25-06-2008pic01.JPG

É baseado em três fases principais:

1) Pré-planejamento: os requisitos são descritos e priorizados em um documento chamado tarefas do produto. Também inclui a estimativa de esforço para cada requisito, definição da equipe de desenvolvimento, as ferramentas a serem usadas, os possíveis riscos do projeto, as necessidades de treinamento e uma proposta de arquitetura de desenvolvimento baseada na lista de tarefas.

2) Desenvolvimento: o software é desenvolvido em ciclos, que podem levar de uma a quatro semanas. Neste período, cada equipe recebe uma parte do backlog (p
eríodo de tempo necessário para que um grupo de manutenção execute todas as atividades pendentes) para desenvolvimento e sempre apresenta um produto executável ao final.


a) Reunião Diária: duração máxima de quinze minutos; Gerenciada pelo líder de cada equipe; Benefícios: maior integração da equipe, rápida solução de problemas, progresso medido continuamente;
b) Revisão: Apresentação do produto ao cliente; O produto pode ser lançado no mercado; Benefícios: apresentar resultados concretos ao cliente, integrar e testar boa parte do software, motivação da equipe.

3) Pós-planejamento: iniciada quando todos os tópicos são satisfatórios (tempo, competitividade, requisitos, qualidade, custo). Atividades: testes de integração, testes de sistema, documentação do usuário, preparação de material de treinamento, preparação de material de marketing.