The Age of Software Intelligence
Architectural Software Intelligence: typical multi tier service oriented system

The Age of Software Intelligence

Con Software Intelligence si indica l’insieme di dati e le informazioni ai quali un’organizzazione deve attingere per prendere decisioni strategiche e amministrare i rischi relativi al parco software che supporta i propri processi di business. I danni derivanti da fermi in produzione e da perdite o furto di dati, possono arrivare a intaccare non solo il conto economico ma il patrimonio aziendale ed in alcuni casi mettere a rischio la sopravvivenza stessa dell’organizzazione, e questi rischi sono commisurati al livello di digitalizzazione raggiunto dai processi essenziali per il business. 

Un rischio particolare che ha un’importanza crescente è quello derivante dalla rigidità delle applicazioni e del parco applicativo: non potere evolvere le proprie applicazioni, in modo da erogare nuove funzionalità rapidamente, oppure in modo da poterle spostare su un determinato ambiente cloud in ottica di piattaforma, diventa un rischio difficilmente sostenibile e difficile da tollerare in un’epoca di trasformazione digitale accelerata e strumento competitivo.

Nonostante questa sia una considerazione apparentemente scontata, ancora troppe organizzazioni rinunciano a priori a cercare l’origine, effettuare la quantificazione e gestire anticipatamente questi rischi. Anzi, molte grandi e medie aziende, prendono decisioni di modernizzazione di interi sistemi, imbarcandosi in progetti da decine o anche centinaia di anni uomo, senza una visibilità adeguata dei rischi insiti nel software e del rapporto con approcci di modernizzazione con cui lo si vuole trasformare. 

I dati e le informazioni di riferimento per la software intelligence derivano da un’analisi profonda dei sistemi, al fine di ottenere informazioni sull’ architettura, sui punti deboli, sui rischi, sulla efficienza nella gestione delle risorse, sulla complessità, sulla scalabilità, sulla scalabilità nel cloud, sull’esposizione a rischi delle licenze open source e numerosi altri aspetti critici.

Questa intelligenza ha quindi diversi livelli di uso, per scopo e tipo di utenza, ma complessivamente trova la sua applicazione in maniera trasversale in quelle organizzazioni che abbiano compreso come la tecnologia sia sostanziale e non corollario per i processi di creazione del valore.

Quali sono i tipi di Software Intelligence: il campo della Software Intelligence può essere suddiviso in diversi ambiti a seconda degli scopi e degli utilizzatori che poi si intende fruiranno dei dati. Qui di seguito propongo una catalogazione che è più orientata ai macro ambiti di utilizzo, senza dettagliare i vantaggi per i specifici ruoli aziendali. Così possiamo parlare dei seguenti tipi di Software Intelligence:

Architectural Intelligence

Component Intelligence

Risk Intelligence

Portfolio Intelligence

Comparative Intelligence

Architectural intelligence: permette di visualizzare l’architettura di una applicazione multi-strato e multi-tecnology. Questo tipo di informazione è

typical architectural intelligence output

essenziale per potere imporre le policy architetturali e assicurare che la manutenzione evolutiva e/o correttiva non permetta la deriva architetturale che caratterizza negativamente il codice legacy e stratificato. Avere a disposizione la possibilità di esplorare e rilevare la struttura applicativa, offre la possibilità di verificare le interazioni tra i componenti, tra i layer, tra tecnologie: il risultato finale sarà quello di ridurre drasticamente i tempi di ricerca e “lettura” del codice durante le fasi di manutenzione e modifica, mostrando inoltre tutte le funzioni che accedono a determinati contenitori di dati, e supportando la compliance al regolamento di protezione dei dati (GDPR).

Component Intelligence: permette l’analisi del codice dei componenti col fine di assicurarsi che ciascuno di essi sia stato sviluppato seguendo buone pratiche

software composition Software Intelligence

