O mito de Sísifo no desenvolvimento de software
Oriundo da mitologia grega, a história de Sísifo foi recontada em um ensaio do filósofo Albert Camus, em 1942. Sísifo era considerado o mais astuto dos mortais, contudo, por enganar os deuses foi castigado a realizar, por toda a eternidade, uma tarefa repetitiva e sem sentido. Ele foi condenado a rolar uma grande pedra de mármore com suas mãos até o cume de uma montanha, sendo que toda vez que ele estava quase alcançando o topo, a pedra rolava novamente montanha abaixo até o ponto de partida por meio de uma força irresistível.
No ensaio de Camus, ele utiliza o Mito de Sísifo para elaborar uma metáfora sobre a vida moderna. Veja, nas palavras de Camus, o resultado (que considerou fazer parte de um absurdo do homem): “O operário de hoje trabalha todos os dias em sua vida, faz as mesmas tarefas. Esse destino não é menos absurdo, mas é trágico quando em apenas nos raros momentos ele se torna consciente”.
Voltemos aos dias atuais, distantes e supostamente menos sofridos que os tempos descritos no Mito de Sísifo. Imaginando o dia a dia prático de um profissional de TI. Quais responsabilidades e obrigações são inerentes ao trabalho entregue no final de um projeto por um desenvolvedor? Quanto custa para a empresa um software que não segue as orientações de boas práticas de desenvolvimento? Qual a dificuldade que outros desenvolvedores terão em manter um sistema escrito às pressas, sem testes e com vários bugs? Será, que quando escrevemos nosso código, temos em mente essas questões todas? Ou melhor, será que nos importamos com elas, de verdade? Uma boa analogia, quando pensamos nessas dúvidas, é imaginar todos os problemas decorrentes de negligência como dívidas técnicas.
Uma dívida técnica (do inglês, “Technical Debt”) muitas vezes traduzida para Débito Técnico, é uma metáfora criada por Ward Cunningham para descrever uma situação onde o time decide optar por uma maneira mais rápida e menos correta de se criar um software ou um pedaço de um algoritmo para que ele possa ser entregue mais cedo. Normalmente os motivos são: pressão do cliente, tempo escasso, falta de capital, falta de conhecimento, pouca experiência entre outros. Estas dívidas, assim como as dos bancos, possuem juros, isso que significa que se não forem pagas logo, podem se acumular e causar grandes transtornos em longo prazo. E o mais interessante, é que muitas vezes reclamamos de nosso trabalho, achando-o repetitivo e sem sentido, mas não nos damos conta de que temos uma boa parcela de culpa. Criamos os meios para que a dificuldade experimentada no cotidiano seja alimentada permanentemente. Como Sísifo, tentamos remendar o sistema, adiar ao máximo a escrita de testes, nos esforçar para que “um trabalho” (sem objetivo claro) seja realizado em prol do software, para no final, tudo parecer retornar à estaca zero.
Se você, leitor, está dando os primeiros passos como desenvolvedor, atente-se para uma grande notícia: Tens todas as ferramentas necessárias para trilhar um caminho completamente diferente. Como? Darei algumas dicas a seguir:
- Procure participar ativamente de comunidades de desenvolvedores que tenham a ver com as tecnologias que você deseja estudar. Isso lhe trará não só o benefício de trocar boas experiências na prática de desenvolvimento de software como também, e talvez mais importante, observar quais são os erros mais comuns e quais as soluções dadas. O importante, claro, é sempre manter um olhar crítico sobre tudo que você apreende de uma comunidade, aprendendo gradativamente a separar o bom do mau conteúdo.
• Existem inúmeros livros que tratam sobre boas práticas de desenvolvimento de software. É importante tentar extrair de desenvolvedores mais experientes quais livros eles leem para aprimorar suas técnicas. Isso não é difícil, bastando em muitos dos casos navegar pelos blogs técnicos existentes.
• Participar de grupos de estudo, como por exemplo, no formato “Coding Dojo” certamente será muito enriquecedor para ampliar as técnicas de programação. Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se descontraírem, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.
Termino aqui, esperando que o Mito de Sísifo tenha lhe despertado o interesse pela busca incessante pela excelência que nós, desenvolvedores de software, devemos objetivar cada vez que repousamos nossas mãos em cima do teclado. Codifique sempre de forma limpa, evite criar “pedras” que serão carregadas repetidamente em um trabalho sem sentido.
14 reactions to this post (archive)