Brasil

22 dezembro 2009 ~ 13 Comentários, deixe o seu »

Programador lento

Na Myfreecomm temos alguns programadores lentos, graças a Deus. Conversando sobre isso com o Henrique, ele disse que merecia um post. Atendendo a pedidos, aí está.

Depois de bastante tempo sem programar, eu passei dois dias escrevendo um pequeno sistema para integrar a parte de pagamento de uma aplicação com o Paypal.

O fato de ter voltado a programar, depois de mais de um ano apenas gerenciando projetos e equipes, e estudando metodologias ágeis, me fez optar por escrever uma aplicação 100% testada, em Ruby, utilizando Sinatra. Gostaria de aproveitar para agradecer o Rafael Souza que me ajudou bastante no início.

A escolha de Ruby (ao invés de Python por exempo) e Sinatra (ao invés de Rails por exemplo), não importa. O que importa é que eu poderia fazer tudo “scriptado” (aka cuspido), mas achei que não deveria. O primeiro motivo é que se trata de um middleware para um processo crítico que não pode falhar, o pagamento. Segundo, por que na minha cabeça não fazia sentido cuspir um código e fazer funcionar o mais rápido possível.

Isso me fez pensar sobre o paradoxo da qualidade x velocidade. A conclusão que tirei das minhas reflexões é que os programadores que se dizem lentos, na verdade não são lentos.

Para você dizer que alguém é lento, você tem que comparar com outra pessoa. Lentidão é relativo. Você não é lento e ponto final, você pode ser lento se comparado com outras pessoas.

Minha conclusão foi que na verdade o “programador lento” faz as coisas no tempo em que elas realmente precisam para serem feitas da maneira que funciona. Na verdade, os outros que são rápidos de mais. Adianta ser rápido e ter bug?

Analisando sob essa ótica, e considerando a premissa de que a maioria das pessoas (rápidas) fazem errado, vide relatório Chaos Report do Standish Group, posso dizer que programadores lentos são bem-vindos.

Hoje, eu vejo essa característica como um sintoma de que ele programa com boas práticas e com o cuidado necessário para o software funcionar.

No final da conversa eu disse para o Henrique: “Se em uma entrevista de emprego, um programador me diz que é lento, eu vou vê-lo com bons olhos”.

Abraço e até a próxima.

