Rafael Benevides bio photo

Rafael Benevides

In a serious relationship with Software Development

Email Twitter Facebook Google+ LinkedIn Instagram Github Last.fm Youtube

Hoje lendo os meus feeds diários através do Google Reader, me deparei com uma postagem do Paulo Coelho em seu Blog :

Da obsessão

"O medo de errar, na maior parte das vezes, termina nos conduzindo ao próprio erro.

Certo rei encomendou aos geógrafos um mapa do país. Mas exigiu que tal mapa fosse perfeito com todos os detalhes.

Os geógrafos mediram todos os locais, e fizeram um rascunho. Um deles comentou que ainda faltavam detalhes de rios. Resolveram refazer o desenho numa escala bem maior. Quando ficou pronto, o mapa estava do tamanho do primeiro andar de um edifício.

Mesmo assim, alguns conselheiros do rei argumentaram: “não dá para ver os caminhos nos bosques”. E os sábios foram desenhando mapas cada vez maiores, com mais acidentes geográficos do país. Quando, enfim, chegaram ao mapa que queriam, não conseguiram mais lê-lo: era tão grande que ocupava um deserto inteiro."

Foi inevitável a comparação/lembrança/analogia com os modelos de desenvolvimento que focam no BDUF - Big Design Up Front . Aqui em Brasília e imagino que ainda em muitos lugares do Brasil e quem sabe do mundo, ainda acreditam que para evitar quaisquer surpresas no desenvolvimento do software, é muito importante ultra-super-especificar o software de maneira tão obsessiva que por um segundo eu chego a acreditar que o documento vai compilar e executar. Por mais que os conselheiros digam que "não dá para ver os caminhos nos bosques", muitas empresas gastam muito tempo - algumas vezes (50% ou mais do tempo total do projeto: do fechamento do contrato até a entrega para o cliente) - colocando um bom profissional (aka projetista) para fazer um modelo tão próximo do real que se ele tivesse implementado o software, este poderia ser entregue. Claro que existe um argumento: Só é preciso ter um profissional sênior na equipe que diga o que fazer enquanto os "orelhas" (aka implementadores/desenvolvedores/codificadores/programadores) fazem o código. Isto é muito comum de se perceber, quando olhamos anúncios de vagas para estágios onde oferecem R$ 700,00 para graduandos que conheçam: Struts, Swing, JSF, Hibernate, Spring, Jboss, EJb, JMS, Linux, Inglês, e experiência. É o capitalismo! Capitalismo burro! Diga-se de passagem. Uma empresa com uma equipe diversificada combartilhando seus conhecimentos através de práticas como o pair programming e ainda utilizando as demais práticas ágeis podem aumentar significamente o ROI.

Voltando ao assunto: O cliente não precisa de um "modelo" perfeito com todos os detalhes de um software. Ele quer o software funcionando! Uma equipe "evoluída" também não precisa de um "mapa perfeito": Muitas vez ele é "tão grande que ocupa um deserto inteiro". Prefiro muito mais um profissional usando seus conhecimentos para construir código do que construir "o mapa perfeito". Não podemos deixar o medo de errar conduzir ao próprio erro!