DEV Community

Cover image for Desenvolvendo com armas secretas
Henrique Lobo Weissmann (Kico)
Henrique Lobo Weissmann (Kico)

Posted on

Desenvolvendo com armas secretas

Texto escrito em 2013

Sempre quando vou apresentar uma plataforma de desenvolvimento que não seja "mainstream" topo com argumentos do tipo "aonde vou encontrar mão de obra que saiba lidar com isto?", "ninguém que eu conheço usa isto!" ou mesmo "para nos mantermos competitivos temos de usar as ferramentas que o mercado adota". Papo furado!

"Competitividade"

"Gente em terno" adora usar a palavra competitividade. Não é a toa que sinto calafrios, dado que raras vezes os vejo usar o significado real do termo. Competitividade vêm de competição: é você contra um ou mais adversários que possuem um objetivo em comum. Seu objetivo não é estar "ao lado", mas sim "na frente".

Um pouco de papo furado

"Aonde vamos encontrar mão de obra qualificada para isto?"

Se a ferramenta não possuir uma documentação adequada, provavelmente este argumento se sustenta. Infelizmente, o que observamos é o fato deste negar uma capacidade básica do ser humano: as pessoas aprendem.

Então, a partir do momento em que você adota este tipo de postura sua única possível vantagem competitiva ao adotar o que seus concorrentes usam desaparece: você não precisa mais de pessoas que queiram e gostem de aprender: você precisa de pessoas que já saibam. Se elas gostam de aprender ou não passa a ser uma espécie de brinde.

Na minha opinião a melhor maneira de se testar a capacidade de um profissional é ver como este se porta no contato inicial com tecnologia alienígena. É neste tipo de situação que você capta como a pessoa lida com as dificuldades que surgem no trabalho. "Curioso" usarem tão pouco isto em processos seletivos.

"Não é padrão de mercado"

Então padrão de mercado é fazer igual seus competidores? Você acaba de negar a capacidade de aprender da sua equipe (vide "aonde vamos encontrar mão de obra"), logo o máximo que você tem é a média. A não ser que seja definido em contrato pelo seu cliente, você possuí liberdade para escolher o que usar: e se for possível com a "Arma X" obter um resultado superior, pergunto: por que não? Maria vai com as outras?

Compatibilidade com os padrões de mercado não implica em ser igual ao resto: implica em funcionar com este. Pegue a JVM por exemplo: é um maravilhoso padrão de mercado. Realmente, é difícil pensar em plataforma superior, no entanto quem disse que você precisa usar como linguagem de programação apenas Java? Eu por exemplo tenho usado muito Groovy e Clojure. Estou dentro do padrão de mercado e com competitividade superior.

Também não é porque é um "padrão de mercado" que a coisa seja ruim. Na maior parte das vezes estamos lidando com um padrão bacana: o diferencial está no relacionar-se com este. Chutar porque é mainstream é burrice.

"Aonde eu vou arrumar emprego com isto?"

Este é o argumento mais triste e normalmente parte do próprio desenvolvedor. A questão não é aonde você vai arrumar emprego, mas sim o que você vai agregar no seu atual (e futuro) com o conhecimento que você adquire com tecnologias "fora do mapa". Veja o meu exemplo com Lisp citado acima. Mesmo que você jamais use sua arma secreta na prática, o simples fato dela ter te agregado conhecimentos novos já te enriquece.

E outra: procurando bem você sempre encontra alguma coisa. Afinal de contas, normalmente o brinquedo não foi inventado por você, então ALGUÉM usa.  Você que é o responsável pelo seu futuro profissional, não a empresa em que você trabalha.

"O ambiente para o qual desenvolvemos é incompatível com isto"

Se realmente for, por que você está perdendo tempo avaliando uma tecnologia que não vai funcionar?  É função intelectual básica saber escolher a ferramenta certa para o trabalho correto. Se nem isto você consegue fazer, não perca tempo e pule fora da área. Simples assim.

Armas secretas

Se você trabalha com desenvolvimento e quer se diferenciar você precisa de armas secretas mesmo que jamais as use na prática. Chamo de arma secreta toda tecnologia/conhecimento que não seja usada em massa mas que de uma forma ou outra te agregue algum conhecimento. Muitas vezes elas oferecem alternativas interessantes para problemas comuns que seus adversarios, por estarem usando todos as mesmíssimas coisas, gastam um tempo danado para resolver.

