Usar as melhores ferramentas

Esta faca que estão a ver na foto não é uma faca qualquer. É japonesa, da marca Korin e custa $434. As facas japonesas são lendárias entre os top chefs, todos têm várias apesar do preço exorbitante. A última coisa que um dono de um restaurante vai querer fazer é questionar o seu chef em relação à compra destas facas ou outra qualquer ferramenta, pois corre o risco de perder o seu chef . Porque os grandes chefs não trabalham com ferramentas razoáveis, nem trabalham com ferramentas boas, nem mesmo com ferramentas muito boas. Eles trabalham com as melhores ferramentas. Ponto final.

Muitas empresas de IT não percebem isto. Dão aos seus programadores ou web designers ferramentas razoáveis ou boas, mas raramente dão as melhores, a menos que sejam de borla (muitas ferramentas open-source são melhores do que as pagas). Mas quando se trata de desembolsar, entram numa lógica puramente economicista de redução de custos, pensando que estão a poupar dinheiro. Este tema é de tal maneira crítico no desenvolvimento de software que faz parte do famoso Joel Test:

Writing code in a compiled language is one of the last things that still can’t be done instantly on a garden variety home computer. If your compilation process takes more than a few seconds, getting the latest and greatest computer is going to save you time. If compiling takes even 15 seconds, programmers will get bored while the compiler runs and switch over to reading The Onion, which will suck them in and kill hours of productivity.

Most programmers eventually have to manipulate bitmaps for icons or toolbars, and most programmers don’t have a good bitmap editor available. Trying to use Microsoft Paint to manipulate bitmaps is a joke, but that’s what most programmers have to do.

At my last job, the system administrator kept sending me automated spam complaining that I was using more than … get this … 220 megabytes of hard drive space on the server. I pointed out that given the price of hard drives these days, the cost of this space was significantly less than the cost of the toilet paper I used. Spending even 10 minutes cleaning up my directory would be a fabulous waste of productivity.

A grande ironia aqui é que as empresas que acham que estão a poupar dinheiro ao fornecer ferramentas que são apenas ok estão na realidade a perder dinheiro. O dinheiro que pouparam ao não comprarem o computador mais rápido vai-se reflectir no tempo a mais que demorará a fazer tudo. Poderá ser apenas uns segundo a mais em cada compilação, ou a arrancar o servidor local ou a copiar ficheiros. Mas isto são tarefas que são executadas centenas de vezes por dia, todos os dias. Esses segundos acumulados poderão representar, ao fim de um mês, um dia de trabalho.

Não se trata só de computadores. Falo de tudo o que pode aumentar a produtividade ao longo de anos com um custo inicial fixo (ou seja, não é um custo mensal): a cadeira, o monitor, o editor, o debugger, a BD, o profiler…Façamos umas contas para percebermos quão ridícula é essa suposta poupança.

Imaginemos uma vulgar empresa de que desenvolve software à medida e que tem mais do que 50 empregados. Vou utilizar valores fictícios mas aproximados da realidade, embora esteja a ser bastante conservador. Cada programador custa à empresa 30 euros/hora (obviamente, este custo contempla muito mais do que o salário – impostos, segurança social, seguro, instalações, custos administrativos, ferramentas, etc). A empresa poderá cobrar aos clientes 40 ou 50 euros/hora por programador mas isso não é relevante para este caso. É claro que não é fácil medir o aumento de produtividade que advém de utilizar uma cadeira melhor ou um compilador mais rápido. Por isso, vou ser bastante conservador e dizer que o aumento de produtividade por utilizar as melhores ferramentas é de 5%. Por exemplo, se antes o programador desenvolvia um caso de uso em 4 horas, agora demora menos 12 minutos. Não me parece descabido, basta que o tempo de compilação e de arranque da aplicação se reduza ligeiramente para ter este ganho.

Assumindo então um aumento de produtividade de 5%, podemos dizer que o programador passou a custar menos 5%. Ou seja, se antes custava 120 euros a desenvolver o tal caso de uso (30 euros/hora * 4 horas), agora custa 95% desse valor (114 euros).

Ao fim de um ano, esses 5% consistirão na módica quantia de 3000 euros. Portanto, se o dinheiro gasto em ferramentas num ano ficar abaixo dos 3000 euros, a empresa está na realidade a poupar dinheiro. Se tivermos em conta que não compramos licenças novas de software todos os anos, nem compramos cadeiras ou monitores novos todos os anos, percebemos que é possível comprar as melhores ferramentas e poupar dinheiro. Que raio, uma licença do melhor debugger de HTTP custa 279 euros (sem descontos de quantidade, na realidade este valor seria inferior)! O melhor issue tracker custa 44 euros por pessoa (assumindo uma licença para 50 utilizadores)!

Isto foi uma demonstração extremamente simplista e que reduz o problema a uma perspectiva meramente financeira. Mas este tema vai muito além da mera redução de custos. Tal como um chef terá muito maior prazer a cozinhar utilizando as facas que eles escolheu – afinal de contas ele saberá melhor do que ninguém aquilo que precisa – também um programador gostará mais do que faz e isso tem efeitos que vão muito além da fria perspectiva contabilística.

2 Comments

  1. Percebo perfeitamente o ponto de vista, e assino por baixo. Mas, continuando com a metáfora, da mesma forma que a maioria dos restaurantes tem cozinheiros, e não “chefs”, a maioria das empresas de desenvolvimento também não terá a qualidade do que produz em tão alta estima quanto isso (qualidade essa que é influenciada pela qualidade das ferramentas, as capacidades das pessoas, os processos de desenvolvimento, etc).

  2. Alves says:

    Filipe, o custo por hora que usei como exemplo é o custo de cozinheiros. Se fosse uma empresa de “chefs”, o custo seria bastante superior. Ou seja, mesmo com cozinheiros não faz sentido poupar nas ferramentas.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*