Iterativo & Incremental: Um Convite aos Erros

30/04/2010

in Engenharia de Software,Gerenciamento de Projetos

Post image for Iterativo & Incremental: Um Convite aos Erros

Entre todos os mistérios que rondam nossa área há um difícil de explicar e justificar: qual a razão de tanta resistência na adoção de um ciclo de desenvolvimento que seja iterativo e incremental?

Nos últimos três anos, só por conta do FAN, pude falar com mais de dois mil profissionais e estive pessoalmente em dezenas de empresas. Sei que não tem valor de pesquisa, mas foi fácil concluir que pelo menos 95% deles ainda trabalham baseados em um modelo “cascata” (ou Waterfall) de desenvolvimento¹. Se considerarmos que já tem quase duas décadas que vários autores, metodologistas, empresas e consultores recomendam a adoção de outro modelo, qual a razão da incontestável predominância da “cascata”?

Não, este (pequeno) artigo não tem a menor intenção de reativar o debate ou destacar prós e contras de cada proposta. Aliás, se você quiser uma boa justificativa *econômica* para adoção do modelo iterativo & incremental, deveria ler este texto do José Paulo Papo. Minha preocupação aqui é outra.

Comumente apresentamos o modelo iterativo e incremental, independentemente do sabor (RUP, XP, Scrum, OpenUP…), como um remédio para as inevitáveis mudanças. Esse discurso costuma encontrar dois tipos de reflexos:

  1. (Ainda) existem aqueles que acreditam que mudanças ocorrem exclusivamente porque o entendimento do problema não foi bem realizado. São os mesmos que, infelizmente, acreditam que a Análise de Negócios é a resposta definitiva para especificações (sic) mal feitas. O que vemos neste cenário é mais gente gastando mais tempo e dinheiro para escrever mais. Deveríamos escrever melhor, estruturar melhor as informações aprendidas e colaborar, conversar mais. E não escrever mais e de maneira mais detalhada².
  2. “Os requisitos são estáveis e temos uma ótima compreensão do problema que iremos sanar. Podemos trabalhar em ‘cascata’”. É um reflexo parecido com o anterior mas com uma diferença: há realmente a sensação de que o solo pisado é de fato conhecido. Esta é uma das justificativas que encontro com maior frequência para a não adoção de um modelo iterativo e incremental.

Percebendo os dois reflexos alterei minha maneira de apresentar e “vender” o modelo iterativo e incremental. Transcrevo abaixo o que costumo falar nos treinamentos e consultorias:

O que é bonito no modelo iterativo & incremental é que ele reconhece um fato que nunca mudaremos: somos humanos. Ou seja, nós vamos cometer erros. Vários! Ao adotar este modelo estamos dizendo para nossos usuários e clientes: “Nós vamos errar, caríssimos, todos nós. Às vezes será um problema de interpretação de seus requisitos e histórias. Outras tantas vocês errarão, na explicação ou apresentação das próprias necessidades. E, precisamos admitir, muitas vezes as funcionalidades entregues não os atenderão pelos mais diversos motivos. Não importa. Aliás, não importa desde que o modelo de desenvolvimento adotado reconheça essa verdade: somos humanos e vamos errar”.

Esse discurso gera duas respostas muito positivas: i) desarma aqueles que ficam louquinhos por um debate; ii) facilita a compreensão por todos que nunca trabalharam de outra maneira que não seja a “cascata” ou o “caos absoluto”. São bastante perceptíveis também as carinhas de surpresa que surgem com a repetição de uma palavrinha: Erro.

Criamos uma cultura que combate e pune erros. Mesmo em ambientes que se dizem “inovadores” o erro ainda é mal visto. As pessoas vivem com medo de errar. Imagine então o desafio de dizer, antes mesmo do início de um projeto, que erros acontecerão. Mas é fato: erramos. Pra caramba!

Clientes e usuários costumam gostar muito dessa transparência, dessa sinceridade. Estranham porque ela não é muito comum em nosso mercado. Mas aceitam o modelo e o consequente desafio com mais facilidade³. Daqui para a adoção de outras práticas mais modernas é “um tirinho”.

.:.

Observações:

  1. Num belo dia um cliente pediu que eu pulasse essa parte do curso: “A gente já desenvolve assim”. Obedeci. Mas depois o treinamento caminhou na base de soluços. Descobri o problema e o susto que curou o soluço: “É que nossas iterações duram algo entre 3 e 4 meses”. Ou seja, eles não desenvolviam de forma iterativa e incremental. Era outra coisa.
    Um outro freguês, agora numa turma aberta, disse que usa Scrum mas que tem que levantar todos os requisitos no início do projeto. Ou seja, não era Scrum. Também era outra coisa qualquer que nem merece nome.
  2. Era uma vez uma empresa que terceirizava todo o trampo de codificação para “fábricas de software” (sic). Eu apresentava para eles os 5 ícones recomendados pelo Cockburn (“Escrevendo Casos de Uso Eficazes”, Bookman. 2006) para indicar o nível de detalhamento de uma especificação de caso de uso. Eles disseram que, para trabalhar com fábricas, os 5 não seriam suficientes. Pediram a criação de outro, abaixo da “ostra”. Sugeriram a colocação da logomarca da Petrobras. E explicaram: “É o nível ‘pré-sal’, sete mil metros abaixo do nível do mar! Só assim o pessoal da fábrica entende.” Repito: não é escrever mais. Não deveria ser…
  3. Era outra vez, lá pelos idos de 2001 ou 2002, eu tocava um projetão. ÃO mesmo, em porte e complexidade. Sabe-se lá porque ($$$) topamos que o cliente “espelhasse” toda nossa estrutura gerencial. Para cada líder de nosso lado, eles colocavam um líder do lado de lá. Um mês de lua-de-mel. Um mês de “briguinhas”. E no terceiro mês a pérola: “Para com esse negócio de iterativo e incremental – queremos que seja cascata”.
    Juro, não é cascata não. Contei a história aqui só para dizer que a palavra “facilidade”, escrita ali no último parágrafo, deve ser interpretada com a devida precaução.
  4. Funny“, a foto utilizada acima, é da Tanakawho. Sempre ela!
