segunda-feira, 5 de abril de 2010

Como trabalham os desenvolvedores profissionais?


Esses dias estive pensando a respeito de práticas de programação que são comuns a todos os desenvolvedores profissionais que conheço. Apesar de haver estilos e características diferentes em cada um deles, há um conjunto de atividades que eles compartilham quase sempre. Portanto, resolvi agrupar uma "lista" dessas atividades principais e divulgá-las aqui no blog.

Vamos à lista:

Desenvolvedores profissionais...


Estudam muito, sempre. 

Eles bebem de várias fontes. Fazem cursos, leêm as obras mais relevantes da área, frequentemente conhecem mais de uma linguagem (e plataforma), gostam de "fuçar" para obter mais conhecimento e estão sempre praticando e testando novas ideias. Para esses profissionais, o importante é aprender sempre e estar  em constante evolução. 


Gostam de compartilhar conhecimento. 

Desenvolvedores profissionais, geralmente, são membros ativos de blogs, grupos de discussão e comunidades. Ajudam seus colegas de trabalho a entenderem técnicas e conceitos importantes, disseminando o conhecimento por todos da equipe. São definitivamente pessoas altruístas e com grande sentimento de colaboração e cooperação. 

Escrevem seus próprios testes.

Desenvolvedores profissionais escrevem seus próprios testes. Como Phillip Calçado expôs nesse excelente post , é bobagem achar que um desenvolvedor profissional não deva produzir seus próprios testes unitários automatizados. Pior ainda é considerar que ninguém deva produzir esses testes alegando questões de prazo e/ou custo. Leia esse post do José Papo e entenda por que isso é um contra-senso  econômico.

Escrevem código para pessoas e não para máquinas.

Qualquer um pode escrever alguma coisa que compile e funcione. Entretanto, somente os profissionais escrevem código limpo, claro e organizado que pessoas conseguem entender e manter. O design é feito pensando nos outros programadores - os que irão passar a maior parte do ciclo de vida do sofware mantendo o produto.

Refatoram de forma disciplinada e habitualmente. 

Na vida real todos nós sempre temos um prazo e um budget. Desenvolvedores sérios sabem disso e são comprometidos com as necessidades de seus clientes. Para respeitar esse prazo, muitas vezes entregam uma solução que ainda não consideram como "excelente" e, para resolver esse problema, assumem e se responsabilizam pelo "débito técnico" gerado, refatorando o código de forma habitual e controlada (obviamente, sempre possuem uma suíte de testes automatizados para tornar a tarefa possível).

Evoluem com o design tendo o business em mente.


Desenvolvedores profissionais criam soluções, de forma incremental, que reflitam o negócio da empresa (e do cliente) em primeiro lugar. Desenvolvedores sérios trabalham com técnicas que facilitem a criação de uma aplicação que contenha elementos comuns a todos os stakeholders do projeto da organização. Geralmente indicam o livro do Eric Evans, "Domain Driven Design", como leitura  obrigatória (e realmente considero um excelente livro).


Enfim, essas são as atividades que considero comuns aos desenvolvedores profissionais. Servem como uma "luz" para o nosso próprio desenvolvimento profissional.

E você? Acredita que há mais atividades importantes?

Comente...

5 comentários:

  1. Viny, eu acrescentaria o seguinte: desenvolvedores profissionais são seres humanos que não se sentem acima do bem e do mal, são bons ouvintes e humildes para reconhecer quando estão errados. Acredito que no nosso dia-a-dia tecnológico alguns conceitos de humanidade acabam sendo deixados de lado, por sermos extremamente programados para o lado técnico da força. Abraços.

    ResponderExcluir
  2. Olá Maksão,

    Concordo com você. Respeitar as pessoas e saber reconhecer erros e virtudes é algo muito importante mesmo.

    Por isso que é fundamental para a cultura ágil o foco e o cuidado com as pessoas que trabalhamos e convivemos diariamente.

    Grande abraço!

    ResponderExcluir
  3. Uma coisa que aprendi e chama minha atenção toda vez que leio...

    Regra #79 para os Gerentes de Projetos

    A gerência sempre promete que amanhã ou na próxima semana ou no próximo mês terá o financiamento, o tempo e os recursos necessários para cumprir com seus compromissos. Não ponha em jogo o seu projeto confiando nessa promessa, utilize os processos de gerenciamento de riscos.

    Fonte: TenStep

    ResponderExcluir
  4. Vinicius acrescentaria que os desenvolvedores profissionais sabem o momento certo de liderar um grupo de desenvolvedores no qual não foi indicado um líder e, também, sabe ser liderado por outro líder.

    ResponderExcluir
  5. Boa colocação Camarar. Saber liderar e ser liderado é uma característica que poucos conseguem desenvolver.

    Abração

    ResponderExcluir

Related Posts with Thumbnails