Carreira Dev

8 jun, 2011

Características de um bom desenvolvedor – Parte 01

Publicidade

Muita gente da área de programação às vezes se pergunta: Como podemos reconhecer um bom programador? Eu costumo dizer que não tem uma variável booleana para responder essa questão, mas consigo enxergar alguns atributos importantes e recorrentes em bom desenvolvedores.

É claro que é um assunto muito mais filosófico do que técnico, mas vale a pena abordarmos aqui. Sendo assim, segue uma lista com importantes características de um bom desenvolvedor. Confira!

Planejar antes de codificar

Um grande desenvolvedor reserva tempo para planejar uma abordagem de codificação antes de projetar ou codificar o sistema. Um grande desenvolvedor também sabe que o tempo necessário para fazê-lo poupará ainda mais tempo adiante, porque dessa forma ajuda a evitar possíveis refatoramentos não planejados. Esse planejamento vai da codificação de um método até um grande projeto.

Sempre sabe o porquê

Um grande desenvolvedor sempre sabe exatamente por que escreveu uma determinada linha de código, e por que escreveu daquele jeito. Ele escreve o código porque este é a melhor escolha para uma situação específica e não só para seguir um design pattern ou padrão irrelevante. Um grande desenvolvedor codifica de forma consciente.

Adapta o código a cada situação

Qualquer desenvolvedor pode codificar. Um bom programador escreve o código sólido. Um programador muito bom escreve códigos elegantes. Um grande desenvolvedor escreve o código que é tanto sólido (compacto, bem construído) quanto elegante (preciso, simples, polido). O mais importante: um grande desenvolvedor pode dizer quando não vale a pena o esforço para escrever um código elegante.

Sabe quebrar as regras

Um grande desenvolvedor não só conhece a implementação canônica (design patterns), mas entende o que é a implementação canônica. Um grande desenvolvedor pode dizer quando uma implementação canônica não é a melhor resposta para um problema particular.

Entende quando não se deve mudar o código

Um grande desenvolvedor sabe que refatorar um código às vezes é pior do que consertá-lo. Corrigir um bug pode causar instabilidade em outras partes do produto, por exemplo.

Um código macarrônico cuja função não é bem compreendida não deve ser reescrito até que haja tempo suficiente para garantir o entendimento real e qual impacto ele irá trazer para aplicação como um todo. Um grande desenvolvedor entende as vantagens envolvidas entre mudar o código versus deixá-lo como está.

Depura de forma analítica

Um grande desenvolvedor sabe que a depuração é uma ciência, e não uma arte. Ele deve formular uma teoria sobre a causa do problema, determinar um método para provar a teoria errada, realizar a experiência e observar o resultado. Um grande desenvolvedor registra essas informações e usa esses dados para nortear os trabalhos futuros.

Conhece a linguagem e plataforma intimamente

Um grande desenvolvedor conhece a linguagem de programação (e plataforma) que usa por dentro e por fora. Ele sabe por que cada API foi incluída na língua (plataforma) e por que outras APIs ficaram de fora.

Ele não concorda com determinados aspectos da linguagem (plataforma), mas entende o porquê desses aspectos e trabalha da maneira que eles foram projetados. Um grande desenvolvedor sabe o que a linguagem (plataforma) pode fazer, o que não pode, e como conseguir o mesmo efeito através de outros meios.

Você concorda sobre a importância dessas características em um bom desenvolvedor? Deixe seu feedback nos comentários e vamos ampliar essa discussão. O mercado de trabalho só ganha com essas trocas de ideias.

Até o próximo artigo!