Share

Artigos relacionados:

  1. Iterativo & Incremental: O Segundo Fator
  2. [SOA # 8] – Processo de Gestão e Desenvolvimento
  3. Scrum kanbanbanban balangandã
  4. Museu de Grandes Novidades
  5. O Mundo Ágil precisa de Analistas de Negócios?

Related posts brought to you by Yet Another Related Posts Plugin.

{ 4 comments… read them below or add one }

Shigueru May 3, 2010 at 09:19

Oi Paulo, bom dia!

As pessoas vivem com medo de errar. Imagine então o desafio de dizer, antes mesmo do início de um projeto, que erros acontecerão.

Uma parte seria o medo de errar sim. Uma outra seria “preservar” o orgulho à admitir o erro. Uma mais tóxica, seriam as Agendas Ocultas (e pra isso há n motivos).

Ainda bem que isso não é privilégio só nosso. Lembra-se do Adreline Junkies and Template Zombies? Não é diretamente ligado ao assunto, mas veja o que é dito para o padrão Dead Fish:

From Day One, the project has no chance of meeting its goals; most people on the project know this and say nothing.
(…)
The big secret is that nobody on the project believes that the project can be an outright success. Usually, the deadline is not attainable with the other goals unchanged. Mysteriously,
no one declares that there is a big, stinking,
dead fish of failure already smelling up the project.

[]s

Shigueru.

Reply

admin May 3, 2010 at 10:21

Oi Shigueru,

Sabe o que é estranho? Todo mundo sabe que erros acontecerão. Sendo assim, o que cria essa ilusão coletiva? Quais políticas ou aspectos culturais geram o medo e consequentes mentiras e omissões?

E, talvez puxando um pouquinho além, quem são as pessoas mais indicadas para dar um “banho de realidade” em todas as partes interessadas? De quem seria a iniciativa? De um consultor externo?!? hehe..

Abraços e muito obrigado pela participação.

Paulo Vasconcellos

Reply

Shigueru May 6, 2010 at 10:23

Olá Paulo,

Sabe o que é estranho? Todo mundo sabe que erros acontecerão. Sendo assim, o que cria essa ilusão coletiva? Quais políticas ou aspectos culturais geram o medo e consequentes mentiras e omissões?

Creio que eu estaria rico se soubesse a causa disso ;-) . Arrisco-me a apontar algumas coisas:

– Políticas de remuneração atreladas a indicadores mal elaborados
– Cargos de Confiança (gosto de mencionar o que diz o Stephen Kanitz):

Cargo de confiança é simplesmente um conceito anacrônico, algo do passado pré-gerencial. Num mundo competitivo, todos os cargos, incluindo os do governo, precisam ser de total e irrestrita competência, e não de confiança.

- O Estilo Brasileiro de Administrar (identificado por Barros & Prates). Aqui tem um resumo. Mas veja, por exemplo:

A gestão dos negócios e o empreendedorismo à brasileira (…), possuem traços marcantes (paternalismo, a lealdade às pessoas, o formalismo, a flexibilidade e inpunidade), que provocam nas relações empresariais algumas características como a concordância de que um chefe deve ter resposta e soluções a todos os problemas (…). A concentração de poder é outra marca indissolúvel do estilo brasileiro (…), as decisões, em geral, são unilaterais e que os comandados devem aguardar a determinação das diretrizes sem ousar questionálas (postura de evitar conflitos), simplesmente cumprí-las.

Agora sobre esse banho de realidade, lembro do Kanitz novamente (é uma pena, mas não achei o link para o post dele). Ele diz que Consultoria Externa funciona, não porque sejam melhores, mas por que entram em choque/desafiam o Status Quo. E também porque não têm receio de se queimar, pois o trabalho deles são apenas por alguns meses. Veja que interessante esse ponto: converge com as características culturais identificadas por Barros & Prates.

[]s

Shigueru.

Reply

admin May 6, 2010 at 10:34

Boa Shigueru!

Obrigado pela participação e pelas referências. Com certeza não elucida nossos mistérios, mas dá pistas excelentes.

Abraços,

Paulo Vasconcellos

Reply

Leave a Comment

Spam Protection by WP-SpamFree

{ 2 trackbacks }

Previous post:

Next post: