La nuova ISO 9001 e le aziende di sviluppo software Giovanni A. Cignoni, Dip. di Informatica, Univ. di Pisa Davide Morano, SIAS - Gruppo KataWeb Ottobre 2000 Sommario L impostazione della nuova ISO 9001, la cui pubblicazione è prevista per la fine dell anno, sottolinea due aspetti di organizzazione e gestione aziendale: la visione per processi e il miglioramento continuo. Temi che, per le aziende che producono software, sono già stati affrontati in norme o proposte di norme internazionali: ISO/IC 12207 e ISO/IC TR 15504. L articolo discute queste norme nel contesto dei nuovi requisiti della ISO 9001. 1. Introduzione In uropa, la certificazione ISO 9001 ha incontrato e continua a incontrare un discreto successo presso le aziende che sviluppano software e offrono servizi connessi. Solo in Italia, le aziende certificate appartenenti a questo settore sono 723 su un totale di 9589 (dati Sincert aggiornati ad agosto 2000 [01]). La ISO 9001 [02] è una norma generale che definisce i requisiti del sistema qualità indipendentemente dal settore industriale in cui l azienda opera. Per coprire le particolari caratteristiche della produzione di software, ISO ha pubblicato una guida, identificata come ISO 9000-3 [03], da usarsi come riferimento per l applicazione della 9001 allo sviluppo, all installazione e alla manutenzione del software. La prima edizione della 9000-3 è del 1991 e fa riferimento alla 9001:1987; la versione più recente è del 1997 ed è stata recepita in Italia nel 1998. In questa versione, la guida riprende punto per punto la struttura della 9001:1994, riportandone il testo e commentandolo ai fini della produzione software. Nella nuova edizione della 9001, attesa per la fine di quest anno, l impostazione della norma cambierà radicalmente, sia rispetto alla struttura generale dell insieme delle norme per esempio la 9001, la 9002 e la 9003 saranno unificate nella sola 9001:2000 sia per gli obiettivi e i requisiti del sistema qualità. In questo articolo approfondiamo, con riferimento alle aziende che sviluppano software, due aspetti fondamentali della nuova edizione della norma: la visione per processi e il miglioramento continuo. Senza volersi sostituire alla futura 9000-3, l articolo presenta nel contesto della nuova 9001 le norme di organizzazione aziendale e miglioramento continuo già esistenti e specificatamente dedicate a chi produce software: ISO/IC 12207 [04] e soprattutto ISO/IC TR 15504 [05]. Seguendo l impostazione della 9001:2000, visione per processi e miglioramento continuo sono introdotti come i concetti base per la realizzazione di un sistema qualità orientato alla soddisfazione del cliente. Quindi la visione per processi è discussa facendo riferimento alle norme che definiscono le attività legate alla produzione del software. Infine, è presentato il più recente modello di valutazione e miglioramento dei processi legati alla produzione e gestione del software. 1/8
Direzione S O D D I S F A Z I C L I N T Gestione delle risorse Misurazione, analisi miglioramento C L I N T O N requisiti Produzione prodotto Fig. 1: il modello di organizzazione e gestione aziendale della 9001:2000 2. La nuova impostazione della norma Sulla base del Draft International Standard della ISO 9001 [06], l obiettivo principale di un sistema qualità è la soddisfazione del cliente, da raggiungere attraverso un organizzazione aziendale che permette il miglioramento continuo dei processi aziendali. In figura 1 è rappresentato il modello a cui la norma si ispira e che identifica le quattro aree di processi aziendali che caratterizzano la nuova organizzazione della norma non esistono più i classici 20 punti della ISO 9001. I processi di produzione hanno in ingresso i requisiti del committente, a cui devono attenersi; inoltre, i processi di produzione devono poter contare su una corretta gestione delle risorse per realizzare prodotti conformi ai requisiti e ottenere così la soddisfazione del cliente. I risultati, misurati, della produzione e della soddisfazione del cliente sono necessari per indirizzare la direzione aziendale sia per la definizione di nuovi requisiti per il prodotto che per individuare più efficienti politiche di gestione delle risorse. Per realizzare un sistema qualità che recepisce il modello proposto dalla norma, la visione per processi e il miglioramento continuo sono gli strumenti concettuali necessari: i processi aziendali che appartengono alle aree identificate dal modello devono essere sistematicamente definiti; le prestazioni dei processi e il grado di soddisfazione del cliente devono essere costantemente misurati per identificare le possibili azioni di miglioramento. La definizione dei processi costituisce la base necessaria per misurare le prestazioni aziendali; i risultati delle misurazioni sono il principale strumento decisionale per la direzione. Gestire la qualità significa, in pratica, mantenere attivo questo modello. 3. La visione per processi nella produzione di software La nuova ISO 9004 [07], la cui pubblicazione aggiornata sarà contemporanea a quella della ISO 9001:2000, è un approfondimento degli aspetti di miglioramento continuo di un sistema 2/8
qualità conforme alla ISO 9001. Nelle linee guida fornite si trovano le motivazioni per l adozione della visione per processi, individuate come principî di gestione: gestione di sistema, l identificazione, la comprensione e la gestione di un sistema di processi contribuisce all efficacia e all efficienza dell organizzazione; gestione per processi, un risultato desiderato è ottenuto più efficientemente quando le risorse e le attività coinvolte sono gestite come un processo. Senza entrare nei dettagli dei benefici di una gestione orientata ai processi, la scelta, da parte della norma, di tale approccio implica che la realizzazione di un sistema qualità aziendale conforme ed efficace debba passare attraverso l identificazione e la definizione dei processi aziendali. In generale, le attività per costruire l organizzazione per processi di un azienda comprendono: identificazione dei processi aziendali e dei loro obiettivi; l analisi dell organizzazione deve individuare i processi; lo studio degli obiettivi deve evidenziare le modalità di svolgimento più efficaci; identificazione degli ingressi e dei risultati dei processi; la definizione dei processi prevede l identificazione delle attività che li costituiscono, delle informazioni necessarie e dei risultati attesi, spesso definiti in forma di documenti; identificazione delle interazioni fra i processi; devono essere esplicitate le informazioni che i processi si scambiano e le condizioni che esse determinano, distinguendo i casi in cui i risultati di un processo costituiscono elementi di ingresso o di controllo di un altro; individuazione delle risorse necessarie all esecuzione dei processi; le risorse, umane e non, vanno identificate; i ruoli ricoperti dal personale devono essere definiti; deve essere evidenziato quando la disponibilità delle risorse è il risultato di un altro processo; definizione degli strumenti di controllo dei processi; per ciascun processo deve essere definito quali informazioni devono essere mantenute per controllare i costi della sua esecuzione e la qualità dei suoi risultati; definizione delle attività per il miglioramento dei processi; devono essere previste attività per lo studio delle informazioni raccolte durante l esecuzione dei processi per individuare le possibili azioni di miglioramento. Nel contesto più ampio dell ingegneria del software, lo studio dei processi legati allo sviluppo di software ha come primi e più noti risultati le varie formulazioni del ciclo di vita che descrivono lo sviluppo software come una sequenza di attività definite. Da Royce [08] a Bohem [09], l analisi delle attività legate alla vita di un sistema software è passato da una impostazione sequenziale del processo di sviluppo a una concezione più ampia in cui sono identificati i ruoli e gli interessi di tutte le parti in gioco. ISO, a partire dalle proposte di ciclo di vita, ha pubblicato la norma ISO/IC 12207 che identifica i processi legati allo sviluppo del software. La norma non impone nessun ordinamento particolare alle attività: non si sostituisce a un ciclo di vita, ma è uno strumento di riferimento per definire e documentare i processi aziendali. ISO 12207 identifica tre classi di processi connessi allo sviluppo software: processi primari, processi di supporto e processi organizzativi. Per ogni classe, ISO 12207 definisce i processi in termini di attività e compiti e indica ingressi, risultati e ruoli competenti per la loro esecuzione. 3/8
Categoria Processo Descrizione CUS NG SUP MAN ORG Processi inerenti il rapporto cliente/fornitore CUS.1 Acquisizione CUS.1.1 Preparazione dell acquisizione CUS.1.2 Selezione del fornitore CUS.1.3 Monitoraggio del fornitore CUS.1.4 Accettazione CUS.2 Fornitura CUS.3 Individuazione dei requisiti CUS.4 Operatività del prodotto CUS.4.1 Uso operativo del prodotto CUS.4.2 Supporto Cliente Processi inerenti la produzione di software NG.1 Sviluppo NG.1.1 Analisi e progettazaione dei requisiti del sistema NG.1.2 Analisi dei requisiti NG.1.3 Progettazione NG.1.4 Implementazione NG.1.5 Integrazione NG.1.6 Test NG.1.7 Integrazione e test NG2 Manutenzione Processi di supporto SUP.1 Documentazione SUP.2 Gestione della configurazione SUP.3 Assicurazione Qualità SUP.4 Verifiche SUP.5 Validazioni SUP.6 Riesami congiunti SUP.7 Audit SUP.8 Risoluzione problemi Processi per la gestione dei progetti MAN.1 Gestione dei processi MAN.2 Gestione dei progetti MAN.3 Gestione della qualità MAN.4 Gestione dei rischi Processi organizzativi ORG.1 Visibilità della politica della qualità ORG.2 Miglioramento dei processi ORG.2.1 Formalizzazione ORG.2.2 Valutazione ORG.2.3 Miglioramento ORG.3 Gestione dell risorse umane ORG.4 Gestione delle infrastrutture ORG.5 Misurazione ORG.6 Riuso Tab. 1: i processi identificati da ISO/IC TR 15504 Tuttavia, il risultato più recente per quanto riguarda la definizione dei processi legati allo sviluppo software è contenuto in ISO/IC TR 15504. Il documento (non è una norma) è un evoluzione dei risultati del progetto SPIC [10] e nella sua parte seconda, descrive il modello dei processi che riportiamo integralmente in tabella 1. Rispetto a ISO 12207, il modello di ISO 15504 è più accurato nell identificazione iniziale dei processi (24 processi in 4/8
5 categorie contro i 17 processi in 3 classi di 12207), ma si tiene a un livello più alto nel dettagliare i singoli processi, limitandosi, e solo per alcuni, a definire dei processi componenti (mentre 12207 arriva a definire 74 attività e ben 232 compiti). La motivazione di questa diversa impostazione sta nei concetti di processo aziendale e processo definito. L azienda deve dotarsi di un processo aziendale, generico, valido come comune linea guida, ma che va di volta in volta definito, specializzandolo per le caratteristiche dei singoli progetti. Questa esigenza è tipica della produzione software in cui, a differenza di altri settori, è estrema la variabilità della dimensione economica dei progetti, delle tecnologie e degli strumenti di produzione impiegati, dei contesti di applicazione del software realizzato. Il concetto di specializzazione è già presente in ISO 12207, che infatti prevede come attività comune a molti processi la process implementation, che consiste appunto nella specializzazione e nell instanziazione del processo in attività di progetto. L impostazione di SPIC e poi di ISO TR 15504 è più radicale e dipende anche dalla volontà di mantenere il modello il più indipendente possibile dalla variabilità dei progetti. Individuare il giusto livello di dettaglio a cui descrivere i processi aziendali è uno degli aspetti più critici della costruzione di un sistema qualità. Processi troppo generici potrebbero essere troppo costosi da specializzare e, probabilmente, lacunosi ai fini della certificazione del sistema qualità. Processi troppo dettagliati potrebbero rivelarsi complicati da applicare o inutilmente onerosi per molti progetti. Da un punto di vista pratico, per l azienda che deve definire i propri processi, ISO TR 15504 è il modello che è preferibile usare come riferimento. Per il suo maggior livello di dettaglio, 12207 è invece uno strumento utile come esempio o per la specializzazione dei processi. I processi di ISO 12207 sono mappati sul modello di ISO 15504 e discussi in una guida, ISO TR 15271 [11], redatta dallo stesso working group che ha prodotto ISO 15504. Come metodi e linguaggi utilizzabili per la definizione dei processi aziendali, fra i molti disponibili, IDF0 [12] e UML [13] sono esempi autorevoli. IDF0 (Integration DFinition language 0) derivato da SADT (Structured Analysis and Design Technique) in seno a un progetto dell Aviazione Militare Statunitense e poi recepito come standard federale, è un linguaggio grafico specifico per la modellazione dei processi aziendali. Insieme agli altri esponenti della famiglia (IDF1, IDF1X, IDF3, 4 e 5) è molto usato per la descrizione dei processi, della struttura e dei flussi informativi di molte organizzazioni, statunitensi e non. UML (Unified Modelling Language) è il risultato dell unificazione di diversi linguaggi per la specifica e la progettazione dei sistemi software, ma alcune sue componenti (ad esempio i diagrammi delle attività) presentano caratteristiche idonee per la modellazione dei processi; ha inoltre il pregio di essere un linguaggio già noto e comprensibile nel contesto di un azienda che sviluppa software. 4. Il miglioramento continuo dei processi di sviluppo software Come strumento per mantenere competitiva l azienda, il miglioramento continuo, può essere visto in termini di obiettivi concreti, legati al rapporto valore /costo e quindi alla soddisfazione del cliente. Qualità del prodotto, time-to-market, tempi di consegna sono aspetti che incidono sul valore; produttività, efficienza, semplificazione organizzativa incidono invece sui costi finali. L analisi dei risultati dei processi rispetto a questi parametri è una condizione necessaria per il miglioramento delle prestazioni aziendali. La nuova edizione della norma chiarisce che le attività di misurazione e analisi dei processi devono essere definite e condotte 5/8
Maturità Caratteristiche Requisiti Livello 0 Incompleto Livello 1 seguito Livello 2 Controllato Livello 3 Definito Livello 4 Predicibile Livello 5 Ottimizzante Non esiste evidenza dello svolgimento delle attività. Le attività sono documentate, ma la loro gestione è informale. Le attività sono pianificate, il loro svolgimento documentato e verificato. Le attività sono eseguite in accordo a procedure definite, documentate e approvate come regolamenti aziendali. Le attività sono misurate per valutare l efficienza dei processi e la qualità dei loro risultati. I dati sullo svolgimento delle attività sono studiati per migliorare i processi. I miglioramenti sono regolarmente apportati e documentati. sistono prodotti evidenti dell esecuzione delle attività. Le attività sono pianificate e controllate. Lo svolgimento delle attività è documentato. I prodotti sono verificati. Le procedure sono definite. Le procedure sono adattate ai progetti. Ruoli, competenze e responsabilità sono definiti. Le attività e i loro risultati sono controllati quantitativamente. La gestione delle attività è controllata quantitativamente. I cambiamenti del processo sono valutati. Lo studio per il miglioramento del processo è costante. Tab. 2: la scala di maturità di ISO/IC TR 15504 regolarmente. I metodi applicabili al miglioramento continuo sono fondamentalmente basati su due criteri: valutazione dei processi a fronte di un modello fondato su criteri di ingegneria del software; di questa categoria fanno parte il Capability Maturity Model (CMM) [14] e gli altri schemi da esso derivati, tra cui Bootstrap [15], i già citati SPIC e ISO TR 15504; misurazione di obiettivi di miglioramento selezionati in base alle esigenze dell azienda; a questa categoria appartiene per esempio il Quality Improvement Paradigm [16]. La distinzione riflette due diverse scuole di pensiero. Nella pratica si attinge con successo da entrambe le impostazioni. Un progetto di miglioramento, basato sulla conduzione di progetti pilota, può essere organizzato secondo il seguente schema: analisi delle esigenze dell azienda e individuazione dei processi da migliorare; valutazione, secondo uno schema conforme a ISO 15504, dei processi da migliorare e delle loro attuali modalità di applicazione; analisi dei risultati della valutazione, eventuale ridefinizione dei processi e introduzione di attività di controllo; identificazione di uno o più progetti pilota ai quali applicare le soluzioni individuate; definizione di obiettivi misurabili per le prestazioni dei processi nei progetti pilota; esecuzione dei progetti pilota e raccolta dei dati; analisi dei risultati ottenuti nei progetti pilota e confronto con gli obiettivi attesi; in funzione dei risultati, estensione dell applicazione del nuovo modello di processo a tutti i progetti aziendali. Il concetto di maturità del processo, introdotto da CMM e poi perfezionato in SPIC e ISO TR 15504, è lo strumento attraverso il quale si misura la qualità di un processo. In tabella 2 è riportata la scala di maturità di ISO TR 15504 e i requisiti necessari perché un processo sia 6/8
conforme a un dato livello. I livelli di maturità sono raggiunti in successione: per raggiungere un livello devono essere stati soddisfatti tutti i requisiti dei livelli precedenti. In pratica, la scala di maturità identifica un percorso ideale che va dalla realizzazione improvvisata e artigianale, basata sulle capacità individuali, all organizzazione completa delle attività con la piena applicazione del miglioramento continuo. Secondo questa scala, il massimo livello è ottenuto quando il processo è definito, i suoi risultati misurati e i dati raccolti studiati per migliorarne le prestazioni. La maturità di un processo è una misura della qualità della sua definizione: il processo ottimo è quello che prevede gli strumenti per migliorare le sue prestazioni. La qualità del processo è distinta dalla qualità delle prestazioni. Un processo definito è attuato a livello 5 le misure sono effettivamente prese e i dati analizzati può avere prestazioni insoddisfacenti. Come non è detto che processi di livello inferiore diano pessimi risultati: CMM level 1 and hire smart people! Il concetto di maturità va interpretato correttamente. Raggiungere il livello 5 significa prevedere nella definizione dei processi aziendali la misura e l analisi delle loro prestazioni, cioè avere i dati per accorgersi dei problemi e per studiare le soluzioni per risolverli mettendosi nella condizione necessaria per migliorare continuamente i risultati dell azienda senza dover contare solo sulle capacità delle persone. La nuova ISO 9001 richiede la definizione delle attività di misurazione, analisi e miglioramento. È possibile utilizzare ISO TR 15504 come strumento per interpretare questo requisito della norma. Data per assunta una situazione di livello 3 come risultato dell applicazione della visione per processi definire le attività di misurazione, analisi e migliormento significa stabilire le modalità di pianificazione e gestione di progetti di miglioramento. In pratica, le definizioni dei livelli di maturità vanno interpretate come requisiti per l esecuzione dei progetti pilota, nei quali, avendo identificato le esigenze aziendali di miglioramento, si deve lavorare a livello 4 e 5 per ottenere indicazioni utili a studiare prima una modifica al processo e a valutarne poi i risultati in termini di prestazioni. 5. Conclusioni La nuova ISO 9001 identifica nella soddisfazione del cliente l obiettivo principale di un sistema qualità. Questa impostazione rende esplicito l obiettivo del sistema qualità ed elimina ogni possibile interpretazione di comodo del concetto di conformità del prodotto su cui era impostata la precedente edizione della norma: l azienda deve attrezzarsi per il miglioramento continuo del rapporto valore/costo dei suoi prodotti dal quale dipende la soddisfazione del cliente. La conformità, alla quale il processo di produzione si deve attenere, non deve essere intesa come una costante, ma come il parametro continuamente aggiornato che determina il successo dell azienda. Per le aziende software che intendono dotarsi di un sistema qualità conforme alla nuova edizione della norma, ISO 12207 e ISO TR 15504 sono i riferimenti più rappresentativi. ntrambi, propongono modelli dei processi software utili per costruire la visione per processi. ISO TR 15504 propone inoltre un modello della qualità dei processi che può essere utilizzato per impostare e gestire il miglioramento continuo. Riferimenti [01] Dati disponibili alla pagina Web di Sincert On-Line, http://www.sincert.it/ 7/8
[02] UNI N ISO 9001, Sistemi qualità Modello per l assicurazione della qualità nella progettazione, sviluppo, fabbricazione, installazione e assistenza, 1994 [03] UNI N ISO 9000-3, Guida per l applicazione della ISO 9001:1994 allo sviluppo, alla fornitura, all installazione e alla manutenzione del software per elaboratore, 1998 [04] ISO/IC 12207, Information technology Software life cycle processes, 1995 [05] ISO/IC TR 15504, Information technology Software process assessment, 1998 [06] ISO DIS 9001, Quality management systems Requirements, 1999 [07] ISO DIS 9004, Quality management systems Guidance for performance improvement, 1999 [08] W.W. Royce, Managing the development of large software systems: concepts and techniques, atti di Wescon 70, 1970 [09] B.W. Bohem, A spiral model of software development and enhancement, I Computer, maggio 1998 [10] Documentazione disponibile sul sito dello SPIC User Group: http://www.seg.iit.nrc.ca/spice/ [11] ISO/IC TR 15271, Information technology Guide for ISO/IC 12207, 1998 [12] Informazioni disponibili sul sito di IDF: http://www.idef.com [13] I. Jacobson, G. Booch, J. Rumbaugh The Unified Modeling Language Reference Manual, Addison-Wesley, 1999 [14] Documentazione disponibile alla pagina Web del Software ngineering Institute: http://www.sei.cmu.edu/cmm/ [15] Informazioni disponibili alla pagina Web del del Bootstrap Institute: http://www.bootstrap-institute.com/ [16] Documentazione disponibile alla pagina Web del dell xperimental Software ngineering Group: http://www.cs.umd.edu/projects/softng/tame/tame.html 8/8