di codifica. Nel caso in cui l’analisi sia erogata prima del rilascio del codice da parte dello sviluppatore all’interno di strumenti di sviluppo integrati (IDE), è possibile prevenire ed evitare la contaminazione dei successivi punti di analisi strutturale posti lungo il ciclo di sviluppo con il rumore di fondo delle carenze di stile o di igiene del codice. Quando applicata su scala sufficientemente larga l’analisi del codice permette di ottenere indicazioni statisticamente significative di caratteristiche quali la qualità dello sviluppo e la misura della portabilità sul cloud o la misura dell’agilità con cui l’applicazione potrà essere modernizzata. Questo livello di intelligence offre anche informazione sull’origine del codice e librerie, includendo licenze e vulnerabilità che determinati componenti open source possono introdurre nelle aziende. 

Risk intelligencepermette l’analisi e l’individuazione dei punti deboli delle applicazioni che le espongono a rischi operativi seri e comportano costi di

typical Risk Analysis for an application portfolio (colours show different level of security risk)

manutenzione crescenti. Alcuni di questi rischi possono emergere già a livello di Component Intelligence, ma quelli che comportano le conseguenze più serie, sono quelli che riguardano interazioni tra oggetti diversi, anche apparentemente non correlati, che possono essere individuati solo dopo la fase di integrazione. Se le evidenze riguardo ai potenziali rischi funzionali emergono dal testing comunemente inteso, è solo grazie all’ analisi statica e alle metodologie di Risk intelligence che i difetti a carattere non-funzionale, di natura strutturale possono essere individuati. Se non mitigati, possono essere all’origine di falle di sicurezza, degrado delle performance, corruzione dei dati e altri disastri sia nella conduzione operativa che nella gestione dei costi di manutenzione. Un’analisi completa a livello strutturale di una applicazione offre le misure aggregate sul suo stato di salute e sui rischi complessivi, in modo da valutare, indirizzare e concordare eventuali attività di mitigazione.

Portfolio Intelligence: eroga un ampio spettro di informazione a livello aggregato, per dare contezza dello stato di un determinato parco/portfolio applicativo. Questa

typical portfolio Software Intelligence output

informazione include il dettaglio dei linguaggi applicativi, le proporzioni dei componenti open source, ed altre caratteristiche di dettaglio. L’intelligenza a livello aggregato include altre informazioni come, ad esempio, quali siano (in assoluto e/o relativamente) le applicazioni più pronte per la migrazione al cloud, adatte per un percorso di modernizzazione, ed altri programmi di trasformazione che coinvolgano processi IT e di business. In una prospettiva temporale, questo permette di rilevare trend importanti tra applicazioni, supportando decisioni di allocazione degli investimenti e delle risorse.

Comparative Intelligence: utilizza dati di benchmark per confrontare le applicazioni con quelle di organizzazioni simili per dimensioni e settore

portfolio benchmarking applications'​ health

industriale. Questi dati possono includere dimensioni, aspetti tecnologici, quantificazione dei punti deboli e dei KPI relativi. Le informazioni permettono ai responsabili di capire la situazione competitive e aiutano le decisioni di investimento. La Comparative intelligence può anche essere utilizzata per analizzare i trend in modo da monitorare l’evoluzione della/delle applicazioni.

Disclaimer: Michele Slocovich è Solution Design Director per CAST Software per l'italia. Puoi seguirmi su linkedin

CAST Software è l'azienda che organizza il Software Intelligence Forum ed è leader nella Software Intelligence.

Riccardo Cinotti

Solution Delivery Consultant presso CAST

2 anni

Bell'articolo descritto in maniera semplice pur nella complessità dell'argomento. Assolutamente consigliato

Andrea Marco Borsetti

COO and Co-Founder at RedCarbon

3 anni

Bravo Miky, ottimo spunto..!

Chiaro e utile, da condividere con tanti cio

Stefano Balocchi

| Strategic Advisor for Operations | Senior Executive | Temporary Manager | Sales & Business Development Manager |

3 anni

Complimenti, molto interessante

Giuseppe Civale

Head of TLC & IT infrastructures presso Fondazione Milano Cortina 2026. MBA, C level, Digital Transformation Expert

3 anni

Bravo Michele è un vademecum che ci voleva.

Per visualizzare o aggiungere un commento, accedi

Altre pagine consultate