Falar de agilidade é mais do que falar de métodos. O mais importante é a mentalidade. Veja o que diz os dois primeiros dos 12 princípios do manifesto ágil:
Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.
Sem um método de desenvolvimento, dificilmente será possível satisfazer o cliente. Ao mesmo tempo, não será possível garantir entrega adiantada e contínua de software de valor com métodos muito engessados. Aí que entram as metodologias ágeis.
As metodologias não garantem que certa empresa tenha de fato uma mentalidade ágil, mas elas ajudam bastante a se chegar à agilidade.
Scrum
O Scrum é baseado em Sprints. Cada ciclo de trabalho dura um período fixo de tempo, geralmente de 2 semanas. No final de cada Sprint há a reunião de revisão, onde o entregável daquela Sprint é apresentado aos stackeholders.
O fato do Scrum gerar um entregável a cada ciclo, faz com que o produto possa ser testado logo no mercado, em vez de esperar até o final do projeto. Depois da Sprint, o backlog da próxima Sprint pode ser repriorizado. Desta forma, após o produto ser testado no mercado, é fácil pivotar se for preciso.
Kanban
O Kanban é um método criado para aumentar o foco de trabalho. O time puxa a tarefa do topo de uma lista de tarefas e executa cada etapa do processo de desenvolvimento. O número de tarefas que podem ser executadas ao mesmo tempo é limitada, desta forma é garantido que não haverão tarefas incompletas em excesso. O ideal é que as tarefas sejam de tamanho parecido, de forma a facilitar a previsibilidade das entregas.
O Kanban facilita o fluxo contínuo de tarefas, buscando remover rapidamente os impedimentos, sem iniciar tarefas novas. Um time que roda o Kanban tem maior facilidade de ter entregas constantes e frequentes. Fora isso, a lista de tarefas pode ser alterada a qualquer momento, facilitando a mudança de escopo.
Quero os dois
Scrum e Kanban são compatíveis, isto é, pode-se ter os dois simultaneamente. O primeiro foca mais nas cerimônias de equipe e na definição de entregável, enquanto o segundo foca mais no fluxo de trabalho e na melhoria de processos.
Pré-requisito
Tanto o Scrum quanto o Kanban precisam de um pré-requisito para funcionarem bem e serem verdadeiramente ágeis: autonomia. Mais um princípio ágil:
As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.
Times que tem liberdade para decidir como se organizar, como executar as tarefas e quando elas serão entregues, conseguem fazer um trabalho de maior qualidade. Desta forma, entregando software de valor. O coração da agilidade está na satisfação do cliente.