Gambiarras de Devs: Compartilhe a sua, eu começo!

Compartilhe uma história sobre uma gambiarra que você ou alguém que você conhece teve que fazer para resolver um problema insolúvel ou apenas por diversão. Eu começo...

Umas das histórias que mais gosto é a do programador anônimo que criou scripts para automatizar tarefas diárias. Esses scripts foram descobertos por seus colegas após sua saída e compartilhados no GitHub. Os scripts incluem desde desculpas para chegar tarde em casa até um que detectava se ele não estava logado no escritório às 8h45 e enviava um e-mail ao chefe dizendo que estava doente e trabalhando remotamente. Alguns dos scripts têm nomes engraçados e criativos, como aquele destinado a lidar com um cliente irritante. Além disso, o programador também criou um script para controlar a máquina de café do escritório compensando os 24 segundos que ele levava de sua mesa até ela. Se você está se sentindo sem motivação no trabalho hoje, talvez seja uma boa ideia ver se um dos scripts dele pode te ajudar. 😊

Esse caso que vc citou eu não considero gambiarra, e sim um sujeito que levou a automação ao extremo. Um pouco de automação no dia-a-dia não faz mal nenhum. Eu tenho alguns scripts para agilizar tarefas repetitivas, e não tem nada de gambiarra nisso, vejo mais como ganho de produtividade.

Pra mim, gambiarra é aquela solução mal feita, longe de ser a ideal, um remendo, algo tosco mas que dá a impressão de estar certa porque "funciona". Alguns exemplos:

Pedal de bicicleta improvisado como uma maçaneta


Cadeira para tapar buraco do sofá

Claro que todo mundo já fez (eu incluso), muitas vezes por falta de experiência, desconhecimento de uma solução melhor, ou a famosa falta de tempo (quanto mais curto o prazo, mais gambiarras aparecem). Mas ela deveria ser o último recurso: primeiro tente fazer direito e só se não der mesmo, recorra à gambiarra.


E só pra citar uma (e deixar claro que não me orgulho de nenhuma das que já fiz), uma vez eu estava apanhando do CSS para acertar um espaçamento, e (olha aí a clássica desculpa) como o prazo estava no fim, acabei colocando um monte de <br> e &nbsp;. Só pra me redimir: depois que a versão foi pro ar e ganhamos algum fôlego, consegui arrumar.

Algo curiso é que "Gambiarra" é algo totalmente brasileiro. No Inglês não existe nada parecido, tem o *workaround* e o *hack* e ambos são para nos gambiarras. Isso na minha opinião implica que existem gambiarras boas e ruims. Eu penso que a essência da gambiarra é encontrar soluções improvisadas para problemas, utilizando de meios que não foram originalmente projetados para tal finalidade. Muitas vezes, as gambiarras são necessárias, apenas por limitação de tempo. Neste caso, claro deveriam ser soluções temporarias e substituidas. No entanto, penso que em outros casos as gambiarras podem ser necessárias por outros motivos, como é caso do fast square root e do TypeScript e neste elas podem ser a solução mais elegante e não a mais tosca!
As gambiarras ocorrem por limitação de recursos, sejam eles quais forem. Além de tempo, pode ser dinheiro, de força (de mão de obra), de conhecimento, de comprometimento, etc. Em alguns casos é um múltiplo disso.
Pra mim, gambiarra sempre teve uma conotação negativa. É o remendo tosco, o chiclete no lugar da argamassa, o débito técnico que um dia volta pra cobrar a conta. O fast square root eu vejo como uma otimização esperta (e inusitada), mas longe de ser um remendo. E o TypeScript é uma solução elegante, que pra mim é o oposto de gambiarra. Mas reconheço que muitos têm uma visão mais próxima da sua, e chamam todos esses casos de gambiarra, separando entre as boas e as ruins.
Me parece que gambiarra é o *workaround*. *Hack* não é gambiarra, é algo positivo. Como é algo parecido com gambiarra, mas positivo, em português?
Entendo. Eu prefiro ver a gambiarra, por essa ótica genuinamente brasileira, um testamento a inventividade e criatividade do nosso povo. Indepedende do nome, soluções inusitadas com ferramentas improvisadas, quando aplicadas com inteligência são fascinantes. Devido as condições adversas, somos mestre nisso!
Uma vez quando estagiava, precisava configurar um ambiente numa distribuição Linux... No passo-a-passo que seguíamos tinha a expressão "dirty hack", acho que é a que chega mais perto da gambiarra que temos aqui.
Tenho uma lista de termos que quase se enquadram em gambiarras: quick fix, hack job, MacGyvering, make-do, rigging, bodge job, bodging, Jerry-rig, kludge