Risolvere il debito tecnico
Nel modo più efficace possibile

Cos'è il debito tecnico

Il costo implicito di futuri interventi di revisione quando una soluzione privilegia la velocità rispetto alla progettazione a lungo termine.

Wikipedia

Come si manifesta

  • Problemi di resilienza, efficienza e sicurezza del codice
  • Rischi IP, sicurezza e obsolescenza nei componenti OSS
  • Uso non ottimale del cloud
  • Deviazioni dall'architettura di progettazione
  • Scarsa documentazione tecnica
  • Tempi infiniti per apportare modifiche alle applicazioni

Debito buono vs debito cattivo

Debito Buono

Il debito è stato contratto per promuovere l'innovazione senza incidere significativamente sul business

Debito cattivo

Ostacola le prestazioni aziendali, l'agilità, la sicurezza e la resilienza

La chiave del successo é trovare i pochi pezzi di codice che hanno il maggiore impatto negativo sul business.

Mappatura del panorama software

Selezione delle applicazioni

  • Mappa le applicazioni in base alla densità del debito tecnico rispetto alla criticità per il business
  • Concentrati sulle applicazioni critiche con un'alta densità di debito tecnico
  • Considera anche le applicazioni critiche e di grandi dimensioni con bassa densità di debito tecnico
  • In questo esempio reale, l'ambito è stato ridotto da 50 MLOC a 12 MLOC
Vistad'insieme di un portfolio di 300 applicazioni custom, generato da CAST Highlight

Vistad'insieme di un portfolio di 300 applicazioni custom, generato da CAST Highlight

CAST Highlight

CAST Highlight

Vedi il quadro generale

  • Scansione dei repository del codice sorgente
  • Analisi di tutte le applicazioni per
    • Densità del debito tecnico
    • Cloud maturity
    • Rischi OSS: IP, sicurezza, obsolescenza
  • Mappatura dei risultati empirici rispetto ai dati soggettivi, ad es. criticità
  • Raccomandazioni sul percorso migliore da intraprendere

Scegliere i target all'interno delle applicazioni selezionate

L'8% dei difetti causa il 90% dei principali problemi di affidabilità, sicurezza ed efficienza in produzione.'

Dr. Richard Soley, MIT Fellow

CISQ-OMG

'Regole ingegneristiche per trovare i difetti più critici [l'8%] valutando le strutture del software ispetto al contesto'

L'ISO 5055

ISO/IEC 5055

Ai tradizionali analizzatori sintattici sfugge il contesto

Cattivo può essere buono

Eseguire una scansione della tabella invece di utilizzare un indice influisce sulle prestazioni. Ma fa poca differenza per una tabella di riferimento con poche voci.

Eseguire una scansione della tabella

Buono può essere cattivo

Uno scenario reale in cui un'unità di codice apparentemente perfetta può comunque compromettere le prestazioni del sistema.

Indirect remote database call inside a loop

È necessaria l'analisi semantica

Individuare quell'8%

  • Coinvolge decine di migliaia di unità di codice e le loro numerose interazioni
  • Richiede l'esame del significato di ogni unità nel contesto di tutte le interazioni tra tutti i livelli tecnologici
  • Il modo più rapido è utilizzare tecnologie di analisi semantica, come CAST o Coverity per il codice C++
Mappa interna di un'applicazione di medie dimensioni con 300.000 LoC e 41.000 unità di codice. CAST Imaging

Mappa interna di un'applicazione di medie dimensioni con 300.000 LoC e 41.000 unità di codice. CAST Imaging

CAST Imaging

CAST Imaging

Guarda all'interno delle applicazioni

  • Acquisisce il codice sorgente e gli script dei dati
  • Analizza la semantica di tutte le unità
  • Genera mappe dettagliate con:
    • Architettura interna
    • Principali difetti strutturali +
    • Conformità alla ISO 5055 ++
    • Deviazioni dalle regole architetturali
  • Fornisce raccomandazioni e spiegazioni nel linguaggio naturale

Cosa si può fare di più

Utilizzare GenAI per correggere i problemi

  • CAST crea grafici di chiamata deterministici a una velocità di 40 KLOC al minuto
  • Fornisce grafici di chiamata generati per il prompt engineering degli strumenti GenAI
  • La GenAI genera codice corretto, minimizzando i rischi per il sistema
  • I prototipi in diverse aziende automatizzano fino al 20-30% delle attività di remediation
  • Gli esperti sono ancora necessari per problemi complessi o cambiamenti estesi, come il refactoring
Semi-autonomous code transformation

Prevenire il problema

Applicare l'approccio dell'8% in modo proattivo

  • Implementa un Risk Gate strutturale che esamini l'intera applicazione prima che le modifiche vengano inviate in produzione
  • Concentrati sull'8% dei difetti che hanno maggiore importanza
  • CAST Gatekeeper è stato costruito appositamente per questo scopo
    • Analizza la semantica
    • Segue le regole ISO 5055
    • Fornisce percorsi di remediation
    • Si integra con i sistemi di tracciamento dei problemi (ITS)
  • Disponibile stand-alone o come estensione di CAST Imaging
Action plan per la correzione dei difetti strutturali con CAST Gatekeeper

Action plan per la correzione dei difetti strutturali con CAST Gatekeeper