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.
É 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 (perí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.