Uso de metodologias ágeis em grandes projetos interdependentes

Este post é uma reflexão. A complexidade e a dinâmica dos negócios exigem metodologias ágeis de desenvolvimento de produtos, incluindo softwares. Negócios e ideias são mutáveis no tempo e são necessários instrumentos que permitam mudanças rápidas sem causar impacto nos negócios. Na maioria das vezes, apenas projetos que estão conectados diretamente com os clientes são elegíveis para usar metodologias ágeis de desenvolvimento. Projetos com requisitos bem definidos e que requerem grandes investimentos devem usar metodologias que se caracterizam por fases bem definidas de desenvolvimento. Criar muitas dependências entre projetos com desenvolvimento ágil aumenta, dramaticamente, a complexidade de gerenciamento, assim como grandes equipes. O uso equivocado de metodologias de desenvolvimento pode acarretar no fracasso dos projetos.

Sabemos, através da teoria do caos, que pequenas mudanças nos sistemas (não confundir com softwares de aplicação) podem gerar resultados imprevisíveis. As metodologias de desenvolvimento ágeis foram concebidas para entregar resultados rápidos em cenários complexos que exigem alto grau de adaptabilidade, buscando produtividade e criatividade.

O Scrum é um exemplo de metodologia ágil que é utilizado para gerenciar o desenvolvimento de produtos complexos. O Scrum não é um processo ou uma técnica para construir produtos, ele pode empregar vários processos e técnicas. As regras do Scrum combinam eventos, papeis e artefatos que regem as relações e interações entre eles. Baseado no conceito de empirismo, afirma que o conhecimento vem da experiência e das decisões tomadas a partir do que é conhecido. Emprega uma abordagem iterativa e incremental para otimizar a previsibilidade e controlas os riscos. O Scrum é apoiado por três pilares: transparência, inspeção e adaptação. A equipe do Scrum consiste de um Proprietário do Produto, uma equipe de desenvolvimento (máximo 10) e um Scrum Master. A equipe se alto organiza e deve ser multifuncional. Deve ter todas as competências necessárias para executar as tarefas sem depender de pessoas fora do time. O coração do Scrum é o Sprint, um objetivo de desenvolvimento que deve ser completado no máximo em um mês. Um novo Sprint é iniciado logo após a conclusão do anterior. O planejamento de um Sprint deve consumir até 8 horas e seu objetivo não deve ser alterado.

Como tudo evolui, muitas empresas estão interessadas em implementar as metodologias ágeis em projetos maiores, criando grandes desafios de adaptabilidade. Projetos grandes, invariavelmente, criam interdependências entre equipes, fugindo do conceito básico do desenvolvimento ágil. Isso já acontece com equipes entre 10 e 20 pessoas. A interdependência de atividades implica na priorização de tarefas entre diferentes equipes, requerendo uma gestão de portfólio de projetos. Isso retira a característica de alto gerenciamento das equipes. O backlog de produtos e Sprints de cada equipe deve ser gerenciado de forma integrada para garantir alinhamento de objetivos e evitar impactos nos negócios.

O PMI.org (Project Management Institute) desenvolveu um conjunto de práticas para lidar com metodologias ágeis para grandes projetos, afirmando ser possível executar projetos ágeis em grande escala. A ideia não é aumentar os níveis de complexidade dos projetos ágeis, mas sim trazer o desenvolvimento ágil para o mundo do gerenciamento estruturado de projetos.

Aqui vem a reflexão. Na prática, será que alcançaremos os objetivos de negócios que exigem flexibilidade e dinamismo para competir no mercado introduzindo metodologias para gerenciar várias equipes de desenvolvimento ágil, priorizando tarefas, gerenciando os backlogs de forma integrada, entre outras restrições? Será que conseguiremos mais produtividade, criatividade e alinhamento com o mercado tirando a independência das equipes?

Conto com sua colaboração.