Você está na página 1de 18

Warren Talks

Technical Debts 101


Fundamentos Básicos
sobre Dívidas Técnicas

Corretora | Backend Versão


Felipe Machado 2023/05

warren.com.br
Software Developer:
- Meu PM não me deixa resolver as dívidas técnicas.
Product Manager:
- Dívida técnica? É de comer? Primeira vez que escuto sobre.
Tech Lead:
O principal objetivo - Dívida técnica? Achei que estávamos construindo o

desta talk é evitar que estado-da-arte.


Manager:
o seguinte diálogo - Dívida técnica? Não achei nenhuma cadastrada no backlog

vire realidade:
dos times.
Sales:
- Tenho uma meta de triplicar o número de clientes até o fim do
ano. Como assim não posso por causa de dívidas técnicas?
Designer:
- Ué, precisa de três semanas para alterar a cor dos botões?

Qualquer semelhança é mera coincidência.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


Objetivos dessa Talk

Technical Debts 101 | Warren Talks | 2023 warren.com.br


O que é?
É uma metáfora para demonstrar o impacto do acúmulo
de deficiências de um software e comunicar a
necessidade de reconstruções.

A dívida técnica é a ideia de que, para entregar o software


no prazo, devem ser feitas concessões, como adiar ou
atrasar certos aspectos da visão final.

É a luta diária dos programadores, desenvolver o


software perfeito e bem projetado, à prova de futuro e que
permitirá que melhorias e extensões futuras sejam
adicionadas sem muito retrabalho, ao mesmo tempo em
que entrega de acordo com o prazo ou sprint.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


DÍVIDA (e não débito 👀 ) debit = débito
debt = dívida

É uma analogia envolvendo juros.


Quanto mais tempo leva para atuar, mais caro fica.

É bem comum relacionar dívidas técnicas como ignorar as tarefas de uma cozinha.

https://medium.com/swlh/the-easiest-way-to-describe-tech-debt-44ff84a7cdb7

Technical Debts 101 | Warren Talks | 2023 warren.com.br


E porque elas acontecem?

Softwares “enferrujam”.
É inevitável. Semelhante a deixar o carro abandonado no quintal.

Aquela tela que abria quando existiam mil clientes agora com 100 mil não
abre mais, muito devido ao acúmulo de dados e queries pouco
otimizadas.

Novos casos de uso não foram adicionados da melhor forma, causando a


degradação da ideia original do software.
“Technical Debt is rust you can’t see”
A rotatividade de pessoas no time gerou perda de conhecimento.
Jim Highsmith,
Quem entrou no lugar tinha pouca experiência ou qualificação. Agile Pioneer & Co-author Agile Manifesto

Não é sinônimo de incompetência ou falta de capricho.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


E porque elas acontecem? E porque elas acontecem?

A causa raiz é a A causa raiz.


intangibilidade.
Softwares estão rodando desde no seu celular até no telescópio
James Webb. Eles não podem ser fisicamente vistos ou tocados.
É uma abstração.

Quando você escreve uma linha de código, ela não é um tijolo em


uma parede.

Software é intangível. É caro. Vender o custo do desenvolvimento


de software para gerentes e executivos já é bastante difícil. Vender o
custo da redução de “ferrugem” é muito mais difícil.

Infelizmente, no momento em que os problemas são reconhecidos


como graves, todas as soluções disponíveis são ruins.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


E porque elas acontecem?

Às vezes a dívida é
intencional.
Elas podem servir como uma alavanca estratégica para o sucesso.

Rapidez na entrega, ser o primeiro no mercado e constantemente


agregar valor ao produto são coisas que levam à vitória.

Pode fazer sentido acumular dívidas de tecnologia como uma


compensação para obter ainda mais sucesso no curto-prazo ou
conseguir oportunidades que mudam seu negócio de patamar.

O estágio de uma empresa ou produto importa muito nessa


decisão. Não adianta criar o software perfeito sem antes validar o
product-market-fit.

Technical Debts 101 | Warren Talks | 2023 warren.com.br https://www.reforge.com/blog/managing-tech-debt


E porque elas acontecem?

Alguns casos reais para relacionar.


No final de 2022, uma grande companhia aérea chamada Southwest passou Uma situação menor e mais fácil de se relacionar.
por problemas durante a semana de natal e ano novo. Funcionários Uma empresa construiu um software para clientes locais no Canadá. Foi um
estavam tão preocupados que pediam para priorizar melhorias do que por sucesso e após um tempo ela decidiu expandir seu alcance para o resto do
promoções. país, entretanto precisaria se adaptar para a província francesa.
Entretanto, o software não permitia trabalhar com múltiplos idiomas e ela
O problema ocorreu em um sistema interno utilizado para designar a não tinha muito tempo para resolver. Solução? if-then-else por tudo.
tripulação para seu respectivo vôo. Houve relatos de pilotos esperando no
telefone por até oito horas aguardando saber para onde deveriam ir. Em 26 Ela assumiu uma dívida técnica para resolver no curto-prazo e o objetivo foi
de dezembro, a companhia aérea iniciou uma "reinicialização" massiva do atingido com sucesso. Porém, um mês depois e antes de pagar essa dívida,
sistema, cancelando preventivamente milhares de voos e interrompendo a a empresa resolveu vender esse software para clientes no Japão,
venda de passagens por preocupações de que os viajantes pudessem imaginando que seria apenas uma semana de trabalho, dado que só levou
comprar passagens para voos que seriam posteriormente cancelados. isso para adaptar para o idioma francês.

Prejuízo entre USD 725 e 825 milhões. Onde erraram? Principalmente comunicação.
https://www.forbes.com/sites/suzannerowankelleher/2023/01/09/southwest-meltdown-cost-825-million/?sh=75392e0e466d https://www.informit.com/articles/article.aspx?p=2963464&seqNum=3

Technical Debts 101 | Warren Talks | 2023 warren.com.br


Não foi real o suficiente?

@deordines
chegando para
trabalhar no
processamento
de carteiras
uns tempos atrás.

“one of the challenges of software development is that you


can only make decisions based on the imperfect
information that you currently have to hand”
Martin Fowler

Technical Debts 101 | Warren Talks | 2023 warren.com.br


Impacto

Dívidas técnicas aumentam a complexidade do trabalho e


reduzem a velocidade do time.

Muitas vezes irão gerar rotinas operacionais, o que em um


curto período pode significar mais esforço em
sustentação do que de fato na evolução do produto.

Usando a analogia com cozinhas, é como se o prato que


você geralmente leva 5 minutos para fazer agora
levasse 20 à 30 minutos. Você fica a maior parte do
tempo procurando os ingredientes certos, lavando as
panelas sujas e ainda escorrega em um ovo no chão.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


Impacto
O impacto negativo do acúmulo de dívidas técnicas pode ir
muito além do código.

Artigos e pesquisas da área apontam uma relação forte


entre dívidas técnicas, estresse profissional e motivação,
contribuindo inclusive para turnover e afastando novos
profissionais.

O problema não é a dívida em si, mas a ignorância sobre e


em como lidar ou quando agir.

Essas dívidas irão afetar a evolução do produto, tornando


mais difícil dar respostas rápidas aos concorrentes. Isso
traz uma gama nova de consequências, o que pode mudar
drasticamente o futuro de uma empresa.

https://stepsize.com/blog/complete-guide-to-technical-debt
https://blog.codacy.com/true-impact-technical-debt/
Technical Debts 101 | Warren Talks | 2023 warren.com.br
Classificação

A metáfora foi criada com objetivo de auxiliar


profissionais da área na comunicação sobre os
problemas e riscos.

Embora exista uma discordância na comunidade


https://martinfowler.com/bliki/TechnicalDebt.html
científica sobre a definição exata de dívida técnica,
sobre quando um problema é de fato uma dívida ou
não, existem classificações criadas para auxiliar.

Entretanto, é senso comum que dívidas técnicas


concentram-se como itens invisíveis e pouco
palpáveis, e é por isso que trazer para um ponto de
vista econômico tende a auxiliar.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


Algumas dicas em como
lidar com dívidas
A responsabilidade pela comunicação pertence ao time de
engenharia. Aprenda a comunicar os tradeoffs das soluções e
consequências, para que melhores decisões sejam tomadas.

Garanta que elas estão sendo geridas em backlog e visíveis.


Ajude a priorizar (cost x value).

Aloque tempo em sprints para resolver alguns casos, diluindo o


peso do backlog.

Vincule dívidas mais complexas com iniciativas maiores ou criar


planos em como pagar.

Ajude a criar uma cultura com foco em qualidade, dando o


exemplo, não deixando para amanhã aquele teste de integração.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


A Regra do Bom Escoteiro
Trata-se de uma forma simples e eficaz de melhorar a
qualidade do seu código legado e mitigar dívidas técnicas.

Podemos seguir uma das regras dos escoteiros: sempre deixar


o campo por onde estamos passando mais limpo do que
quando o encontramos.

Não precisamos limpar todo o lixo do campo, apenas deixar o


campo um pouco mais limpo que antes.

Aproveite aquela horinha livre para resolver alguns code smells,


refatorações pendentes, como atualizar aquela biblioteca ou
colocar uma lógica na camada certa.

Outro tema relacionado com frequência é a teoria das janelas


quebradas.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


Concluindo
Dívida técnica não é assunto exclusivo para desenvolvedores.

Saber tomar decisões assertivas, como quando assumir ou


pagar uma dívida técnica, é skill estratégica/fundamental para
devs, lideranças, gestores ou executivos da área de tecnologia.
Saber comunicar ainda mais.

Siga as recomendações e boas práticas. Lidere através do


exemplo.

Durante a carreira, iremos perceber que é mais importante


saber dar manutenção ou modernizar soluções já existentes
do que criar novas. Estude sobre.

O tema está em constante evolução. Acompanhe artigos,


publicações e livros.

Technical Debts 101 | Warren Talks | 2023 warren.com.br


Technical Debts 101 | Warren Talks | 2023 warren.com.br
Referências
Disclaimer: Este é um compilado de inúmeros artigos e pesquisas, podendo
haver algum grau de divergência entre os autores.

Livro: Managing Technical Debt: Reducing Friction in Software Development


The Price of Shortcuts: Managing Technical Debt in Software Development
The Engineer’s Complete Guide to Technical Debt
Software ‘rust’ risk to shareholder value
The Cost of Shortcuts
Tech debt — what business leaders need to know
The Easiest Way to Describe Tech Debt
The true impact of technical debt
Technical debt will sink you

Tech Debt Isn't a Burden, It's a Strategic Lever for Success


Bottleneck #01: Tech Debt
A product manager’s perspective on technical debt

Technical Debts 101 | Warren Talks | 2023 warren.com.br

Você também pode gostar