Eu trabalho para uma empresa que está investigando exatamente isso. Abaixo estão três métricas acionáveis que recomendamos analisar ao lidar com dívidas técnicas. Para mais informações sobre "como" e "quando" para rastreá-los, reunimos um artigo de resumo 3 Métricas para Entender e Combater a Dívida Técnica .
Quais são seus pensamentos? Fico feliz em responder a quaisquer perguntas e com fome de ouvir o seu feedback :).
Propriedade para evitar defeitos e dívida tecnológica indesejada
A propriedade é um indicador importante da saúde da engenharia.
As partes da base de código que recebem contribuições de muitas pessoas acumulam lixo ao longo do tempo, enquanto as que recebem contribuições de menos pessoas tendem a estar em um estado melhor. É mais fácil manter altos padrões em um grupo restrito e bem informado sobre sua parte da base de código.
Isso fornece algum poder preditivo: partes fracas da base de código provavelmente acumularão dívidas ao longo do tempo e se tornarão cada vez mais difíceis de trabalhar. Em particular, é provável que a dívida seja assumida involuntariamente , simplesmente como efeito colateral de informações incompletas e propriedade diluída da qualidade do código.
Isso é um tanto análogo à tragédia dos bens comuns .
Coesão para melhorar a arquitetura
A coesão é um indicador final de componentes bem definidos.
A coesão e sua contraparte, o acoplamento, são há muito reconhecidas como conceitos importantes a serem focados ao projetar software.
Diz-se que o código tem alta coesão quando a maioria de seus elementos se une. A alta coesão é geralmente preferível porque está associada à capacidade de manutenção, reutilização e robustez. Coesão alta e acoplamento frouxo tendem a andar de mãos dadas.
Além de ser associada a um código mais reutilizável e sustentável, a alta coesão também minimiza o número de pessoas que precisam se envolver para modificar uma determinada parte da base de código que aumenta a produtividade.
Rotação para identificar áreas problemáticas
A rotatividade (atividade repetida) ajuda a identificar e classificar áreas prontas para refatoração em um sistema crescente.
À medida que os sistemas crescem, fica mais difícil para os desenvolvedores entender sua arquitetura. Se os desenvolvedores tiverem que modificar muitas partes da base de código para fornecer um novo recurso, será difícil para eles evitar a introdução de efeitos colaterais que causam bugs, e serão menos produtivos porque precisam se familiarizar com mais elementos e conceitos.
É por isso que é importante lutar pela responsabilidade única de criar um sistema mais estável e evitar consequências não intencionais. Enquanto alguns arquivos são hubs de arquitetura e permanecem ativos à medida que novos recursos são adicionados, é uma boa idéia escrever código de maneira a fechar os arquivos e revisar rigorosamente, testar e controlar as áreas de agitação de controle de qualidade.
O Churn apresenta esses arquivos ativos para que você possa decidir se eles devem ser divididos para reduzir a área de mudança da superfície da sua base de código.