O que são metodologias agile?
A primeira vez que se ouviu falar em desenvolvimento ágil (ou no termo agile) foi em 2001, quando uma comunidade de developers, cansada da utilização de métodos de desenvolvimento considerados ‘pesados’ – nomeadamente, o modelo em cascata – decidiu lançar um manifesto: O Manifesto Agile. Este importante documento teve tanto impacto, que acabou por funcionar, até aos dias de hoje, como a bíblia do desenvolvimento agile, consagrando todos os princípios e boas práticas.
Metodologias agile defendem que, acima de tudo, se deve procurar satisfazer o cliente através de entregas contínuas de software com valor, mantendo a comunicação constante com o cliente, mas também mantendo o foco na comunicação entre membros de uma equipa. Ao contrário das práticas anteriores, a metodologia Agile não se pauta pela definição integral de todo o produto, por uma análise completa ou pela definição de todas as categorias/requisitos, mas sim por uma interação dinâmica, que permite uma entrega constante.
Como defende o Manifesto Agile, e segundo alguns dos seus 12 princípios fundamentais:
- A prioridade reside na satisfação do cliente, através de entregas contínuas e de valor acrescentado;
- As alterações de requisitos devem ser aceites, mesmo que estas cheguem numa fase tardia do desenvolvimento. “Os processos ágeis potenciam a mudança em benefício da vantagem competitiva do cliente”, como é declarado no próprio Manifesto;
- O cliente e a equipa de desenvolvimento devem trabalhar em conjunto e diariamente;
- É necessário proporcionar um bom ambiente e apoio às equipas de desenvolvimento. Só assim é possível mantê-las motivados;
- Os processos ágeis promovem um desenvolvimento sustentável, porque o ritmo é constante, e a excelência técnica aumenta a produtividade;
- Os momentos de retrospectiva em equipa são fundamentais, para que se possam fazer os ajustes necessários e torná-la mais eficaz.
No fundo, o desenvolvimento agile segue um modelo incremental, que fomenta a colaboração entre a equipa, o planeamento contínuo, mas também a contínua evolução e aprendizagem. As metodologias agile devem respeitar o ciclo de desenvolvimento de software – planeamento, execução e entrega final – permitindo que o software seja desenvolvido por etapas, tornando mais fácil a identificação de eventuais bugs bem como a sua resolução.
A principal vantagem da utilização de metodologias agile não reside apenas no facto da entrega de software ser mais rápida, mas sim na constante entrega de valor ao cliente, uma vez que as entregas são incrementais.
Existem inúmeras metodologias que seguem este mindset agile. Neste blog post selecionamos aquelas que são as 5 principais metodologias agile e quais as suas vantagens e desvantagens no universo do desenvolvimento de software.
Principais metodologias agile:
1. Scrum
Scrum é uma das muitas frameworks da metodologia agile, mas é, sem dúvida, a mais utilizada. Scrum carateriza-se pelos ciclos ou etapas de desenvolvimento, definidas como sprints, e pela maximização do tempo de desenvolvimento de um produto de software. É tipicamente utilizado na gestão de projetos de desenvolvimento de produtos de software, mas também pode ser utilizado em contexto de negócio..
Todos os dias existem pequenas reuniões de 15 minutos, as daily scrum, que funcionam como um sincronizador de atividades e como forma de planear o dia de trabalho.
Vantagens: | Desvantagens: |
|
|
2. Kanban
A palavra Kanban é de origem japonesa e o significado encontra-se ligado a um conceito temporal, “just-in-time”. Na prática, no método Kanban existe um quadro ou tabela (o Kanban Board), dividido em colunas, que indica todos os fluxos de produção do desenvolvimento de software. À medida que o desenvolvimento vai evoluindo, a informação presente nas tabelas vai mudando, e, quando surge uma nova tarefa, cria-se um novo “card”.
O método Kanban exige comunicação e transparência, para que os membros de uma equipa saibam precisamente em que ponto se encontra o desenvolvimento e para que possam ver em que estado se encontra o projeto em qualquer altura.
Vantagens: | Desvantagens: |
|
|
3. Extreme Programming (XP)
É uma típica framework de Agile Development, desenvolvida por Kent Beck, adaptável a empresas de desenvolvimento de várias dimensões. É uma metodologia que enfatiza valores como a Comunicação, a Simplicidade, o Feedback, a Coragem e o Respeito, priorizando a satisfação do cliente acima de tudo. Esta é uma metodologia que oferece confiança aos developers, motivando-os, e incentivando-os a aceitar mudanças nos requisitos do cliente, mesmo que estas já cheguem numa fase tardia do ciclo de desenvolvimento.
O trabalho de equipa é extremamente importante no XP, já que, quando existe um problema, o mesmo é resolvido em conjunto, seja por managers, developers ou clientes. Todos são peças importantes do mesmo esquema, criando o ambiente propício para tornar a equipa altamente produtiva e eficaz. Em Extreme Programming, o software é testado desde o primeiro dia, recolhendo feedback para melhorar o desenvolvimento.
Vantagens: | Desvantagens: |
|
|
4. Lean Development
Lean Development é uma metodologia que deriva diretamente da Lean Manufacturing, criada pela Toyota, e aplicada ao desenvolvimento de software. Este método oferece uma framework conceptual e segue valores, princípios e boas práticas de desenvolvimento, que podem ser aplicados a uma abordagem de desenvolvimento agile.
Lean Development é uma metodologia que conta com 7 princípios fundamentais: Eliminar o que não interessa (tudo o que não trouxer valor efetivo para o projeto do cliente, é para eliminar); Desenvolver com qualidade (criar qualidade no desenvolvimento exige disciplina e controlo na quantidade de resíduos criados); Criar conhecimento (a equipa é incentivada a documentar toda a infraestrutura, para mais tarde, reter esse valor); Diferir compromissos (este ponto encoraja a equipa a não planear demasiado e a não antecipar ideias sem antes ter um entendimento completo dos requisitos do negócio); Entregar depressa (entregar valor ao cliente, o quanto antes); Respeitar a equipa (comunicar e gerir os conflitos são duas questões essenciais); e, por fim, Otimizar o todo (a sequência de desenvolvimento tem de ser aperfeiçoada o suficiente para conseguir eliminar defeitos no código, de forma a criar um fluxo de verdadeiro valor).
Vantagens: | Desvantagens: |
|
|
5. Crystal
É uma família de metodologias agile, que inclui variantes como Crystal Clear (para uma equipa até 8 pessoas), Crystal Yellow (para uma equipa entre 10-20 pessoas), Crystal Orange (para equipas entre 20-50 pessoas) ou Crystall Red (para equipas de grande escala, entre 50-100 pessoas). Crystal foca-se em princípios como as Pessoas, as Interações, a Comunidade, os Skills, o Talento e a Comunicação, fazendo com que o desenvolvimento de software corra da melhor forma. O core deste processo de desenvolvimento passa pela interação e simbiose que tem de acontecer entre as pessoas alocadas aos projetos e os processos, de forma a tornar o desenvolvimento eficaz.
Segundo o seu fundador, Alistair Cockburn, “Crystal é uma família de metodologias de desenvolvimento de software que funciona com o poder investido pelas pessoas, é extremamente leve e ‘stretch-to-fit’”. No fundo, Cockburn acreditava que o talento e a forma como os membros da equipa interagiam traria benefícios para todo o projeto.
Vantagens: | Desvantagens: |
|
|
Na Xpand IT, o desenvolvimento de software é feito à medida, sempre com foco nos resultados e na satisfação do cliente, fase por fase. Todo o desenvolvimento é regido por princípios agile. Por isso, para respeitar o ciclo de desenvolvimento, atingir os resultados desejados, antecipar possíveis erros, maximizar a produtividade e desenvolver de forma segura mantendo os membros das equipas motivados, criámos a nossa metodologia: o XPAgile (uma combinação entre duas frameworks agile, Scrum e Extreme Programming, que garante os melhores resultados, sempre dentro dos prazos estipulados).
Se pretende saber mais sobre a metodologia de desenvolvimento da Xpand IT, clique aqui.