Depois eu leio

Visão panorâmica

O aumento da maturidade nos processos e tecnologias para desenvolvimento de software, têm refletido no mercado com viradas radicais nos critérios que definem um bom desenvolvedor.

Até há algum tempo, quanto maior a sequência de certificações na plataforma X no currículo, mais chances para o candidato. Havia, e ainda existe na cabeça de alguns gerentes, o mito de que quanto mais especializado e maior o tempo desenvolvendo na tecnologia X, mais “sênior” é o desenvolvedor. Na prática, existem muitos com alguma certificação e que mal sabem OO.

Hoje em dia, nas empresas em que vale a pena ficar antenado, dificilmente isso conta como um grande diferencial. O motivo é simples: elas sabem que bons desenvolvedores investem em princípios, não em frameworks.

Bons desenvolvedores são curiosos demais pra manter fidelidade a uma plataforma. Eles querem saber de tudo, Java/C#, Ruby, Lisp, F#, Erlang, Python, Rest, bancos de dados orientados a documentos… Eles sabem que não dá pra expadir a mente o suficiente só estudando patterns da GoF e modelando tabelinhas normais, muito menos decorando peculiaridades específicas de uma plataforma.

Isso é a média. O cara fora da curva não restringe seu campo de atuação a uma plataforma, ele adora programar, adora participar de projetos com pessoas brilhantes, e principalmente, vivenciar desafios legítimos. Java + Oracle, C# + SQL, SOAP… Boooring. Isso é o que o Paul Graham chama de “daily work”. A gente faz isso durante o dia, mas a paixão mesmo, está no fim do expediente quando o músico vai tocar no bar. Ou quando o nerd vai programar em Lua, por exemplo.

Restringir-se a uma tecnologia limita a carreira. Ao invés de decorar as receitas de bolo de uma marca e enfiar seus frameworks goela abaixo em tudo que é projeto, vale mais a pena entender a fundo os tipos de problemas que eles se propõem a resolver, porque e como eles acontecem, e quais as possíveis formas de resolvê-los de pontos de vista distintos.

Ao sair do mundo corporativo padrão, vêm a liberdade de comparar soluções open source  com empresas comerciais, linguagens de paradigmas opostos, técnicas de integração completamente diferentes, e principalmente, pensar como resolver os problemas utilizando a melhor ferramenta para cada caso. Saber “como fazer”, sem antes entender “porquê fazer” é puramente mecânico, é a média do mercado. Qualquer um estuda algumas horas e passa numa prova. Mas saber os porquês traz um ganho muito maior: enriquece a “cultura de software”.

Não abro mão de ter uma “linguagem oficial”, lógico que é necessário ser ninja de verdade em uma coisa pelo menos. Mas as pessoas com as quais convivo atualmente, me demonstram na prática que cultura de software e comunicação eficaz, são as maiores riquezas que você pode encontrar num desenvolvedor. Qualquer um no APInfo pode quebrar o galho num projeto convencional, mas se você realmente quer fazer um sistema direito, procure um nerd de verdade.

Aquele que responde no StackOverflow sobre DDD num dia, e no outro resume 700 linhas de código OO em 70 com um algoritmo maluco em liguagem funcional (porque era para tornar o processamento paralelo), que questiona se o design pattern escolhido não é um sinal da equipe não ter entendido direito a regra de negócio, que aprende sobre DSL programando extensões para o WoW, que sabe que Atores não são apenas pessoas que interpretam no teatro, etc. E isso ainda nem é cultura de software, talvez eu fale sobre isso num outro momento.

O ponto é que a visão de um especialista muito especializado, tem horizontes muito curtos para ajudar a escolher os caminhos num nível mais abrangente. Esse cara pode te entregar no prazo, pode entregar o que você quer, mas não vai ser o que você ou o seu cliente realmente precisava.

É possível encontrar profissionais que seguiram a fundo no “daily work”, com carreira de certificação, e ainda assim são verdadeiros nerds. Até tive o prazer de conhecer alguns. O problema é que existem poucos por aí, e dos casos que conheço, eles nem ligam pros certificados e muito menos ficam presos as soluções da plataforma em questão. Exceto um que é PMP, esse tem vergonha mesmo e prefere quem nem comentem.

Edit

Dois posts que complementam esse blablabla com alguma coisa mais concreta:

http://www.techfounder.net/2009/07/22/what-makes-a-good-programmer/
http://www.inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer/

No comments

No comments yet. Be the first.

Leave a reply