Empiricamente, un software con metriche di complessità più elevate, come la complessità ciclomatica, è più difficile da mantenere. C'è una ricerca a sostegno di questo risale agli anni '70 ("Complessità del programma e produttività dei programmatori", ET Chen) . C'è anche un lavoro che suggerisce che densità di complessità, che è la complessità ciclomatica delle dimensioni del sistema, si riferisce anche ai tempi di manutenzione (" Densità della complessità ciclica e produttività della manutenzione del software ", GK Gill, CF Kemerer) , che è anche disponibile gratuitamente qui . Sfortunatamente, una sottoscrizione IEEE è necessaria per il lavoro di Chen, ma puoi provare a cercarlo su altre fonti se sei interessato.
Dal punto di vista della qualità, spesso vale la pena dedicare del tempo al refactoring, presupponendo di disporre di un framework di test per impedire l'introduzione di nuovi difetti. Ciò ti consentirà di implementare più facilmente nuove funzionalità nel tuo sistema, aggiungere ulteriori test e addestrare nuovi sviluppatori a lavorare.
In definitiva, tuttavia, c'è la pressione per fornire nuove funzionalità e valore aggiunto. È necessario bilanciare il refactoring con l'implementazione di nuove funzionalità e la riparazione dei difetti.