segunda-feira, março 09, 2009

Arapucas para o Desenvolvedor

O artigo Armadilhas para Desenvolvedores é muito bom, mas ao ler ao título eu imaginei algo um pouco diferente. O artigo trata de armadilhas de formação; neste post vou falar (principalmente por experiência própria) de algumas situações em que o desenvolvedor, por mais capacitado e experiente seja, acaba sendo atraído para grandes frias.

Daqui para frente, tudo vai ser diferente

Por mais encrencada que seja uma fase, sempre acreditamos que a fase seguinte vai correr tranquila. A partir de um certo ponto ficamos tão atraídos pela 'isca' do fim da fase atual que caímos desavisados nas encrencas da fase seguinte. Os piores projetos que eu conheci já davam sinais de dificuldade no pré-venda.

Nada como a experiência

A experiência pode ser uma coisa perigosa. Quando as coisas desandam de vez, o projeto vira a chamada 'death march' e todas as expectativas de lucro evaporam, a 'experiência' passa a ser o prêmio de consolação. Quem já não disse e ouviu a expressão "vale pela experiência"?

O problema está na hora de colocar esta experiência na prática. O mais comum é achar que a experiência irá neutralizar todas as dificuldades, ao invés de reconhecer que algumas delas são inerentes ao que estamos fazendo e apenas uma parte se deve a escolhas incorretas. Ocasionalmente ocorre o inverso: o trauma de um projeto ruim é tão grande que aquele tipo de problema passa a ser 'impossível'.

O limite da competência só é descoberto quando ele é ultrapassado

À medida em que conseguimos bons resultados, nos sentimos preparados para algo mais complexo. Até o momento em que passamos do limite da nossa competência. Para chefes, isto vale também na hora de delegar: você se entusiasma com o desempenho de uma pessoa e vai passando tarefas mais difíceis e um dia percebemos que passamos algo que ela não está conseguindo fazer.

Ferramentas

As arapucas relacionadas a ferramentas são fartamente conhecidas e documentadas. O que não impede de continuarem a fazer vítimas.
  • Quando se tem um martelo nas mãos, escondam as lâmpadas: A partir do momento em que se atinge a familiaridade com uma ferramente, particularmente uma linguagem de programação, usar uma outra fica cada vez menos confortável. E com isso vai-se usando a ferramenta em condições cada vez menos adequadas, até causar um desastre.
  • A atração da nova ferramenta: Paradoxalmente, existe também o efeito contrário, a atração do novo. Principalmente quando se trata de algo que está causando muito burburinho e que vai ficar bonito no currículo. Você sempre fez aplicações cliente servidor, todo mundo começa a falar em aplicações web - e você propõe que a próxima aplicação seja web, apesar de você e a empresa não terem nenhuma experiência nisso. Resultado, mais um projeto candidato ao prêmio de consolação.
  • Ferramentas miraculosas: A crença em milagres costuma ganhar do ceticismo. Muitos orçamentos e cronogramas se baseiam em obter resultados perfeitos de uma ferramenta com a qual temos pouca experiência.
O custo de voltar ao zero

Quando você se dá conta que pegou o caminho errado, você volta atrás ao último ponto conhecido, ou continua de forma meio aleatória na esperança de voltar logo à trilha? Eu pessoalmente costumo ir pela segunda opção e tenho a impressão que assim age a maioria. O motivo é o custo claro de voltar atrás contra a esperança de estar, pelo menos em parte, indo na direção correta.

É uma decisão complexa, mas desconfio que ninguém considera seriamente a opção de voltar ao zero quando as evidências mostram que foi tomada uma decisão incorreta (arquitetura, ferramenta ou mesmo projetista inadequado).

A Síndrome da Segunda Versão

É o complemento da arapuca anterior: após conseguir fazer com sucesso a primeira versão, se parte para um re-projeto total com a meta de colocar no sistema "tudo o que não deu para colocar no anterior". Isto transforma a segunda versão uma monstruosidade tão complexa que nunca consegue ser terminada.


Bem estas são as arapucas que eu consegui lembrar. Sintam-se livres para mencionar outras nos comentários.

Um comentário:

breno faria disse...

Parabéns, excelente artigo!

Infelizmente, ou felizmente, a tecnologia voa e com ela a necessidade de se manter no mercado com novas idéias. Este talvez seja o motivo de na maior parte das vezes, não percebermos que estamos caminhando rumo à uma mais nova, velha conhecida arapuca!

Grande abraço Daniel.

Att.
Breno.