[fsn_row][fsn_column width=”12″][fsn_text]
Este artigo é o segundo de uma série de quatro artigos. Leia aqui o primeiro: “Introdução ao mundo das metodologias”
Waterfall 101
Esta é a metodologia mais antiga, que funciona de uma forma bastante linear. Por esse motivo, é ainda bastante usada pelas empresas na gestão de projeto. Caracteriza-se por ter fases bem definidas, onde uma só começa após a anterior ter terminado, e não existe a possibilidade de regressar à fase anterior. Assim, caso seja necessário realizar alguma revisão, o processo tem de recomeçar, mostrando-se assim como uma metodologia menos flexível.
Para que o projeto seja realizado sem percalços é necessário que os requisitos estejam muito bem definidos. Desta forma, o primeiro passo é recolher e documentar todos os requisitos e garantir que estão acessíveis a todos os membros da equipa.
Paralelamente, os membros da equipa também documentam o seu trabalho, sendo que idealmente os membros podem entrar ou sair do projeto sem que isso represente um obstáculo para o projeto. Ou seja, a metodologia Waterfall pode ser uma boa aposta para equipas com turnover ou rotatividade elevados.
Quais são as fases estabelecidas do projeto?
- Levantamento de requisitos e documentação
- Design de sistemas – desenho das especificações do sistema, compreender que ações/tarefas precisam de ser realizadas nas fases seguintes
- Implementação – desenvolvimento de código
- Teste – teste do software para encontrar erros
- Entrega – após o teste, o software é entregue ao cliente
- Manutenção – quando os consumidores começam a usar o software, podem surgir alguns problemas que devem ser resolvidos, ou features que necessitem de ser alterados
Vantagens
- Estrutura clara – as fases estão bem definidas e todos os membros da equipa sabem exatamente o que devem fazer em cada uma;
- O objetivo/resultado final é definido desde o início do projeto – desta forma, existe clareza sobre aquilo que é esperado da equipa, o que a mantém focada durante todo o processo;
- Não necessita de certificações ou formação específica – ao contrário de outras metodologias;
- Abordagem metódica permite a transmissão de informação entre fases, pressupondo que a fase seguinte será desenvolvida por outros membros da equipa que necessitam de ter um guia claro dos acontecimentos a priori;
- Resultados finais mais previsíveis, bem como uma visão mais real do tempo e orçamento necessários.
Desvantagens
- Torna difícil fazer mudanças – a metodologia deixa pouco espaço para mudanças não esperadas ou problemas não planeados, sendo mais rígido na reação;
- Não inclui o cliente ou consumidor final – o foco da metodologia está no funcionamento da equipa do projeto, e não necessariamente em incluir os clientes no processo e receber feedback ao longo do projeto;
- O teste só ocorre no final do projeto – este é um risco associado à metodologia, visto que realiza-lo tão tarde no processo pode significar mudanças consideráveis o que implicará revisões aprofundadas e possíveis atrasos.
It’s an Agile world
O desenvolvimento de software Agile baseia-se numa abordagem interativa e incremental, permitindo a ocorrência de mudanças de requisitos ao longo do tempo e impulsionando o feedback do consumidor final.
A metodologia Agile rege-se por 12 princípios, destacando-se a priorização da satisfação do cliente, o trabalho conjunto entre developers e a equipa operacional e de gestão, o foco na motivação dos colaboradores, promovendo o ambiente e suporte necessário, alavancando a flexibilidade, a melhoria contínua e a rapidez de resposta.
O ciclo de desenvolvimento Agile tem 6 fases distintas, que não têm necessariamente de acontecer de forma sequencial, sendo flexíveis e podendo acontecer simultaneamente:
- Planeamento – desconstruir o trabalho em várias partes e priorizar cada uma, de forma a organizar a equipa;
- Análise de requisitos – identificar os requisitos, compreender quem vai usar o produto e como;
- Design – definido a partir dos requisitos identificados, quando a equipa estabelece como deverá ser o produto ou solução;
- Implementação ou desenvolvimento – criar os features;
- Teste – após o desenvolvimento, o código é testado face aos requisitos definidos para garantir que está a responder às necessidades do cliente;
- Entrega – o produto é entregue ao cliente, e daí podem surgir novos problemas e necessidades para responder.
Vantagens
- Promoção da aceitação da mudança – com ciclos de planeamento curtos torna-se mais fácil aceitar mudanças nas várias fases do projeto, havendo sempre oportunidade de redefinir prioridades e permitir que as equipas realizem as mudanças em pouco tempo;
- O objetivo final pode ser desconhecido – a metodologia é vantajosa quando o projeto não tem o objetivo final bem definido, visto que à medida que o projeto avança, o desenvolvimento pode adaptar-se aos novos requisitos facilmente;
- Entrega mais rápida e com melhor qualidade – repartir o projeto em pequenas fases permite que a equipa se foque no desenvolvimento com elevada qualidade, testando no final de cada fase para identificar os possíveis bugs e resolvê-los mais rapidamente;
Capacidade de ouvir os clientes – os clientes têm diversas oportunidades de ver o trabalho que está a ser desenvolvido e dar feedback sobre o mesmo, contribuindo com maior impacto para o produto final.
Desvantagens
- Dificuldade em definir uma data de entrega final;
- A documentação tende a ser negligenciada;
- Necessita de dedicação completa ao projeto por parte dos developers, o que requer um compromisso durante todo o período de duração do projeto;
- O produto final poder ser muito diferente daquilo que foi visionado inicialmente.
[/fsn_text][/fsn_column][/fsn_row]