Um exemplo de arma secreta que possuo mas raríssimas vezes usei na prática foi Lisp. Não programo tão bem nesta linguagem como faço em Groovy ou Java (minhas especialidades), mas o simples fato de ter tido contato com Lisp me tornou um programador melhor. Quando o hype das linguagens funcionais surgiu, por exemplo, não era novidade pra mim: já programava em Java daquela forma por muitos anos e não enfrentava a maior parte dos problemas que os "funcionais" gritavam por aí.

É interessante observar hoje que, enquanto vejo a maior parte das pessoas programando para as plataformas Java ou .net eu conheça pouquíssimas que estejam ficando ricas de fato com estas plataformas. Em contrapartida, vejo pessoas ficando muito ricas com (prepare-se...) Delphi, VB6 e Autolisp. Justamente plataformas que são ignoradas pelo mainstream. O mais interessante é que vejo pessoas pequenas se tornarem grandes, e os grandes que se mantém no senso comum se manterem, bem: apenas grandes, com pouco crescimento.

Armas secretas abrem sua mente: elas tiram da sua cabeça a idéia de que um ou outro objetivo é inatingível, porque muitas vezes é a tecnologia mainstream que o mostra como desta forma.

Exemplo histórico interessante: Apple

Não há nada de novo no que estou falando: a Apple só surge e se torna um sucesso devido às suas armas secretas. Enquanto em 1975 as pessoas acreditavam que computadores pessoais seriam algo extremamente caro de se produzir devido ao modo como computadores eram construídos na época por empresas como IBM ou DEC, Steve Wozniack percebeu que usando componentes de prateleira como memória de televisores e um tal de processador Zilog Z80 meia boca era possível construir alguma coisa. Há duas armas secretas em ação aqui: a genialidade de Wozniack e o uso de componentes eletrônicos alternativos.

Resultado: um PC de US$ 666,00 que foi a base para que a Apple por muitos anos estivesse à frente da IBM. Davi vs. Golias clássico.
(depois eu sei que o IBM PC bateu o Apple II, mas foi por força bruta, com um investimento bilionário contra um outro que estava na casa dos milhares de dolares (mesmo perdendo a Apple ganhou em eficiência))

Exemplo próximo: itexto

Que tal agora um exemplo de uma empresa realmente pequena: a minha. Vocês sabem como eu ganho diversas concorrências? Usando minha principal arma secreta: Grails. Dado que a maior parte das demandas que chegam a mim são basicamente CRUDs, quando entro em uma competição as ganho por oferecer um preço significativamente menor: enquanto os outros estão focados em JSF, com Groovy e Grails obtenho uma produtividade ordens de magnitude maior. Não perco tempo com integração de componentes ou construção de CRUD: customizo meu scaffolding e foco apenas na lógica de negócios que é essencial ao sistema. Quando meus concorrentes terminam os CRUDs normalmente já entreguei o sistema funcionando.

Resultado: ofereço algo a um preço menor, qualidade e valor superior ao meu cliente, que sempre volta querendo mais. E sinceramente, se o desenvolvimento do Daft Lisp der certo, o vejo como talvez A minha arma secreta profissional. Ah: e quando o pessoal estiver usando Grails pra tudo?Aí eu com certeza vou estar em outra. É sempre assim. :)

Concluindo

Armas secretas não são um luxo: são condição essencial para a sobrevivência e desenvolvimento dos pequenos empreendedores. O argumento de que só devemos usar o que é "adotado pelo mercado", conforme expus acima, é furado e baseado no pessimismo em relação à própria equipe ("ninguém vai querer aprender"). E mais: se você trabalha com as ferramentas que ama, automaticamente já vai ser mais produtivo que o resto, afinal de contas, você vai correr atrás. Na sua equipe tem gente que é contra e não apresenta contra-argumentos? Ótimo: identificou quem não deveria fazer parte do seu time.

É óbvio que você vai basear suas escolhas em algum raciocínio bem fundamentado, o que não podemos deixar acontecer é o minimizar do homem: um ser que aprende, evolui, constrói coisas maravilhosas e, ainda mais importante: CRIA. Termino este post com uma palestra do Viktor Frankl em que ele diz basicamente isto: quando você espera o mediano do homem, você o faz um ser pior, quando nivela por cima, obtém o seu melhor. Mas ele fala isto melhor que eu. Segue o link: http://www.youtube.com/watch?v=fD1512_XJEw :)

PS: e em muito breve vocês terão uma arma secreta nova para brincar. Devo escrever a respeito nesta semana mesmo. Aguardem! :)

Top comments (0)