quarta-feira, 29 de maio de 2013

Ciclo de Vida de Desenvolvimento de Sistemas Ágil


Todo projeto de desenvolvimento de sistemas possui o mesmo fluxo, não importa o tamanho ou propósito. Começam devido alguma necessidade e terminam com a entrega de um produto. Este fluxo é chamado de Ciclo de Vida de Desenvolvimento de Sistemas (SDLC em inglês). Tanto as metodologias tradicionais quanto ágeis possuem um tipo de SDLC.

A Figura abaixo apresenta um Cico de Vida de Desenvolvimento de Sistemas baseado no Scrum (extraída da página: http://www.ambysoft.com/essays/agileLifecycle.html). Segundo a figura, o projeto é dividido em fases subseqüentes e as fases de construção em sub-projetos.



A iteração -1 representa a pré-fase do projeto, quando os requerimentos são levantados e apurados. Esta iteração é de responsabilidade do cliente junto à área de negócios. Isto é, eles devem entender quais suas necessidades e listar o que gostariam que fosse desenvolvido. A responsabilidade da equipe técnica do projeto é garantir que é possível entregar o que os clientes esperam.

A iteração 0 determina o início do projeto. Após o projeto ser aprovado e iniciado, o escopo é fechado e os requisitos listados e priorizados. Os clientes, junto com a equipe técnica, irão priorizar os itens e dividi-los em sub-listas. A quantidade de sub-listas tornarão-se a quantidade de iterações da Fase de Construção. Nesta iteração o ambiente começa a ser planejado e configurado. Isto é, o número de estações de trabalho são listadas, as configurações dos servidores revistas, licenças de aplicativos revista – para garantir que a equipe terá condições de trabalhar – ou qualquer outra informação relevante para garantir não só o encaminhamento do projeto, mas como a operação deste em produção. E finalmente, a equipe do projeto é arquitetada, isto é, quantos desenvolvedores, testadores, arquitetos e demais estarão inclusos no projeto e por quanto tempo.

As iterações de Construção são todas as iterações necessárias para desenvolver o sistema. Cada uma possui as mesmas atividades. Isto é, todas possuem as tarefas de análise, desenvolvimento, teste e publicação dos pacotes, e devem possuir durações curtas, de 2 a 4 semanas. Devido à existência de todas essas tarefas, as iterações de Construção são consideradas sub-projetos.

No início dessas iterações, a equipe técnica define os itens que serão desenvolvidos. Então inicia-se a modelagem, desenvolvimento e teste destes itens (a maneira de como planejar as atividades foi comentado no artigo Planejamento Ágil).  Para criar um fluxo de comunicação, dentro da equipe técnica, claro e objetivo, o time deve realizar uma reunião curta toda manhã. O Scrum nomeia esta reunião como Stand Up Meeting, o que em português significa Reunião em Pé. Está reunião tem curta duração e deve ser realizada em pé (razão de seu nome) por volta de 15 minutos, onde o time discute o que foi feito desde a última reunião, o que será feito até a próxima e se existem impeditivos para tal. Sua realização proverá, à cada integrante da equipe, uma visão geral do andamento do projeto e prevenir que o time caminhe para um caminho errado.

Ao final do desenvolvimento de cada item, dentro da iteração, os desenvolvedores devem testar o que foi desenvolvido. O ideal seria que um outro desenvolvedor, ou o líder do desenvolvimento, testassem algo que foi desenvolvido, como uma revisão de código. Isto ajudaria a equipe a entregar sistemas com mais qualidade, pois os testes seriam realizados de uma maneira menos viciada. Além disso, esta ação podem aprimorar a confiança dos clientes, nos produtos e no time de desenvolvimento, pois eles terão produtos com menos problemas. Ao final de cada ciclo da iteração de Construção, a equipe de Qualidade testará o pacote entregue, para garantir a confiabilidade e qualidade do produto.

Em seguida aos testes da equipe de qualidade, os clientes podem realizar seus testes. Se os clientes avaliarem positivamente o produto apresentado, eles estarão mais confiantes e entusiasmados para investir no projeto. Entretanto, se eles não avaliarem positivamente, o projeto pode ser cancelado – diminuindo assim o prejuízo por antecipar seu fim – ou alterações podem ser feitas para garantir que o projeto entregue valor real ao negócio.

Ao final de cada ciclo da iteração de Construção, bem como no final do projeto, uma reunião de Lições Aprendidas deve ser realizada. Esta reunião tratará de como o projeto foi conduzido e apresentará o que cada integrante entende como boas práticas para um próximo projeto e o que deve ser reformulado. Estas reuniões alimentarão uma base de conhecimentos compartilhada por todos na empresa e serão base para próximos trabalhos.

A fase de Release é a fase onde o projeto e publicado no ambiente de Produção. Se todas as outras fases obtiveram sucesso, esta fase representará um intragável que atende às necessidades do negócio. E este é sempre o maior objetivo do projeto. Entretanto, se alguma das outras fases obteve fracasso, ou foi realizada com ressalvas, devido à falta de participação por parte dos clientes, ou problemas técnicos, a tendência é que produto entregue não atenda as necessidades reais do negócio. Ainda nesta fase, as documentações necessárias para o usuário, como manual ou itens para treinamento devem estar prontos.

A Produção é a fase onde apenas correções de erros e suporte são feitos. Além disso, esta fase proverá informações úteis sobre o que pode ser melhorado ou alterado no sistema, e que podem ser listados para uma próxima versão do produto. Assim, um novo projeto será iniciado.

A fase “Retirement”, ou Retirada em português, é a fase onde o produto é removido do ambiente de produção, seja devido à uma nova versão do sistema, ou devido o produto não ser mais necessário.

Até o próximo post.


Nenhum comentário:

Postar um comentário