O perigo do mini-waterfall em times ágeis
Hoje estou finalmente tirando o atraso do meu Google Reader e lendo alguns artigos e posts sobre Scrum e Agile development, me deparei com uma excelente iniciativa do Mark Levison chamada Agile/Scrum Smells (baseada em um projeto do Mike Cohn) com o objetivo de catalogar os principais problemas encontrados durante a implantação e dia-a-dia de práticas ágeis, em especial práticas ligadas ao SCRUM.
A lista esta sucinta, mas já constam diversos problemas muito comuns no dia a dia de equipes ágeis. Um dos problemas que me chamaram a atenção e é um problema que temos que evitar a todo custo é a formação do que venho chamando de mini-waterfalls. As pessoas com o tempo, mesmo quando estão dentro de times ágeis, tendem a voltar a fazer as coisas como sempre fizeram, principalmente quando aparecem problemas, Ken Schwaber descreve esta reação no seu livro The Enterprise and Scrum, e a chama de “Muscle Memory”:
Expect muscle memory to exert itself. When a project is going well, everyone is happy with Scrum. However, when stress, a problem, or an unexpected failure occurs, everyone tends to throw away Scrum and revert to their muscle memory. Teams don’t want to self-manage. They want to be told what to do. Managers don’t want to let teams self-manage. They want to command the teams in all matters, down to the minutest detail. Teamwork is dumped for individual heroics. Quality is abandoned. Everyone draws on what they think has worked best in the past. (SCHWABER, The Enterprise and Scrum, Chapter 4).
Bem, detalhamento um pouco mais, entre as caracteristicas de um time ágil temos que ter um número pequeno de profissionais, com todas as habilidades necessárias para que se atinja o goal/visão definida pelo Product Owner e entregando o maior valor de negócio possível no menor tempo possível, aplicando sempre o princípio de implementar “The simplest thing that could possible work“.
É neste ponto onde começam os problemas que vão gerar o mini-waterfall, geralmente as pessoas trabalharam toda a sua vida em empresas que empregam o princípio do Big Design Up Front (BDUF), ou seja, primeiro as pessoas querem planejar todas as possíveis variações do projeto, em todas as telas, todas as mensagens de sistema, todos os fluxos, todas as queries, todo o modelo de dados antes mesmo de começarmos a “meter a mão na massa” no projeto. Isso leva a departamentalização e ao faseamento do desenvolvimento em steps especializados: Levantamento de requisitos, análise, arquitetura da informação, design, provas de conceito, desenvolvimento, testes, produção. Com isso criamos um processo em cascata que incentiva o veneno deste tipo de abordagem: falta de compromisso com o todo, com o Goal e com a Visão, cada um faz a sua parte, e que o próximo na fila no processo dá o seu jeito para entregar para o próximo e assim por diante, as pessoas passam a ser responsáveis pelas suas especialidades e não pelo produto, pela entrega final. É triste ver um time, antes ágil, começando a criar hábitos cascateados e viciados.

O que fazer? Este exemplo usado pelo Mark Levison mostra como seria uma postura ágil:
A successful Scrum team does not need to be comprised entirely of generalists. However, for a team of specialists to be successful each specialist must accept general responsibility for the system as a whole. I may not know how to solve our project’s most intricate Oracle problems but I am going to do whatever I can to help, which may simply include taking on some of our database specialist’s other responsibilities to free her to solve the complex problems.
Enfim, temos que nos policiar contantemente e observar se não estamos voltando aos nossos velhos hábitos, e lembrar que é muito difícil mudar a cultura das pessoas e da organização, e que isso é um trabalho de paciência e perseverança.
11 Comments
Vitor Pellegrino on July 4th, 2008
Pois é, Antônio.
Isso acontece quando as pessoas estão tão acostumadas a se comprometerem apenas com uma parte do processo de construção do software e não conseguem entender que, para o sucesso do Scrum e outras metodologias ágeis, é importante que todo mundo tenha como objetivo maior ter software funcionando no fim.
Excelente post! Reflete muito do que eu vinha pensando ultimamente, inclusive.
André Faria on July 5th, 2008
Parabéns Antônio! Excelente Post.
As pessoas passam a ser responsáveis pelas suas especialidades e não pelo produto, pela entrega final.
A raiz de todos os males… Se estiver acontecendo com certeza não há scrum.
Alexandre Magno on July 5th, 2008
Antonio, muito bom seu post! Muscle Memory é uma realidade, e temos que ficar atentos sempre!
Gluz on July 8th, 2008
Pois é… Mudança de processo sem mudança de cultura acaba criando Frankensteins corporativos. Mutações genéticas que deixam todo mundo com a impressão que o problema é do processo.
Antonio Carlos Silveira on July 8th, 2008
Pois é Gluz, mas na verdade a mudança de cultura não acontece sozinha, as pessoas dificilmente param um dia e decidem mudar de cultura, o vicio do dia a dia e os antigos costumes sempre estao rodeando as pessoas.
O que temos que ter é a atitude de matar estas ações do passado assim que as vemos acontecendo e é claro nao podemos deixar de ver a questão de em alguns casos trocar as pessoas, e parafraseando o Fred Brooks no livro The Mythical Man-Month, prefiro uma pessoa média com excelente atitude do que um super especialista que é negativo e leva tudo para baixo.
Flávio Granero on July 8th, 2008
Muito bom saber essas eurísticas, estamos implanto SCRUM e é bom aprender com erros que outros já passaram. Acho que compremetimento é fator crucial ao adotar um processo.
Abraço
Tiago Albineli Motta on July 18th, 2008
Uma das grandes dificuldades é integrar especialistas que são muito especialistas, e que não possuem interesse em outras áreas que não a atual. O que fazer quando as tarefas nas quais este é especialista são poucas?
Antonio Carlos Silveira BLOG » Agile UX: como integrar UX e desenvolvimento on December 22nd, 2008
[...] maior será a burocracia e principalmente o comprometimento com o produto final, podendo gerar os mini-waterfalls. The more layers in a business, the more spin, meddling, and worst of all, [...]
Bruno Dulcetti on April 9th, 2009
Excelente Antônio. Um pouco atrasado, mas tudo bem.
Esse post vai me ajudar bastante no andamento com a equipe do Videolog onde estou implantando o Scrum.
Abraços meu nobre.
O problema do desenvolvimento de software em cascata « Neurônio Digital on February 27th, 2010
[...] post o perigo do mini-waterfall em times ágeis, o autor Antonio Carlos Silveira resume bem um dos maiores problemas com o processo tradicional de [...]

Subscribe to My RSS Feed





Guilherme Cirne on July 4th, 2008
Antônio,
Excelente post!
Tb ando muito preocupado com essas questões. Mas pelo menos já identificamos o problema, que é o primeiro passo para resolvê-lo.