3 pontos por GN⁺ 2024-10-01 | 1 comentários | Compartilhar no WhatsApp

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::string do C++ e a classe AString da 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

 
GN⁺ 2024-10-01
Comentários do Hacker News
  • Interfaces são um dos elementos mais importantes no design e devem ser consideradas com cuidado

    • Interfaces bonitas podem ser melhoradas facilmente com o tempo, mas o contrário é raro
  • A dívida do fundador é a dívida criada por fundadores para entregar tecnologia boa e rapidamente

    • Os documentos de fundação de muitos países também se encaixam nessa categoria
  • É surpreendente que este texto tenha sido escrito por um gerente de engenharia

    • Não há gerentes promovidos internamente, e há uma tendência de contratar de fora
  • É discutida uma classificação para dívida técnica

  • Excelente artigo do ponto de vista técnico

    • "nomenclatura" pode ser uma expressão mais adequada
    • Cada exemplo faz muito pensar
  • Usa-se "Contagion" para explicar dívida técnica

    • É uma ótima explicação
  • Dívida técnica é definida como código ou dados cujo custo precisará ser pago por desenvolvedores no futuro

    • Ao gerar dívida, é preciso considerar em equilíbrio a necessidade imediata e o custo futuro
    • Há uma aversão quase patológica à dívida
  • Eu não chamaria "dívida local" de dívida técnica em um contexto geral

    • Sempre haverá confusão em algum lugar, e encapsular isso é algo comum
  • Há experiência de trabalho em várias startups

    • Fundadores frequentemente confundem a ideia, o que foi de fato implementado e o que realmente funciona
  • Às vezes a dívida técnica é assumida intencionalmente por ganhos de curto prazo

    • Esse ganho também deve ser considerado como outro eixo