Agile/Scrum/Kanban? O que são esses pokemons?
Artigo original escrito por Elbin Keeppanasseril
O que é Agile?
Todos nós já estamos usando um pouco das práticas de Agile como:
- Test-Driven Development (TDD): Depende de ciclos de desenvolvimentos curtos e repetitivos. Primeiro, um desenvolver escreve um caso de teste automatizado (inicialmente falhando) para uma nova feature e rapidamente adicionar um teste com com a quantidade mínima de código para passar no teste. Então, ele refactora o novo código para padrões aceitáveis.
- Pair Programing: O emparelhamento é frequentemente usado em produtos de alta qualidade.
Metodologia ágil é um processo de gerenciamento de projetos para desenvolvimento de software baseado no desenvolvimento iterativo. É um estilo muito rápido e flexível de gerenciamento de projetos. No entanto, para que seja totalmente eficaz, os participantes (desenvolvedores) precisam ser muito independente. Além disso, a natureza do gerenciamento de estilo de ágil requer feedback constante com o time e os interessados. Isso faz com que seja mais eficaz em uma cultura colaborativa.
Nos métodos ágeis, cada interação envolve uma equipe que trabalha através do ciclo completo de desenvolvimento do software, incluindo o planejamento, análise de requesitos, design, codificação, testes unitários, e teste de aceitação quando o produto funcional é demostrado para as partes interessadas.
12 Princípios da metodologia Ágil
O manifesto ágil lista 12 princípios para orientar as equipes sobre como executar com agilidade. Estes são os princípios:
- Nossa maior prioridade é satisfazer o cliente através da entrega antecipada e contínua de software valioso.
- Mudanças no requisitos são bem vindos, mesmo no final do desenvolvimento. Os processos ágeis aproveitam as mudanças para a vantagem competitiva do cliente.
- Entrega de software contínua, com frequência de algumas semanas a alguns meses, com preferência para a escala de tempo mais curta.
- Pessoas de negócio e desenvolvedores devem trabalhar juntos diariamente durante todo o projeto.
- Construa projetos em torno de indivíduos motivados. Dê a elas o ambiente e suporte necessário, e confie neles para realizar o trabalho.
- O método mais eficiente e eficaz de transmitir informações para e dentro de uma equipe de desenvolvimento é a conversa face a face.
- O software funcional é a medida primaria de progresso.
- Processos ágeis promovem o desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente.
- A atenção contínua à excelência técnica e ao bom design aumenta a agilidade.
- Simplicidade — A arte de maximizar a quantidade de trabalho não realizado — é essencial
- As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizadas.
- Em intervalos regulares, o time reflete sobre como se tornar mais efetivo, então refina e ajusta seu comportamento de acordo.
Modelo Cascata (Waterfall)
Antes das metodologias ágeis, a maioria das empresas usava o Modelo Cascata, o que significa que a próxima fase de um projeto depende da conclusão completa da fase anterior.
O modelo cascata originou-se nas indústrias de manufatura e construção, ambos ambientes altamente estruturados onde as mudanças podem ser muito caras ou às vezes impossíveis. A primeira descrição formal do modelo cascata é atribuída a um artigo de Winston W. Royce de 1970 onde ele descreve um modelo de software defeituoso.
O que é Scrum?
Scrum é uma das metodologias presente no conjunto de metodologia ágil. É uma estrutura de processo leve para o desenvolvimento ágil e a mais amplamente usada. Uma “estrutura de processo” é um conjunto particular de práticas que devem ser seguidas para que um processo seja consistente com a estrutura.
- Na metodologia Scrum um sprint é a unidade básica de desenvolvimento. Cada sprint começa com uma reunião de planejamento, onde as tarefas para a sprint são identificadas e um compromisso estimado para a meta do sprint é feito. Uma sprint termina com uma reunião de review ou retrospetiva onde o progresso é revisto e as lições para a próxima sprint são identificadas. Durante cada sprint, o time cria partes acabadas de um produto.
- Bom para times pequenos e ciclos de vida de projetos rápidos.
O que é o Kaban?
- Kanban também é uma metodologia ágil mas pense nisso como algo que você pode fazer sem o Scrum ou como algo que você pode incorporar no Scrum.
- Toyota é uma companhia super efetiva e uma das razões é porque usam o Kaban
- Kaban significa quadro
A idéia de Kanban é ter um sistema de arranjos de cartão em um quadro que decide como priorizar o trabalho.
É como ter uma lista de tarefas à fazer, em andamento e realizadas.
Usa o conceito just-in-time; que permite que os recursos não sejam desperdiçados.
Vantagens do Kanban
A natureza visual do Kanban oferece uma vantagem única ao implementar a metodologia ágil. O quadro Kanban é fácil de aprender e entender, melhora o fluxo de trabalho e minimiza o tempo de ciclo.
As vantagens do Kanban incluem:
- Aumento a flexibilidade: Kanban é uma evolução, modelo de fluido. Não há períodos de fase definidos e as prioridades são reavaliadas à medida que novas informações chegam.
- Redução do desperdício: o Kanban gira em torno da redução do desperdício, garantindo que as equipes não gastem tempo fazendo o trabalho que não é necessário ou fazendo o tipo errado de trabalho.
- Fácil de entender: a natureza visual do Kanban ajuda a torná-lo incrivelmente intuitivo e fácil de aprender. A equipe não precisa aprender uma metodologia completamente nova, e o Kanban pode ser facilmente implementado em cima de outros sistemas.
- Melhora o fluxo de entrega: as equipes Kanban otimizam o fluxo de trabalho para os clientes. Como a entrega contínua (CD), Kanban concentra-se na entrega just-in-time de valor e entrega de trabalho aos clientes em uma cadência regular.
- Minimiza o tempo de ciclo: o tempo de ciclo é o tempo que o trabalho leva para percorrer o fluxo de trabalho da equipe. Nos projetos Kanban, toda a equipe ajuda a garantir que o trabalho esteja se movendo rapidamente e com sucesso durante o processo.
Desvantagens do Kanban
Muitas das desvantagens associadas ao Kanban vêm com o mau uso ou manuseio incorreto do quadro Kanban. Um quadro desatualizado ou supercomplicado pode causar confusão, imprecisões ou falhas de comunicação.
Veja mais sobre as desvantagens do Kanban:
- O quadro desatualizado pode levar a problemas: a equipe deve estar comprometida em manter o quadro Kanban atualizado, caso contrário, eles estarão trabalhando com informações imprecisas. E uma vez que o trabalho é concluído com base em um quadro desatualizado, pode ser difícil colocar as coisas de volta nos trilhos.
- As equipes podem complicar demais o quadro: o quadro Kanban deve permanecer claro e fácil de ler, no entanto, alguns membros da equipe podem aprender “novos truques” que podem aplicar em seu quadro. Adicionar esses tipos de sinos e assobios ao quadro Kanban apenas enterra as informações importantes.
- Falta de tempo: Uma queixa frequente sobre Kanban é que você não sabe quando as coisas serão feitas. As colunas no quadro Kanban são marcadas apenas por fase (To Do, Doing, Done), não há períodos de tempo associados a cada fase, então você realmente não sabe quanto tempo a tarefa na coluna to do pode durar.
Artigo original escrito por Elbin Keeppanasseril