13 Respostas para “Programador lento”

  1. Ricardo 22 dezembro 2009 at 9:41 AM Permalink

    Legal vc abordar este assunto, e só pra por um pouco mais de lenha na fogueira, vamos colocar uma pergunta: “Agilidade é velocidade?” Um desenvolvedor ágil, é um desenvolvedor rápido? isso com certeza dá margem pra bastante discussão.

  2. Lucas Arruda 22 dezembro 2009 at 2:19 PM Permalink

    Só um comentário: na verdade, todo software sempre terá bugs. Sendo ele desenvolvido lentamente, testado, etc. Isso é um conceito que deve estar bem claro no desenvolvimento de software.
    A vantagem de se desenvolver “lentamente” é reduzi-los em grande número.

  3. uchoaaa 7 maio 2010 at 1:56 AM Permalink

    Cara, gostei. Principalmente pq me identifiquei, rs.
    Pensava sobre isso ultimamente. Acho que um progamador “lento” (note bem as aspas, hein?!) trabalharia bem com alguém mais, digamos, “rápido”. Teria um bom equilibrio Qualidade X Velocidade no projeto.

    Como é meu primeiro comentário: legal o blog, hein?!

    Abraços

  4. Umgeher 16 agosto 2010 at 8:58 PM Permalink

    Gostei, realmente diz muito sobre o que anda acontecendo no mundo do desenvolvimento de software. E para colocar mais material radioativo no post.

    Considero programadores rapidos preguicosos. Apenas usar algo que voce “conhece” para todos os problemas que aparecem nao e’ inteligente nem muito menos legal.

    Mudem um pouco, estudem, testem, desenvolva com tecnologias diferentes. Nem sempre Rails / Django sao perfeitos para o seu atual problema, ainda mais se voce apenas usa eles. Mmmm e ainda fica um video legal para ver: http://www.youtube.com/watch?v=i6Fr65PFqfk

  5. Rafael Lima 16 agosto 2010 at 9:41 PM Permalink

    Umgeher,

    Valeu pelo comentário, pela dica do vídeo e…

    … seja bem-vindo :)

    Abração.

  6. Dirlei Dionísio 20 outubro 2010 at 11:38 PM Permalink

    Sob essa definição, acho que um programador tem que ser lento sempre que possível e rápido quando necessário. Eu sempre prefiro codificar devagar, mas fazer direito. Porém, há ocasiões em que simplesmente não dá pra “fazer direito” se isso significar demorar um pouco mais para entregar um trabalho. Quando necessário, sou capaz de trabalhar nesse modo, apesar de não ser minha preferência. O problema é ter que ser rápido sempre. Aí ninguém aguenta.

    Grande abraço!

  7. Rodrigues 4 julho 2011 at 7:58 PM Permalink

    Rafael.

    Me consideram um programador lento. Gosto de coisas com qualidade e perfeição.

    Hoje sofri mais uma derrota, novamente demitido por não ser agil o bastante, o projeto sequer tinha documentações, e não tinha sequer metodologia de projeto. Se escondiam atras de um Mamute chamado Team Foundation System e achavam que com aquilo tudo seria mais feliz.

    Mais o projeto era gigante, chegando ao ponto da compilação dar uma série de erros.

    Pelo projeto ter muitas porcarias e a falta de documentação, fazia um chefe ser ainda mais inseguro, com enxurrada de e-mails cobrando coisas que não faziam parte do escopo, acarretando atritos em sala de reunião.

    Para quem arrebentou a corda ? Para mim, é claro!! Do lado mais fraco.

    Os programadores sempre são culpados. Alguns chefes escondem sua vergonha debaixo dos tapetes com novas contratações e relatórios. Vou me tornar um chefe, pois acredito num tempo maior de vida.

    Por favor, sei que tem coisas que escrevi aqui não são de opinião do conjunto, mas agradeço se fosse poupado de fortes criticas. Sei que pode ter coisas que podem julgar erradas aqui. Mas obrigado mesmo assim por dar espaço.

    Um abraço e belo blog!!

  8. Johnathan Cardoso 6 julho 2011 at 9:37 AM Permalink

    Me identifico com a definição. Estou no mercado há alguns anos e já tive a oportunidade de delegar missões a uns 4 programadores diferentes e já vi programadores rápidos e lentos e posso dizer que é bom ter os dois na equipe, melhor ainda se tivermos um que saiba balancear a velocidade e a lentidão no momento certo.

    Seguindo a opinião de outros leitores, acho que o programador deve saber o momento certo, isso normalmente só vem com a experiência do próprio programador ou de quem o supervisiona.

  9. Daniel Teixeira 6 julho 2011 at 9:39 AM Permalink

    Se estou em uma etapa em que é necessário aprendizado ou planejamento e assim existe muita incerteza, tem mais testes para serem feitos, mais conceitos para validar e portanto na média mais lento.

    Mas se estou em uma etapa que é mais conhecida e explorada anteriormente e possivelmente estou usando muita coisa que já foi testada e validada generalizar conceitos e fazer logo pode ser mais interessante.

    E comigo pelo menos isso se dá em formas de ciclos, o que parece mais uma porra Zen da vida, Yin Young, balancear o universo e blá blá blá.

  10. Douglas Dorô 15 setembro 2011 at 12:29 PM Permalink

    Rafael,

    Bacana o post, meus parabéns. Cheguei no blog meio que por acaso e era exatamente o que eu precisava ler e não sabia(rs).

    abs,