CMMI or Agile: Are we really falling?

Comments
agile cmmi scrum sei xp
15 November 2008

Com a recente publicação do report "CMMI or Agile: Why not embrace both!" pelo SEI muito flame-war tem sido gerado nos blogs do mundo da agilidade e nas listas de discussões sobre esse assunto. Alguns posts, não sei se motivados por esse report ou não, inclusive clamam que o início da queda dos processos ágeis e do movimento ágil começou.

Lendo a opinião das pessoas, é possível separar em dois grupos distintos os tipos de reclamação:

  1. Os "early-adopters" de Agile que acreditam que, por causa da chegada de Agile ao main stream aqui no Brasil, as práticas ficaram(ão) deturpadas e distorcidas e que agora todo mundo diz que é ágil, mas na prática,de acordo com a opinião desses mesmos "early-adopters" não são;

  2. As pessoas que não acreditam que seja possível a co-existência entre CMMI e Agile e recusam-se a acreditar que isso possa trazer benefício algum;

Eu discordo dessas duas linhas de pensamentos e acredito que, mais que nunca, agora é que a coisa principalmente aqui no Brasil tende a melhorar.

Neste post, James Shore conta que antigamente ele era chamado para introduzir agilidade nos ambientes corporativos (e da a entender que essa época era boa). No entanto, hoje ele é chamado para ajudar a corrigir equipes "so called agile" que na verdade de ágil não tem nada. Bom... os tempos mudaram! É pouco provável que essa época onde a iniciação em agilidade deveria ser feita por um dos agile-gurus durasse pra sempre.

Como eu disse acima, o movimento chegou ao mainstream, mas isso só aconteceu porque quem iniciou esse movimento assim o quis. Agile veio do povo para o povo e isso agora incomoda muita gente. Hoje, quem quiser manter o título de master-introduzidor-de-agilidade-e-coaching vai ter que ralar e se ajustar as novas demandas.

Ainda comentando a respeito do primeiro grupo de opiniões, assim como a bíblia (é, aquela sagrada a respeito de Deus) e de acordo com os próprios autores de alguns livros conhecidos como referência (Scott Ambler em Agile Modeling e Ken Schwaber em Project Management with Scrum, por exemplo), práticas ágeis são apenas o que o próprio nome diz: práticas!

Como não são um how-to detalhado que você deve aplicar em todas as ocasiões e muitas vezes bastante abstratas são passíveis de interpretação. Sendo assim, como alguém pode dizer se você é ou não ágil? Se as práticas que você aplica estão trazendo resultados satisfatórios qual o problema em se referir ao termo agilidade? Está acontecendo a mesma coisa que acontece com alguns usuários de Linux e alguns participantes de projetos open-source: as pessoas estão se apegando demais aos termos e títulos e deixando de lado realmente o que o movimento prega. Parece ciúmes.

Movendo agora o foco para o segundo grupo de reclamantes, acredito que afirmar que CMMI é incapaz de trazer benefícios para as práticas ágeis é no mínimo uma contradição visto que um dos princípios básicos de agile é adaptação. Sempre quando alguém fala a respeito de como iniciar com metodologias ágeis uma das primeiras recomendações que ouço é "Não tente mudar o processo antes de utilizar ele da forma padrão. Experimente e depois decida se é necessário fazer alterações". Olha lá! Mais um motivo para não fazer essa afirmação de que nenhum benefício pode ser colhido dessa co-existência. Como alguém pode afirmar que não vai dar certo se esse report foi uma das primeiras menções (se não a primeira) a respeito dessa co-existência e nada concreto ainda foi gerado? É a mesma coisa que dizer que não gosta de brocólis sem nunca antes ter provado.

Não sou expert em CMMI, tão pouco em Agile. No entanto, se verificarmos a origem do CMM e como a transformação ocorreu para o CMMI é possível entender porque as práticas são tão distoantes. O CMM teve origem no departamento de defesa dos Estados Unidos. Eles precisavam de um modelo que pudesse garantir que o software funcionando em um avião militar não parasse de funcionar no meio de um vôo. Hmm... não precisamos pensar muito pra concluir que antes de testar um treco desses em produção (guerra?) ou em homologação (vôo de treinamento?) seriam necessários muitos testes para garantir que os milhares de dólares que essas belezinhas custam não fossem jogados no buraco; sem falar na vidas dos pilotos.

Dessa forma, acredito que essa abordagem extremamente pesada, com longa duração e diversas exigências de verificação e validação em diversos níveis hierarquicos, de fato, não parece a pior opção pra esse cenário.

São duas abordagens diferentes e que devem ser usadas em cenários diferentes. O perigo é conhecer uma ferramenta só (martelo) e sair martelando tudo que encontrar pela frente até quando o alvo não é um prego, mas sim um parafuso.

Em resumo e para conluir (já escrevi muita coisa...) acredito que é cedo pra afirmar qualquer coisa e que não devemos nos opor tão radicalmente as mudanças (como o próprio manifesto prega). Se essas mudanças tanto no aspecto da ascensão de Agile ao mainstream quanto das mudanças oriundas da co-existência com CMMI forem pra melhor, vão permanecer. Se forem para pior, com certeza o mercado logo, logo esquece... e se não esquecer cada um pode sempre criar seu próprio mundo onde tudo é bonito e belo! :)


<< Dando as caras
DotNetArchitects - Próximo Encontro>> 
comments powered by Disqus
tucaz

tucaz

.NET Software Developer
About
All Posts
RSS
@tucaz
GitHub