Lições aprendidas na implantação de metodologias ágeis - Revista Engenharia de Software Magazine 50

Esse artigo descreve como uma equipe de desenvolvimento pode implementar com sucesso o desenvolvimento ágil dentro de um projeto em cascata de grande porte.

De que se trata o artigo:

Esse artigo descreve como uma equipe de desenvolvimento pode implementar com sucesso o desenvolvimento ágil dentro de um projeto em cascata de grande porte.

Em que situação o tema útil:

A discussão do assunto abordado neste artigo é importante para aqueles que trabalham com processos em empresas desenvolvedoras de software e/ou aqueles que tenham interesse em conhecer os benefícios que o uso de abordagens ágeis podem trazer para o projeto.

Resumo DevMan:

Este artigo apresentará um conjunto de lições aprendidas associadas à implementação de metodologias ágeis, mais especificamente o Scrum, em equipe de desenvolvimento de software que trabalha com o ciclo de vida em cascata. Poderemos observar os ganhos obtidos com o uso da abordagem ágil e como ela pode ajudar a resolver antigos problemas, provenientes em parte, da abordagem tradicional de desenvolvimento baseada no ciclo de vida em cascata.

Este artigo foi baseado no texto “Implementing agile development in a waterfall project” de autoria de Liz Hines, Scott Baldwin, Mark Giles, e Juan Peralta.

Processo de software é o conjunto de atividades que constituem o desenvolvimento de um sistema computacional. Estas atividades são agrupadas em fases, como: definição de requisitos, análise, projeto, desenvolvimento, teste e implantação. Em cada fase são definidas, além das suas atividades, as funções e responsabilidades de cada membro da equipe, e como produto resultante, os artefatos. O que diferencia um processo de software do outro é a ordem em que as fases vão ocorrer, o tempo e a ênfase dados a cada fase, as atividades presentes, e os produtos entregues.

Com o crescimento do mercado de software, houve uma tendência a repetirem-se os passos e as práticas que deram certo. A etapa seguinte foi a formalização em modelos de ciclo de vida. Os modelos de ciclo de vida são o esqueleto, ou as estruturas pré-definidas nas quais encaixamos as fases do processo. De acordo com a NBR ISO/IEC 12207:1998, o ciclo de vida é a “Estrutura contendo processos, atividades e tarefas envolvidas no desenvolvimento, operação e manutenção de um produto de software, abrangendo a vida do sistema, desde a definição de seus requisitos até o término de seu uso.”

O ciclo de vida em cascata (ler Nota 1) é, em grande escala, utilizado dentro de muitas organizações. Neste contexto, também vemos hoje a decisão de migrar esta estrutura de desenvolvimento para processos ágeis. Apesar de existirem diversas propostas de ajustar projetos grandes para utilizar o desenvolvimento ágil, o risco de fracasso em uma iniciativa desta natureza pode ser alto. Uma boa alternativa para isto é fazer com que equipes de desenvolvimento responsáveis por partes menores projeto decidam adotar a mudança e aplicar metodologias ágeis àquelas partes do projeto sobre as quais elas possuem controle. O resultado dessa decisão acaba ilustrando o valor e benefícios do desenvolvimento ágil, de modo que a equipe de gerenciamento de projetos maiores possa apreciar e entender dentro do contexto do projeto como um todo.

Neste contexto, esse artigo descreve como uma equipe de desenvolvimento pode implementar com sucesso o desenvolvimento ágil dentro de um projeto em cascata de grande porte. Esse exemplo, inclusive os conceitos e técnicas implementados, os desafios enfrentados e os benefícios resultantes, podem auxiliar a descobrir uma maneira útil para introduzir conceitos e processos ágeis à sua organização.

Nota 1. Ciclo de vida em cascata

Formalizado por Royce em 1970, é o modelo mais antigo. Suas atividades fundamentais são:

· análise e definição de requisitos;

· projeto;

· implementação;

· teste;

· integração.

O modelo em cascata tem o grande mérito de ser o primeiro a impor o planejamento e o gerenciamento ao processo de software, que antes era casual. O nome "cascata" foi atribuído em razão da sequência das fases, onde cada fase só começa quando a anterior termina; e da transmissão do resultado da fase anterior como entrada para a fase atual (o fim de cada fase resulta em um documento aprovado). Nesse modelo, portanto, é dada muita ênfase às fases de análise e projeto antes de partir para a programação, a fim de que o objetivo do software esteja bem definido e que sejam evitados retrabalhos, conforme podemos observar na Figura 1.

Figura 1. O modelo em cascata

Devido à sua simplicidade, o modelo em cascata é fácil de ser entendido pelo cliente. É um modelo que supõe um início e fim claro e determinado, assim como uma estimativa precisa de custo logo no início, fatores importantes na conquista do cliente.

O problema se dá depois, quando o cliente, após esperar até o fim do processo para receber a primeira versão do sistema, pode não concordar com ela. Apesar de cada fase terminar com uma documentação aprovada, certamente haverá lacunas devido a requisitos mal descritos pelo cliente, mal entendido pelo analista ou por mudança de cenário na organização que exija adaptação de requisitos. O modelo em cascata não prevê revisão de fases."

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados