wapt image 1136 Miglioramento dei processi software: un viaggio riuscito
Certificazione iso 9001 | Redazionali

Miglioramento dei processi software: un viaggio riuscito

Sfondo:

Per molte organizzazioni come la nostra, l’obiettivo intermedio di raggiungere i livelli ISO 9001 o CMM è un compito scoraggiante. La disciplina non è divertente: le organizzazioni riconoscono prontamente che l’impegno ad affrontare i progetti secondo le linee guida ISO 9001 o CMM richiede la creazione di nuove procedure. È vitale per il successo degli sforzi di miglioramento per rendersi conto che il cambiamento di processo comporta un cambiamento culturale e la sua natura umana per resistere al cambiamento. Numerose barriere sociali e tecniche devono essere superate per ottenere un miglioramento duraturo.

La mia organizzazione mirava alla certificazione ISO 9001 e quindi alla valutazione di livello 2 e 3 di livello CMM circa un anno e mezzo fa e sapeva che sarebbe stata grigliata a fondo dai revisori ISO e dai valutatori CMM. Per quanto riguarda il miglioramento dei processi software, dobbiamo prima conoscere i tuoi punti di forza e di debolezza, in modo che la direzione possa valutare lo sforzo di miglioramento. Solo con questa conoscenza possiamo personalizzare un’infrastruttura per il miglioramento dei processi. Abbiamo avuto successo con piani su misura secondo il modello CMM del Software Engineering Institute. Ciò include la formazione di Software Process Engineering Group, che conosce i loro ruoli, responsabilità, carte e piani d’azione, che ti aiuta a sviluppare una carta e una visione e a stabilire una chiara corrispondenza con gli obiettivi e gli obiettivi organizzativi. Saranno molto più efficaci se ricevono la giusta formazione formale e informale. Una decisione fondamentale era “non reinventare la ruota”, ma prendere seriamente in considerazione le migliori pratiche del settore.

Successivamente abbiamo visto che, il miglioramento del processo paga sempre dividendi per coloro che hanno la disciplina per farlo bene.

Progetto di miglioramento del processo

Il piano strategico

Una visione chiara è essenziale per il successo del progetto di miglioramento del processo. Il senior management nel nostro caso aveva la visione che Process is Product ed era impegnato a sponsorizzare e supportare gli sforzi di miglioramento. Eravamo responsabili della mobilitazione di persone e risorse per cercare di realizzarlo, ma il miglioramento dei processi è stato un nuovo impegno per il mio gruppo e tutti erano incerti su come iniziare e organizzarsi. La mia organizzazione ha optato per la pianificazione strategica utilizzando il Plan-Do- di Total Quality Management Ciclo Check-Act.

Abbiamo sviluppato una visione per utilizzare le migliori pratiche dei team di sviluppo software e sono state identificate le undici migliori pratiche:

* Sviluppare iterativamente (ciclo di vita dello sviluppo incrementale)

* Usa l’architettura basata su componenti

* Modellare visivamente il prodotto utilizzando Unified Modeling Language (UML)

* Gestione del rischio formale

* Accordo sulle interfacce

* Ispezioni formali

* Pianificazione e gestione basate su metriche

* Visibilità a livello di programma dei progressi rispetto al piano

* Ricerca dei difetti rispetto agli obiettivi di qualità

* Gestione della configurazione

* Responsabilità gestionale consapevole delle persone

Nel modello di pianificazione abbiamo cercato di analizzare i progetti attuali mantenendo l’intuizione di ISO / CMM attraverso revisioni rigorose. Successivamente, abbiamo condotto un’analisi del gap organizzativo tra il suo stato attuale e la visione che stavamo cercando. Il feedback sullo stato ISO 9001 stesso è diventato il catalizzatore per lo sviluppo di piani tattici fornendo ai team leader il meccanismo di controllo necessario per il monitoraggio e la supervisione del progetto.

La nostra organizzazione ha provato a trattare il miglioramento dei processi software anche come un progetto di sviluppo! Il senior management ha sponsorizzato l’assunzione di un team di progetto corrispondente (team di controllo della qualità del software o del gruppo di ingegneria dei processi software), ha selezionato un capo progetto e ha creato un repository per archiviare la documentazione di processo e altri artefatti di processo. Abbiamo seguito il piano come: Inizia scoprendo e comprendendo la pratica corrente in tutto il gruppo. Trova la documentazione di processo esistente e parla con i professionisti per capire come vengono eseguite le attività. Conciliare eventuali differenze tra processi effettivi e adottati. Documentare e rivedere il processo recentemente caratterizzato. Quindi migliorare in modo iterativo e incrementale il processo e assicurarsi che la documentazione sia aggiornata in modo appropriato. Pianificazione del progetto, gestione della configurazione del software e garanzia della qualità del software, tracciabilità del progetto, utilizzo degli strumenti software sono state le aree chiave in cui la nostra organizzazione si è concentrata maggiormente per il miglioramento dei processi. Abbiamo cercato di personalizzare Rational Unified Process per il nostro ambiente di lavoro e sono stati inoltre utilizzati strumenti automatizzati.

Abbiamo anche assicurato che la visibilità del progetto ai vertici e al resto dell’organizzazione fosse paragonabile a quella di altri importanti progetti.

Cultura e resistenza

Il miglioramento dei processi influisce non solo sui processi utilizzati dai professionisti per svolgere il proprio lavoro. Cambiamento di processo significa cambiamento di cultura, pieno di tutte le difficoltà inerenti al cambiamento delle percezioni, dei valori e dei comportamenti normativi di una comunità. Alcune delle forze che rendono difficile tali sforzi di miglioramento sono:

o Resistenza al cambiamento (spesso dovuta a una percepita minaccia di perdita di potere, controllo, familiarità o stato sociale)

o La tolleranza esistente e la prontezza per i cambiamenti presenti nell’attuale clima organizzativo

o Il cambiamento di processo impone una curva di apprendimento, che in genere fa peggiorare le cose prima che migliorino.

o Gli sforzi di miglioramento richiedono tempo e risorse, che molti preferirebbero spendere per i loro particolari progetti di sviluppo.

Nella mia organizzazione abbiamo cercato di risolvere il problema sopra riportato apportando i nostri miglioramenti dagli stessi Hero locali (Coinvolgi tutti !!). Queste persone dovrebbero essere “tutte le star della famiglia”: membri rispettati dell’organizzazione con comprovate esperienze come sviluppatori o manager. Sottolinea l’importanza di far parte dell ‘”eroe locale” nel Gruppo di Ingegneria dei Processi Software e provare a resistere alla “cosa reale” se riesci a gestirla (questa è un’altra di quelle volte in cui il supporto della dirigenza e della direzione media può essere necessario). Abbiamo documentato le nostre procedure tecniche locali scegliendo i campioni / eroi locali per scrivere quella procedura usando le pratiche chiave SEI-CMM. Il team di Software Quality Assurance era il centro di orientamento e supporto per tutte le attività di miglioramento del processo. L’SQA era il principale organo autorevole per condurre e organizzare gli sforzi di miglioramento nell’organizzazione. L’intera comunità di praticanti è stata regolarmente informata dello stato degli sforzi di miglioramento. È anche auspicabile sollecitare input e feedback su questioni relative al miglioramento dei processi da parte della comunità dei professionisti. Abbiamo scelto un progetto pilota in modo da poter discutere e testare come il miglioramento del processo software aiuta davvero nello scenario attuale.

Vantaggi del miglioramento del processo

Le definizioni più chiare da manuale di Return on Investment (ROI) sono, come descritto da Lawrence Putnam “Investire per migliorare [productivity] comporta la rinuncia all’uso di tali fondi per altri scopi. Col tempo, il ritorno dal futuro flusso di guadagni derivanti dalle operazioni restituisce il capitale investito. “Il ROI potrebbe non essere sempre in dollari, la qualità e i problemi di pianificazione come un rendimento sono quasi importanti per i partecipanti come lo sono i costi. Il nostro set di misurazioni comprendeva le seguenti otto categorie di metriche: sforzo, processo, produttività, progresso, qualità, pianificazione, stabilità e personale. Abbiamo chiesto ai nostri partecipanti alla ricerca di indicare quali metriche del nostro set hanno mantenuto e di aggiungere alla nostra lista eventuali metriche aggiuntive che hanno utilizzato. Abbiamo anche sollecitato la fase iniziale e finale del ciclo di vita del software su cui è stata mantenuta ciascuna metrica. Quando abbiamo analizzato i dati di misurazione dei partecipanti attraverso i livelli di maturità rispetto alle otto categorie metriche, ogni livello di maturità ha mostrato, in media, un modello di crescita coerente. ha anche cercato di mettere in relazione tutti i benefici incommensurabili che abbiamo sperimentato nel loro programma di miglioramento del processo, il vantaggio più frequentemente notato dalla ricerca gli ipanti riguardavano cambiamenti attitudinali. Il morale e la fiducia degli sviluppatori sono migliorati in modo significativo e lo sviluppo del software ha registrato una maggiore attenzione e rispetto da parte di organizzazioni esterne all’organizzazione del software. I partecipanti hanno inoltre attribuito meno straordinari, meno turnover del personale, maggiore vantaggio competitivo e maggiore cooperazione tra gruppi funzionali come benefici derivanti da iniziative di miglioramento dei processi.

Conclusione

Il miglioramento dei processi software è cruciale in quanto qualsiasi organizzazione tenta di intraprendere e realizzare progetti più grandi. La mancanza di processi software ben definiti può essere molto costosa. Il supporto di tutto il personale, in particolare dell’alta direzione, è un prerequisito per qualsiasi seria iniziativa SPI. Come disse una volta un grande filosofo, “Non accadrà dall’oggi al domani, ma accadrà”.

Molti sforzi di miglioramento falliscono o vacillano durante le fasi iniziali del miglioramento del processo. La mia organizzazione è riuscita a raggiungere rapidamente la ISO 9001 / CMM perché puntava ad applicare le lezioni apprese da altri. Ma questa non può essere la fine del miglioramento dei processi in nessuna organizzazione, il nostro viaggio verso il miglioramento dei processi continuerà sempre.

Riferimenti

1. Carnegie Mellon University / Software Engineering Institute, The Capability Maturity Model: Linee guida per migliorare il processo software, Addison-Wesley, Reading, Mass., 1995.

2. Roger S. Pressman, Ingegneria del software: A Practitioner’s Approach, 4th ed., McGraw-Hill, 1996

3. Watts Humphrey, Gestione del processo software, Addison-Wesley, 1989

Similar Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *