Taxonomia da dívida técnica (2018)
(technology.riotgames.com)Taxonomia da dívida técnica
Introdução
- Bill "LtRandolph" Clark é gerente de engenharia da equipe de Champions de LoL e tem grande interesse em dívida técnica.
- Dívida técnica é definida como código ou dados que geram custo para desenvolvedores no futuro.
- Este texto apresenta os vários tipos de dívida técnica observados na Riot e o modelo usado internamente.
Métricas
Para avaliar a dívida técnica, são usados três eixos principais: impacto, custo de correção e contagiosidade.
Impacto
- O impacto que a dívida técnica causa em jogadores e desenvolvedores.
- Bugs, funcionalidades ausentes, comportamento inesperado etc.
Custo de correção
- O tempo e o risco necessários para corrigir a dívida técnica.
- Erros simples podem ser corrigidos em poucos minutos, mas problemas profundamente enraizados podem levar semanas ou meses.
Contagiosidade
- O quanto a dívida técnica pode se espalhar.
- Afeta a interação com outros sistemas, a cópia de dados e a implementação de novos recursos.
Tipos de dívida
Dívida local
- O problema ocorre apenas dentro do sistema e não afeta o exterior.
- Exemplo: Cataclysm do Jarvan.
Métricas de Cataclysm
- Impacto: 1 / 5
- Custo de correção: 2 / 5
- Contagiosidade: 1 / 5
Dívida MacGyver
- Quando dois sistemas conflitantes são acoplados por meio de uma solução improvisada.
- Exemplo:
std::stringdo C++ e a classeAStringda Riot.
Métricas de std::string vs AString
- Impacto: 2 / 5
- Custo de correção: 3 / 5
- Contagiosidade: -2 / 5
Dívida fundamental
- Quando uma suposição enraizada nas profundezas do sistema afeta o sistema inteiro.
- Exemplo: uso da linguagem de script lua em LoL.
Métricas de BlockBuilder Lua
- Impacto: 4 / 5
- Custo de correção: 4 / 5
- Contagiosidade: 4 / 5
Dívida de dados
- Quando muito conteúdo se acumula sobre outros tipos de dívida técnica, tornando a correção difícil e arriscada.
- Exemplo: bug no nome de parâmetro da linguagem de script BlockBuilder.
Métricas do bug no nome de parâmetro
- Impacto: 2 / 5
- Custo de correção: 2 / 5
- Contagiosidade: 4 / 5
Resumo
- Ao avaliar dívida técnica, é preciso considerar impacto, custo de correção e contagiosidade.
- A contagiosidade indica a possibilidade de a dívida técnica se espalhar, e ignorá-la pode se tornar um grande problema.
- A dívida técnica pode ser classificada em quatro tipos: dívida local, dívida MacGyver, dívida fundamental e dívida de dados.
Resumo do GN⁺
- Este texto ajuda desenvolvedores a tomar decisões melhores ao explicar os tipos de dívida técnica e como avaliá-los.
- Ao enfatizar a contagiosidade da dívida técnica, reforça a importância de resolver o problema cedo.
- Outros projetos com funcionalidades semelhantes incluem Dota 2 e Overwatch.
1 comentários
Comentários do Hacker News
Interfaces são um dos elementos mais importantes no design e devem ser consideradas com cuidado
A dívida do fundador é a dívida criada por fundadores para entregar tecnologia boa e rapidamente
É surpreendente que este texto tenha sido escrito por um gerente de engenharia
É discutida uma classificação para dívida técnica
Excelente artigo do ponto de vista técnico
Usa-se "Contagion" para explicar dívida técnica
Dívida técnica é definida como código ou dados cujo custo precisará ser pago por desenvolvedores no futuro
Eu não chamaria "dívida local" de dívida técnica em um contexto geral
Há experiência de trabalho em várias startups
Às vezes a dívida técnica é assumida intencionalmente por ganhos de curto prazo