Armadilhas para desenvolvedores: a síndrome do contato alienígena
Tags: armadilhas, ptbr, braziliandevs
Published: 2021-06-21 13:45:26

---
title: Armadilhas para desenvolvedores: a síndrome do contato alienígena
published: true
description: Armadilhas para desenvolvedores: a síndrome do contato alienígena
tags: armadilhas, ptbr, braziliandevs
cover_image: https://i.guim.co.uk/img/media/0b7e84216890756e83d8157102a63fc8614eec6a/0_0_3504_2102/master/3504.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=6f2712fd0fad92b7f48a020fcc30ce01
---
_Texto escrito em 2012_

<a href="https://devkico.itexto.com.br/wp-content/uploads/2011/06/et___the_extra_terrestrial.jpg"><img class="size-full wp-image-954 alignright" style="margin: 5px;" title="et___the_extra_terrestrial" src="https://devkico.itexto.com.br/wp-content/uploads/2011/06/et___the_extra_terrestrial.jpg" alt="" width="284" height="159"></a>Nos últimos dias tenho pensado muito sobre os poucos casos que conheço nos quais o uso do Grails foi um fracasso. Nisto encontrei um elemento em comum que, acredito, pode ser aplicado à adoção de qualquer tecnologia. Chamo-o de <strong>síndrome do contato alienígena</strong>.
<h2>Analogia alienígena</h2>
Considero alienígena qualquer objeto com o qual me deparo e em um primeiro momento não encontro qualquer <a href="http://pt.wikipedia.org/wiki/Analogia">analogia </a>que me ajude a compreendê-lo melhor. Nestes momentos, é como se aquele ser não se parecesse com nada que conheço. É portanto alienígena!

Este contato alienígena me oferece algumas alternativas:
<ul>
 	<li><span style="color: #ff0000;">Fico parado observando o objeto (desespero)
</span></li>
 	<li><span style="color: #ff0000;">Inicio um processo de tentativa e erro manipulando o alienígena buscando algum comportamento que me pareça familiar (repare como&nbsp; parece uma autópsia) (desespero++)
</span></li>
 	<li>Busco mais informações sobre aquele elemento</li>
</ul>
As duas primeiras alternativas caracterizam a <strong>síndrome do contato alienígena</strong>, enquanto a terceira é a única via sensata que conheço. Há uma razão pela qual estou usando repetidas vezes a palavra <strong>analogia</strong>: esta é a base do aprendizado, que é o problema que estou tratando neste post.

<a href="http://pt.wikipedia.org/wiki/Douglas_Hofstadter"><img class="size-full wp-image-956" title="hofstadter-douglas" src="https://devkico.itexto.com.br/wp-content/uploads/2011/06/hofstadter-douglas1.gif" alt="" width="132" height="199"></a>

( sobre analogia e cognição, recomendo muito a vocês que assistam a <a href="http://www.youtube.com/watch?v=n8m7lFQ3njk">esta </a>palestra do<a href="http://pt.wikipedia.org/wiki/Douglas_Hofstadter"> Douglas Hofstadter</a>. )
<h2>Reproduzindo em escritório a síndrome do contato alienígena</h2>
Você precisará dos seguintes igredientes:
<ul>
 	<li>Um profissional mediocre ou desmotivado (qualquer um com preguiça de aprender, ao menos pra mim, está afogado na mediocridade)</li>
 	<li>Uma tecnologia com a qual este profissional não possua contato anterior</li>
 	<li>Ausência de introdução a esta tecnologia</li>
</ul>
É um cenário muito comum em fábricas de software. Como há forte pressão para que o lucro seja o maior possível, muitas vezes o contratado não é o melhor, mas sim o mais barato e que "dará conta do recado". Como em cima deste indivíduo é colocada a forte necessidade de que suas tarefas sejam entregues <strong>no prazo</strong>, este passa a ver seu trabalho não como algo do qual possa tirar proveito, mas sim como um <strong>problema desagradável</strong> que precisa ser resolvido rápido.

Como "agilidade" é tudo e nosso amigo medíocre não possui tempo ou motivação suficiente para pesquisar a respeito, o que lhe resta fazer? Resta buscar desesperadamente qualquer semelhança entre aquela tecnologia e <strong>qualquer outra</strong> com a qual já possua alguma experiência, por mais mínima que seja.
<h2>Um caso</h2>
<a href="https://devkico.itexto.com.br/wp-content/uploads/2010/02/grails_logo.png"><img class="alignleft size-full wp-image-604" style="margin: 5px;" title="grails_logo" src="https://devkico.itexto.com.br/wp-content/uploads/2010/02/grails_logo.png" alt="" width="163" height="43"></a>Um bom  exemplo deste comportamento está em uma frase que ouvi de um "profissional"  ao se deparar com Grails. Segue a pérola:
<blockquote><em>"Sabe, como não vou ficar muito tempo neste projeto, vou programar em Grails exatamente como faço em Java, pois é o que conheço"</em></blockquote>
Óbviamente, o fruto do "trabalho" deste indivíduo foi <strong>retrabalho</strong> para os que precisaram depois arrumar a casa. Na realidade, o único fruto foi esta frase, cuja autópsia vou iniciar agora.
<blockquote><em>(...) como não vou ficar muito tempo no projeto (...)</em></blockquote>
Chamo este trecho de "imbecil detector".  Não é necessário me aprofundar muito nesta <em>sub-pérola. </em>Fica nítido que o sujeito não possui comprometimento com a sua equipe ou com a qualidade do próprio trabalho.
<blockquote>(...) <em>vou programar em Grails exatamente como faço em Java, pois é o que conheço</em></blockquote>
Olha ai a síndrome explícita. Primeiro quando o sujeito diz <em>"vou programar em Grails"</em>, expõe a sua ignorância completa sobre o assunto. Não se programa <em>em Grails</em>, mas sim <em>em Groovy</em>, que é a linguagem na qual o framework se baseia.

