De que trata o artigo

O Scrum é um processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software. Apesar do Scrum ter sido destinado para gerenciamento de projetos de software, ele pode ser utilizado em equipes de manutenção de software ou como uma abordagem geral de gerenciamento de projetos/programas. Este artigo apresenta características das metodologias ágeis e suas vantagens em relação às metodologias tradicionais. Tem-se como foco a prática da metodologia ágil SCRUM e suas características essenciais.


Em que situação o tema é útil

O tema é útil para os profissionais de Engenharia de Software em geral que planejam iniciar projetos utilizando metodologias ágeis ou até mesmo para aqueles que já as utilizam, mas estão enfrentando problemas com seus resultados.

Resumo

Durante muitos anos, as metodologias tradicionais foram utilizadas amplamente pela maioria dos projetos e das empresas de desenvolvimento de software, e o modelo cascata era tido como o mais completo e efetivo. Essa situação se modificou assim que surgiram os primeiros projetos ágeis, logo após o manifesto ágil em 2001. Esta data de certa forma marcou uma divisão inicial entre desenvolvedores mais conservadores e os simpatizantes do Scrum, XP e outras metodologias ágeis. O que vemos atualmente é uma tentativa de uso das melhores práticas estabelecidas por cada uma das opções.

Autores: Ayala Leal, Thaylow Viana e Rodrigo Spínola

As metodologias ágeis, que surgiram por volta dos anos 90, vieram como uma resposta às metodologias tradicionais. A quantidade de projetos cancelados por atraso e fora do custo previsto estimulou a criação de uma nova visão de desenvolvimento de software, e como a própria nomenclatura já diz, foram buscar uma forma mais ágil para o desenvolvimento do projeto.

Um exemplo de uma metodologia tradicional é o modelo em cascata, composto por atividades seqüenciais de levantamento de requisitos, análise, projeto, implementação, teste, implantação e manutenção. O modelo em cascata dominou a forma de desenvolvimento de software até o início da década de 90, mesmo com tantas advertências dos pesquisadores da área e dos desenvolvedores, que identificaram os problemas gerados ao se adotar esta visão.

As metodologias pesadas devem ser idealmente aplicadas apenas em situações em que os requisitos do software são estáveis e previsíveis. Estas situações são difíceis de serem atingidas, uma vez que os requisitos para o desenvolvimento de um software são mutáveis. Dentre os fatores responsáveis por alterações nos requisitos estão a dinâmica das organizações, as alterações nas leis e as mudanças pedidas pelos stakeholders, que geralmente têm dificuldades em definir o escopo do futuro software.

Para lidar com estas questões que limitavam a eficiência das abordagens ditas pesadas, surgiram as metodologias ágeis. Os métodos ágeis possuem os seguintes princípios em contrapartida aos métodos tradicionais: Indivíduos e Interações são mais importantes que processos e ferramentas; Produto aderente é mais importante do que documentação abrangente; 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.

Um modelo ágil é um modelo bom o suficiente, nada mais, o que implica que ele exibe as seguintes características: ele atende seu propósito, é inteligível, suficientemente preciso, suficientemente consistente, suficientemente detalhado, provê um valor positivo, ele é tão simples quanto possível.

Neste contexto, este artigo apresenta características das metodologias ágeis e suas vantagens em relação às metodologias tradicionais. Tem-se como foco a prática da metodologia ágil SCRUM e suas características essenciais.

O manifesto ágil

Em 2001, um grupo de profissionais e pesquisadores de TI se reuniram com a finalidade de criar uma mobilização em torno de uma série de valores e práticas de desenvolvimento de software que eles intitularam de Manifesto for Agile Software Development. Nesta reunião, o seguinte manifesto foi elaborado:

Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar:

Indivíduos e interação entre eles mais que processos e ferramentas

Software em funcionamento mais que documentação abrangente

Colaboração com o cliente mais que negociação de contratos

Responder a mudanças mais que seguir um plano

Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.

Este Manifesto também traz doze princípios de um processo ágil, conforme podemos observar na Tabela 1.

P1

A prioridade é a satisfação do cliente, mediante o rápido e contínuo fornecimento de software que agregue um valor ao negócio.

P2

As mudanças são bem-vindas, mesmo no final do desenvolvimento, principalmente se as alterações darão vantagem competitiva para os nossos clientes.

P3

Fazer entregas frequentes de software que funcionem a partir de um par de semanas a um par de meses, sempre procurando o menor intervalo de tempo entre as entregas.

P4

As pessoas de negócio (executivos) e os desenvolvedores devem trabalhar juntos diariamente e ao longo de todo o projeto.

P5

Construir o projeto em torno de indivíduos motivados. Fornecer todo apoio necessário ao ambiente do projeto e confiar plenamente na equipe.

...
Quer ler esse conteúdo completo? Tenha acesso completo