Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
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.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Engenharia de Software Magazine 50
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 é, 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.
Por outro lado, o modelo em cascata adéqua-se bem como um "sub-modelo" para outros modelos. Por exemplo, no modelo "cascata com realimentação" permite-se que, a cada descoberta da fase posterior, haja uma correção da fase anterior.
Projeto utilizado
O aplicativo utilizado nesse estudo de caso é um aplicativo de contrato de vendas existente usado por uma equipe de vendas. O aplicativo tem sido produzido por muitos anos e, tipicamente, tem de três a quatro releases por ano, de pequeno e grande porte.
O projeto em andamento é gerenciado pelo CIO do departamento, com líderes de solução que representam os clientes. Os vários membros da equipe do projeto - usuários, designers, arquitetos, desenvolvedores, testadores, operações de produção, etc. - são de diferentes setores dentro da empresa.
O processo de desenvolvimento desse projeto é baseado no ciclo de vida em cascata e incluiu as seguintes fases:
• Pré-concepção
• Concepção
• Planejamento
• Desenvolvimento
• Qualificação
• Lançamento.
Durante a fase de pré-concepção, a equipe de desenvolvimento define o conteúdo de release proposto e datas alvo. Na fase de concepção, o cliente prioriza a lista de candidatos para o release, os requisitos de negócio e sistema são criados e revisados, e a equipe de desenvolvimento fornece uma estimativa de esforço para os requisitos do negócio e os requisitos do sistema. Na fase de planejamento, é estabelecida a lista requisitos de sistema candidatos, e a equipe de desenvolvimento constrói estimativas de baixo nível para esses requisitos.
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Rodrigo Oliveira Spinola
Doutor e Mestre em Engenharia de Sistemas e Computação (COPPE/UFRJ). Diretor de Operações da Kali Software (www.kalisoftware.com). Editor Chefe das revistas Engenharia de Software Magazine, SQL Magazine e Web Mobile.
2 COMENTÁRIOS



