Quando pensamos em agilidade, logo nos passa pela cabeça o termo velocidade. Mas, ser ágil, segundo os valores e princípios do manifesto ágil, é ter flexibilidade e capacidades de adaptação, replanejamento e absorção de mudanças – não é entregar mais rápido. Vale aqui uma observação: uma coisa é fazer entregas rápidas (curtas) e pequenas para colher feedback o quanto antes e incrementar o produto.
Outra coisa é dispor de uma lista de requisitos a serem codificados, sendo que o time de desenvolvimento tem a obrigação de fazê-lo num tempo pré-determinado e sem a possibilidade de negociação de escopo. Isso não é agilidade.
Para sermos ágeis (de verdade!) é preciso considerar a complexidade como uma importantíssima variável. Por falar em complexidade, não podemos deixar de citar Edgar Morin, um dos principais pensadores da atualidade e idealizador da Teoria da Complexidade (um combinado de Teoria Geral dos Sistemas, Teoria do Caos, Teoria das Restrições, Teoria dos Jogos, dentre outras).
Morin afirma que o cenário atual das relações pessoais e profissionais precisa invariavelmente considerar não só a pluralidade de visões – já defendida anteriormente na Teoria Geral dos Sistemas –, mas também o erro e a imprevisibilidade como questões naturais do sistema. Ou seja, o objetivo da gestão não deve ser ordenar um contexto complexo, mas sim manter o sistema em certo nível de “desordem” (complexidade), para que ele possa contemplar as variações (mudanças) decorrentes das interações e do ambiente. Por exemplo, mapear detalhadamente todos os passos de um projeto e/ou definir exatamente as linhas de comando a serem implementadas pelo time de desenvolvimento não se faz necessário em contextos complexos, pois o nível de imprevisibilidade é alto e o esforço para se ter controle sobre os passos acaba não sendo eficiente.
Devemos propor a solução certa para o problema certo ou a oportunidade certa. Questões complexas são resolvidas com soluções do tipo complexo – onde não se tem alto grau de previsibilidade. No exemplo citado, a ideia é considerar que algo definido na fase de planejamento será redefinido – se necessário – durante o andamento do projeto, ou seja, há um planejamento que não é fechado ao ponto de não contemplar mudanças de rumo, mas sim aberto para acolher as variações que surgem com base nas interações, na experimentação, no ambiente, etc.
Para os métodos ágeis, grande parte dos projetos de software se enquadra em ...