Lavoro per un'azienda che sta esaminando esattamente questo. Di seguito sono riportati 3 parametri attuabili che consigliamo di esaminare quando si affronta il debito tecnico. Per ulteriori informazioni su "come" e "quando" per seguirli, abbiamo messo insieme un articolo di sintesi 3 Metriche per capire e affrontare il debito tecnico .
Quali sono i tuoi pensieri? Felice di rispondere a qualsiasi domanda e affamato di sentire il tuo feedback :).
Proprietà per prevenire difetti e indebitamento tecnologico indesiderato
La proprietà è un indicatore principale della salute dell'ingegneria.
Le parti della base di codice che ricevono contributi da molte persone si accumulano nel tempo, mentre quelle che ricevono contributi da un minor numero di persone tendono ad essere in uno stato migliore. È più facile mantenere standard elevati in un gruppo ristretto che è ben informato sulla loro parte della base di codice.
Ciò fornisce un certo potere predittivo: è probabile che parti della base di codice debolmente accumulate accumulino debito nel tempo e diventino sempre più difficili da lavorare. In particolare, è probabile che il debito venga assunto involontariamente , semplicemente come un effetto collaterale di informazioni incomplete e di proprietà diluita della qualità del codice.
Questo è in qualche modo analogo alla tragedia dei beni comuni .
Coesione per migliorare l'architettura
La coesione è un indicatore finale di componenti ben definiti.
La coesione e la sua controparte, l'accoppiamento, sono state a lungo riconosciute come concetti importanti su cui concentrarsi nella progettazione del software.
Si dice che il codice abbia un'alta coesione quando la maggior parte dei suoi elementi appartiene insieme. L'alta coesione è generalmente preferibile perché associata a manutenibilità, riusabilità e robustezza. Alta coesione e accoppiamento lento tendono ad andare di pari passo.
Oltre ad essere associato a codice più riutilizzabile e mantenibile, l'elevata coesione riduce anche il numero di persone che devono essere coinvolte per modificare una determinata parte della base di codice che aumenta la produttività.
Churn per identificare le aree problematiche
Churn (attività ripetuta) aiuta a identificare e classificare le aree mature per il refactoring in un sistema in crescita.
Man mano che i sistemi crescono, diventa più difficile per gli sviluppatori comprendere la loro architettura. Se gli sviluppatori devono modificare molte parti della base di codice per fornire una nuova funzionalità, sarà difficile per loro evitare di introdurre effetti collaterali che portano a bug e saranno meno produttivi perché devono familiarizzare con più elementi e concetti.
Questo è il motivo per cui è importante lottare per una singola responsabilità per creare un sistema più stabile ed evitare conseguenze indesiderate. Mentre alcuni file sono hub architetturali e rimangono attivi quando vengono aggiunte nuove funzionalità, è una buona idea scrivere codice in modo da chiudere i file e rivedere, testare e testare rigorosamente le aree di sfocatura del QA.
Abbandona questi file attivi in modo da poter decidere se devono essere suddivisi per ridurre l'area di modifica della base di codice.