Logo em seguida, a busca desesperada por uma analogia fácil: <em>"como faço em Java, pois é o que conheço"</em>. Neste caso, Groovy realmente é uma linguagem próxima do Java, <strong>mas</strong> <strong>não é </strong>Java. O resultado foi que Grails, apesar de ser o framework mais produtivo que conheço, neste caso foi um dos mais desastrosos que já vi.
<h2>Uma terapia</h2>
<h3>Faça uma introdução gentil à ferramenta</h3>
É errado enfiar tecnologia em um profissional que não a conhece (ei! seres humanos não possuem entrada pra cartuchos, sabia?). De fato: fazer isto é o mesmo que implorar pela mediocridade. O mais interessante é, em situações de contato alienígena, fornecer ao indivíduo um tempo (1 a 2 semanas) para que se adapte à tecnologia <strong>fora</strong> do ambiente de trabalho (de preferência, com algum material que possa ser usado como ponto de partida).

Por que <strong>fora</strong> do escritório? Para reduzir a pressão sobre o seu aprendizado. Nada pior que alguém o tempo inteiro lhe perguntando: "e ai? tá entendendo melhor agora?". Além disto, é também um modo interessante de se medir o interesse do indivíduo pelo seu trabalho.

Se passado o período, o sujeito continua completamente cru no assunto, então é sinal de que não vale a pena o investimento naquela pessoa.
<h3>Comprometa-se com a tecnologia</h3>
<a href="https://devkico.itexto.com.br/wp-content/uploads/2011/06/arriscar.jpg"><img class="alignright size-medium wp-image-958" title="arriscar" src="https://devkico.itexto.com.br/wp-content/uploads/2011/06/arriscar-225x300.jpg" alt="" width="225" height="300"></a>Se a ferramenta X te oferece um modo de trabalhar parecido com o de Y que você já conhece, trabalhar com X como se fosse Y é burrice.  A adoção de uma tecnologia envolve comprometimento.

Toda tecnologia envolve riscos, porém ter medo de usá-la plenamente é bobagem. Se você vai usar Grails ou Camel ou Erlang ou qualquer outra coisa no seu projeto, mergulhe de cabeça. Pense de acordo com o paradigma adotado pelo que você está usando, e não pelo que gostaria de usar.

Se mesmo assim você ainda estiver inseguro com relação à ferramenta adotada, acredito que auto crítica seja fundamental. Eu sempre me faço a seguinte pergunta:
<blockquote>Esta tecnologia foi desenvolvida por pessoas altamente capacitadas (muito provávelmente mais capacitadas que eu). Será que o problema está na ferramenta, comigo ou no fato de não ser a opção certa para o meu projeto?</blockquote>
Se acreditar que não é a escolha certa para o seu projeto, e esta não foi uma decisão sua, neste caso, o ideal é procurar o responsável por esta decisão. Normalmente (se esta pessoa não for debilóide) há uma excelente razão para que esta escolha tenha sido tomada.
<h2>Concluindo</h2>
<a href="https://devkico.itexto.com.br/wp-content/uploads/2011/06/grey-alien.gif"><img class="alignleft size-full wp-image-960" style="margin: 10px;" title="grey-alien" src="https://devkico.itexto.com.br/wp-content/uploads/2011/06/grey-alien.gif" alt="" width="113" height="130"></a>Vejo duas causas possíveis para este "contato alienígena".
<ul>
 	<li><strong>Gerência mediocre:</strong> quando não são dadas ao indivíduo as condições necessárias para que este se adapte (e quem sabe, até venha a gostar) da tecnologia.</li>
 	<li><strong>Profissional medíocre:</strong> quando o sujeito sequer pensa em pesquisar a respeito do assunto e já de cara inicia um processo de tentativa e erro buscando alguma forma barata de extrair suco de pedras</li>
</ul>
Resumindo: se não houver o esforço para que o aprendizado ocorra, sua realidade não será terrena jamais! :)

PS: normalmente a mediocridade é o resultado de você estar fora do seu lugar