Change Management e l’approccio strutturato al ciclo di vita dello sviluppo software”
Stefania Renna, EMBA - Advisory and Customer Success Director CAST ITALIA
Nonostante molti lo ritengano un modello obsoleto, la rappresentazione del ciclo di vita del software (SDLC - Software Development Life Cycle) rimane ancora oggi una valida esemplificazione di quali siano le fasi comunemente attraversate durante lo sviluppo e la gestione di un software (che sia esso realizzato in-house o in outsourcing).
Il ciclo prevede l’esecuzione di una precisa sequenza di fasi, ciascuna delle quali utilizza l’output della precedente come input della successiva creando una
"catena del valore che consente alle organizzazioni di reagire al mutare della domanda da parte delle loro parti interessate nei modi più efficaci ed efficienti” (cfr. ITIL v4).
Il modello SDLC rimane valido indipendentemente che il prodotto sia realizzato utilizzando la metodologia Waterfall o Agile; le fasi potranno essere reiterate, automatizzate, i prodotti potranno essere completi o parziali, derivanti da attività di manutenzione o di evoluzione, ... ciò che resta sempre valida è comunque la sequenza logica delle attività che ne guida lo sviluppo.
Le varie fasi del modello hanno una funzione specifica, ciò che viene quindi prodotto per ciascuna di esse è frutto di un insieme ben integrato e orchestrato di strumenti che – ciascuno con le proprie peculiarità – interagiscono per produrre output ben definiti.
Inoltre, l’evoluzione tecnologica porta a dover frequentemente valutare se tali strumenti sono validi e ben orchestrati all’interno dell’SDLC. Ciò implica una continua attività di change management che deve esser considerata come una costante operativa e non come un mero contributo estemporaneo.
Introdurre CAST implica quindi, indissolubilmente, la realizzazione di attività di “gestione dei cambiamenti” (change management), in quanto l’implementazione e il conseguente utilizzo di CAST (consumption) attraversa vari stadi della catena generata dal Ciclo di Vita del Software, realizzando diversi casi d’uso e coinvolgendo più strutture di una organizzazione, a livello Strategico, Tattico e Operativo.
La Strategia:
Raccolta dei requisiti e Analisi delle caratteristiche
Le due fasi iniziali del ciclo di vita sono comunemente associate alla Raccolta dei requisiti e all’Analisi delle caratterisitche per l’individuazione dei possibili risultati (Studio di fattibilità). Le informazioni che è necessario raccogliere durante queste fasi provengono da vari interlocutori che possono dipendere da diverse aree aziendali quali: il business, l’amministrazione finanziaria e le strutture tecnologiche; lo scopo è quindi quello di identificare una necessità, una “domanda”, e valutare tutti gli aspetti della soluzione tecnologia che la soddisfa.
Utilizzare CAST in questo ambito strategico serve per alimentare lo studio e l’analisi con informazioni che derivano dall’architettura applicativa in essere e dalle sue componenti applicative, realizzando un modello What-if che, partendo da informazioni puntuali, permette l’individuazione di diversi scenari e opportunità di sviluppo.
Che l’obiettivo sia un piano di migrazione al Cloud o un progetto di Sostenibilità energetica, la necessità di fornire supporto all’esercizio, l’automazione del processo di certificazione del software nel proprio ciclo CI/CD
o l’esigenza di gestire gli sviluppi applicativi provenienti da fornitori esterni, l’utilizzo di CAST HL e CAST Imaging fornisce informazioni e dati, basati su standard e normative, che permettono una reale previsione di quali possono essere gli impatti futuri e gli scenari possibili.
Consigliati da LinkedIn
La Tattica:
Disegno e Sviluppo
Una volta definito l’obiettivo, il ciclo di vita prevedere la realizzazione del Disegno e il conseguente Sviluppo delle componenti applicative che saranno parte della soluzione. Queste attività appartengono all’ambito Tattico: CAST è quindi fondamentale nel fornire - oltre alla mappatura delle relazioni di tutti gli elementi all'interno dell'applicazione - indicazioni sulle relazioni App-to-App, sui blocker, booster ed effort in caso di migrazione al Cloud, su rischi di sicurezza e rischi IP per l'open source, indirizzando la definizione di una roadmap veloce ed efficace.
La fase di Disegno definisce quindi il piano delle attività da implementare, tale implementazione avverrà nella fase di Sviluppo in cui gli stumenti CAST permettono una navigazione dell’infrastruttura sempre più autonoma, approfondita, certificata (secondo la ISO 5055) e di dettaglio, utile agli sviluppatori, agli architetti, ai responsabili dell’esercizio per poter misurare la qualità, la sicurezza e i rischi operativi associati alle applicazioni realizzate.
L'Operatività:
Test e Deployment
Le ultime due fasi del ciclo di vita di sviluppo del software sono dedicate alle attività di tipo prettamente Operativo; è qui che CAST può essere prevalentemente utilizzato per il collaudo e la certificazione del software, fornendo informazioni e dati puntuali sui rischi di qualità e sicurezza, sulla misura automatica del codice in termini di FP, sulle violazioni presenti nel codice (sia sviluppato ad-hoc che Open Source) e sulla sostenibilità dello stesso. Tali informazioni sono utili per realizzare un’azione non solo reattiva, ma sopratutto preventiva nei confronti di ciò che andrà ad essere rilasciato in Esercizio.
Un ruolo importante viene giocato dalla possibilità di automatizzare ed integrare le componenti CAST che forniscono queste informazioni, dando vita ad una ricca attività di change management che coinvolge non solo le aree tecniche di sviluppo, ma anche tutti coloro che operano nella gestione e nell’analisi decisionale pre-Esercizio.
Maintenance
Ciò che avviene nella fase di Maintenance è fondamentalemente il lavoro giornaliero di esercizio dei servizi applicativi.
CAST viene qui impiegato nelle attività di Advisor, di supporto all’Esercizio e di supporto alla definizione e misura degli SLA (Service Level Agreement) relativi alla qualità/sicurezza applicativa.
L’ottica è quella di estendere un eventuale CMDB (Configuration Management Database) attraverso la definizione di Configuration Items (CI) relativi alle informazioni provenienti dalla mappatura applicativa fornita da CAST per poter alimentare le attività di analisi e risoluzione di eventuali Incidenti o Problemi; inoltre, in ambito SLA management, è possibile definire degli indicatori che misurino il livello di qualità/sicurezza/sostenibilità del codice che aiutino l’azienda a raggiungere obiettivi di compliance e standard, con l’eventuale coinvolgimento di fornitori esterni.
Supponendo quindi di “srotolare” un generico ciclo di vita del software, potremmo disegnare una rappresentazione di quali sono le attività che CAST eroga durante il percorso che va dalla raccolta e definizione dei requisiti fino alla gestione quotidiana delle applicazioni, come nella seguente figura.
L’implementazione di tutto ciò, come indicato in premessa, si realizza attraverso un’attività costante di Advisory e Customer Success che implementa a tutto tondo i cambiamenti e coordina le varie aree coinvolte nel ciclo di vita.