Considere a dívida técnica da sua organização

Enrolando e não fazendo: o famoso “lidar com sua roupa suja”. Você já deixou de lavar a roupa e viu aquela pilha de roupas sujas crescendo, apenas esperando que você lidasse com ela? Você está ocupado, você está cansado e continua dizendo que vai fazer amanhã. Então, de repente, você percebe que já se passaram três semanas e agora você está correndo freneticamente, atrasado para o trabalho porque não tem meias limpas! Isso é dívida técnica ou, como é mais conhecido: débito técnico. Essas pequenas coisas que você vai adiando e que podem crescer de um pequeno inconveniente para uma emergência total quando são ignoradas por tempo suficiente.

 

Formando pilhas

Quantas vezes você teve um alarme disparado ou um problema de cliente surgiu de algo que você já tinha conhecimento e pretendia corrigir, mas “não teve tempo”? Quantas vezes você já trabalhou em algo e pensou: “uau, isso seria muito mais fácil se eu apenas tivesse tempo para…”? Isso é dívida técnica. Mas voltando para você. Em sua correria para sair para o trabalho, você consegue encontrar duas meias velhas que não combinam. Uma delas tem um buraco. Você não tem tempo a perder com isso! Você as coloca e sai correndo porta afora, a caminho de resolver problemas de verdade. Ao longo do dia, esse buraco cresce e seu pé começa a doer. Você realmente não está no seu melhor dia. Em seu estado de pânico esta manhã, você conseguiu adicionar mais dor ao seu sistema já estressado, além de ainda ter que lavar suas roupas quando chegar em casa! Se ao menos você tivesse tido tempo alguns dias atrás…

 

Voltando para te atormentar

No mundo da tecnologia, onde um buraco aparentemente pequeno – uma pequena vulnerabilidade – pode derrubar todo o seu sistema, gerenciar débitos técnicos é fundamental. Para se ter sucesso, é necessário corrigir os problemas antes que se tornem situações emergentes. Se você está sempre correndo a toda velocidade para resolver o problema mais recente na produção, nunca ficará à frente da concorrência e ficará apenas mais para trás. É muito fácil entrar no padrão de deixar as pequenas coisas para outro dia. Crie otimizações, aquele teste de unidade aleatório que está faltando, aquele manual que você pretendia escrever após o último incidente – a dívida técnica também é um problema real! Ao gastar apenas um pouco de tempo por dia para organizar algumas coisas, você pode tornar seu sistema mais estável e fornecer uma experiência melhor para seus clientes e seus colegas desenvolvedores.

 

Fazendo a faxina

Imagine seu código como aquela montanha de roupa suja. Cada dia que passa, você adiciona um pouco mais a ele. Quanto mais em débito você ficar, mais difícil parecerá sua tarefa. Torna-se uma lenda. Você brinca sobre como não lidou com ele, mas na verdade você está ficando cada vez mais ansioso e cauteloso sobre como realmente lidar com ele e o que você encontrará quando fizer isso. Talvez se você adiar um pouco mais, um herói aparecerá e limpará para você! (A pessoa pode sonhar, certo?) Quanto mais dívidas você adicionar, mais tempo levará para quitá-las, e mais difícil será e maior será o risco de introduzir uma nova questão. 

Esse estresse e complexidade adicionais não parecem muito atraentes, então por que fazemos isso? Geralmente é causado por coisas como muitos trabalhos em andamento, prioridades conflitantes e (surpresa!) trabalho negligenciado. Gerenciar a dívida técnica requer apenas uma coisa importante – uma mudança cultural. Precisamos, na medida do possível, parar de criar débitos técnicos, caso contrário nunca conseguiremos mantê-los sob controle. Para isso, precisamos mudar nossa mentalidade. Precisamos dar um passo atrás e ter tempo para ver e tornar visível toda a dívida técnica em que estamos nos afogando. Então, podemos começar a desfazê-la.

 

Mudança de cultura

Minha equipe pegou uma página do “The Unicorn Project” (Kim, 2019) e começou a criar “debt days” enquanto recuperávamos o fôlego entre um projeto e outro. Cada pessoa escolheu um ponto problemático, algo que estava interessada em consertar, e começamos por aí. Dedicamos dois dias para remover débitos e saímos do outro lado concluindo tickets que estavam acumulados há mais de um ano. Também adicionamos novas métricas e painéis para melhor resposta a incidentes e ferramentas de desenvolvedor aprimoradas. Agora, a cada nova mudança de código, estamos atentos. Essa mudança introduz algum débito? Temos a capacidade de consertar isso agora? Nós encorajamos uns aos outros a corrigir os problemas à medida que os encontramos, seja na forma como nossas compilações funcionam, nossos processos de comunicação ou um bug no código. Precisamos nos dar tempo para respirar, tanto em nossas vidas pessoais quanto em nosso dia de trabalho. Fazer uma pausa entre as tarefas não só nos permite nos prepararmos mentalmente para a próxima, mas também nos dá tempo para aprender e refletir. É nessas pausas que podemos ver se criamos dívida técnica de qualquer forma e, potencialmente, tratamos de consertá-la imediatamente.

 

E o que vem depois?

A melhoria do trabalho diário, em última análise, permite que os desenvolvedores se concentrem no que é realmente importante, entregando valor. Isso permite que eles se movam mais rapidamente e tenham mais alegria em seu trabalho. Então, como você domina a sua montanha de roupa sem fim? Sua família opta por fazer uma mudança cultural e decide se dedicar a isso. Você declara o sábado como o dia da lavanderia! Reserve um tempo para lidar com os débitos técnicos – seus desenvolvedores, equipes de segurança e seus clientes vão lhe agradecer por isso.