PDF - Qualità del Software: Concetto Multidimensionale
Document Details

Uploaded by JawDroppingCircle3016
Tags
Related
- CS605 Solved MCQs - Software Engineering II AQA 2011 PDF
- Ethics & Professionalism PDF
- Projet de fin d’études (PFE) - Construction des outils autonomes pour le contrôle qualité - PDF
- Deciding the Work to be Performed (Work Breakdown Structure) PDF
- Modelli e Metodi per la Qualità del Software (ITPS) PDF
- Metodi e Modelli per la Qualità del Software PDF
Summary
Questo documento esplora il concetto multidimensionale della qualita' del software, analizzando i modelli di sviluppo, il controllo della qualita' e la gestione del progetto. Vengono esaminati standard internazionali come ISO 9000 e CMMI, insieme all'importanza della misurazione nel software engineering per migliorare processi e prodotti.
Full Transcript
La Qualità del Software: Un Concetto Multidimensionale Nel mondo del software, la qualità è qualcosa di concreto e misurabile. Si suddivide in due grandi categorie: Qualità del processo: riguarda il modo in cui il software viene sviluppato, seguendo metodologie e standard per garant...
La Qualità del Software: Un Concetto Multidimensionale Nel mondo del software, la qualità è qualcosa di concreto e misurabile. Si suddivide in due grandi categorie: Qualità del processo: riguarda il modo in cui il software viene sviluppato, seguendo metodologie e standard per garantirne la correttezza. Qualità del prodotto: si riferisce alle caratteristiche finali del software, come l’assenza di bug e il rispetto dei requisiti richiesti. Per garantire la qualità, si utilizzano standard internazionali come ISO 9000 e CMMI, che aiutano a migliorare sia i processi di sviluppo che il prodotto finale. Modelli di Sviluppo e Controllo della Qualità Lo sviluppo del software segue diversi modelli di processo, che definiscono le fasi di progettazione, implementazione e test. Per assicurare la qualità, si adottano strumenti e pratiche specifiche: Modelli di sviluppo: stabiliscono il flusso di lavoro (es. Waterfall, Agile). Controllo della qualità: include code review, metriche di valutazione e strumenti come SonarCloud e Fortify per analizzare il codice e prevenire errori. Project Management e Qualità La gestione di un progetto software è fondamentale per garantire il rispetto di tempi e costi, e per mantenere alta la qualità del prodotto. Alcuni aspetti chiave: Pianificazione e scheduling: utilizzo di strumenti come diagrammi di Gantt, PERT e CPM per organizzare il lavoro. Team building: gestione efficace dei gruppi di lavoro per migliorare la produttività e ridurre errori. Verifica e Validazione del Software Per garantire che il software funzioni correttamente, si adottano due pratiche fondamentali: Verifica: assicura che il software rispetti le specifiche tecniche. Validazione: verifica se il software soddisfa realmente le esigenze dell’utente finale. Metodi principali: Ispezione del codice (Code Review): controllo manuale del codice prima dell’esecuzione. Testing: verifica pratica del comportamento del software. Indicatori di qualità: Tasso di difetti (numero di bug per KLOC). Affidabilità (tempo medio tra i fallimenti). Errori e Difetti nel Software Gli errori nel software derivano principalmente da fattori umani. Si distinguono in: Failure: comportamento inatteso del software. Fault (bug): errore nel codice sorgente che causa un failure. Error: errore umano che genera un bug (es. errata interpretazione dei requisiti). Studi dimostrano che: In media, ogni programmatore introduce 1 bug ogni 10 righe di codice. Solo il 50% degli errori viene catturato in fase di compilazione. Circa il 15% degli errori rimane nel software quando viene consegnato al cliente. Costo della Qualità e Standardizzazione Assicurare la qualità ha un costo, che può essere suddiviso in: Costo della conformità: investimenti per fare le cose bene fin dall’inizio. Costo della non conformità: risorse necessarie per correggere errori successivi. Per ridurre questi costi, vengono adottati standard come: ISO 9000: gestione della qualità nei processi aziendali. ISO 9126: definizione delle caratteristiche di qualità del software. CMMI: miglioramento continuo dei processi di sviluppo. Introduzione alla Misurazione e il suo Legame con la Qualità La misurazione è un processo essenziale per comprendere, controllare e migliorare il software. Permette di quantificare le caratteristiche di un prodotto o di un processo, rendendole più visibili e gestibili. Chi utilizza la misurazione nel software? Sviluppatori: per verificare la coerenza dei requisiti e la qualità del design. Project Manager: per monitorare il progresso del progetto e rispettare i costi. Clienti: per valutare l'usabilità e la conformità alle specifiche. Manutentori: per identificare aspetti da migliorare o aggiornare. Cos'è la Misurazione? La misurazione consiste nell'assegnare numeri a entità del mondo reale secondo regole definite. Permette di descrivere le caratteristiche degli oggetti o eventi attraverso attributi misurabili. Esempi di attributi misurati: Software: affidabilità, usabilità, manutenibilità. Prodotti fisici: altezza, peso, dimensione. Aspetti astratti: qualità dell'aria, intelligenza umana. Esistono due tipi di quantificazione: 1. Misurazione diretta (es. numero di righe di codice). 2. Calcolo indiretto (es. valutazione della qualità del codice basata su più metriche). Misurazione nel Software Engineering L'ingegneria del software segue un approccio ingegneristico per minimizzare le incertezze nel processo di sviluppo. Tuttavia, la misurazione è spesso trascurata, portando a problemi come: Obiettivi di qualità vaghi (es. "software affidabile" senza metriche precise). Difficoltà nel prevedere i costi e la produttività. Mancanza di dati empirici per valutare nuove tecnologie. Senza misurazione, non è possibile controllare né prevedere la qualità del software. Obiettivi della Misurazione nel Software La misurazione serve per: Comprendere lo stato di progetti e prodotti. Controllare i processi e confrontare i dati con obiettivi prestabiliti. Migliorare la qualità attraverso analisi e azioni correttive. Diverse figure professionali hanno esigenze diverse nella misurazione: Manager: monitorano costi, produttività e qualità del codice. Ingegneri del software: verificano i requisiti, identificano difetti e valutano il raggiungimento degli obiettivi di qualità. Aspetti della Misurazione nel Software La misurazione riguarda diversi aspetti della qualità: 1. Qualità del prodotto: misura la correttezza, usabilità e affidabilità del software. 2. Qualità del processo: valuta l'efficienza dello sviluppo e della manutenzione. 3. Qualità dei servizi: analizza le prestazioni e il supporto post-produzione. 4. Qualità delle persone: considera la competenza dei team di sviluppo. 5. Project Management: utilizza strumenti come Gantt, PERT e Earned Value per tracciare il progresso. Perché Misurare nel Software? La misurazione è essenziale per comprendere e migliorare la qualità dei processi e dei prodotti software. I principali motivi per misurare sono: Caratterizzare: analizzare processi, prodotti e risorse per stabilire baseline di riferimento. Valutare: determinare se gli obiettivi di qualità sono stati raggiunti e misurare l’impatto delle migliorie. Prevedere: stimare costi, tempi e qualità basandosi su dati storici. Migliorare: individuare inefficienze e pianificare strategie di ottimizzazione. Elementi della Misurazione Per effettuare una misurazione servono: Entità: elementi del mondo reale da analizzare (es. software, processi, team di sviluppo). Attributi: caratteristiche dell’entità (es. dimensione del codice, numero di difetti, tempo di risposta). Regole e Metriche: definiscono come assegnare valori agli attributi, garantendo coerenza nella misurazione. Scale di Misurazione Le scale di misurazione forniscono i valori e le unità per descrivere gli attributi. Ne esistono diversi tipi: 1. Scala Nominale: classifica gli elementi in categorie senza un ordine preciso. o Esempio: tipo di errore (errore di specifica, errore di design, errore di codice). 2. Scala Ordinale: introduce un ordine tra i valori, ma senza indicare la distanza tra essi. o Esempio: livello di complessità del software (semplice, moderato, complesso, incomprensibile). 3. Scala a Intervalli: mantiene l’ordine e la distanza tra i valori, ma non ha uno zero assoluto. o Esempio: temperatura in °C (20°C non è "la metà" di 40°C). 4. Scala di Rapporto: possiede un punto zero assoluto, permettendo operazioni aritmetiche complete. o Esempio: dimensione del codice in LOC, costo di sviluppo, numero di difetti. 5. Scala Assoluta: caso particolare della scala di rapporto, basata esclusivamente sul conteggio di elementi. o Esempio: numero di difetti rilevati durante i test, numero di sviluppatori in un team. Significatività delle Funzioni Statistiche Non tutte le operazioni matematiche possono essere applicate a ogni tipo di scala. Ad esempio: Nominale: si può calcolare solo la moda (valore più frequente). Ordinale: si possono calcolare moda e mediana (valore centrale). Intervallo: è possibile calcolare media, moda e mediana. Rapporto e Assoluta: tutte le operazioni aritmetiche sono valide (somma, sottrazione, moltiplicazione, divisione). Misurazioni Soggettive vs Oggettive Misure soggettive: dipendono dall’interpretazione del valutatore (es. esperienza di un programmatore su una scala 1-5). Misure oggettive: indipendenti dall’osservatore (es. numero di difetti rilevati in un software). Per ridurre la soggettività, si usano: Modelli descrittivi: assegnano descrizioni testuali ai valori di una scala (es. criticità di un requisito: basso, medio, alto). Modelli quantitativi: usano formule matematiche per calcolare i valori (es. produttività = LOC prodotti / mesi di lavoro). Misure Dirette vs Indirette Misure dirette: osservabili direttamente (es. numero di righe di codice). Misure indirette: derivate da altre misure tramite calcoli (es. densità dei difetti = numero di bug / LOC). Soglie e Miglioramento della Qualità Per garantire la qualità, si definiscono soglie di successo e insuccesso: Soglia minima (Smin - Smax): intervallo accettabile per un prodotto o processo. Soglia di rigetto (Srigetto): se un prodotto non raggiunge questo valore, viene considerato inaccettabile. Se un software supera la soglia minima, il management può decidere di: Ottimizzare il processo per ottenere risultati migliori. Stringere le soglie per aumentare la qualità. Gestione della Qualità del Software La qualità del software è un fattore cruciale nello sviluppo, poiché determina l'affidabilità, la manutenibilità e la soddisfazione degli utenti finali. Una corretta gestione della qualità implica l'uso di metodologie strutturate per prevenire difetti, migliorare i processi e garantire la conformità agli standard internazionali come ISO 9000. Concetti Fondamentali 1. Evoluzione della Qualità La gestione della qualità del software ha attraversato diverse fasi evolutive: Controllo qualità (inizio del XX secolo): Inizialmente, la qualità era verificata solo attraverso l'ispezione finale del prodotto, individuando difetti a posteriori. Assicurazione qualità (dagli anni '50): L'approccio si è evoluto con l’uso di strumenti statistici e metodi di prevenzione dei difetti, come il ciclo PDCA (Plan-Do-Check-Act). Qualità totale (dagli anni '80): La gestione della qualità è diventata un elemento strategico, integrando metodologie avanzate e certificazioni ISO per migliorare costantemente i processi. 2. Fattori che Influenzano la Qualità del Software La qualità del software non dipende solo dal prodotto finale, ma da diversi elementi chiave: Processo: L'adozione di metodologie di sviluppo ben definite (come Agile o DevOps) influisce sulla qualità del software. Persone: La competenza del team di sviluppo, la formazione e l’esperienza giocano un ruolo fondamentale. Progetto: La complessità del software, la chiarezza dei requisiti e le risorse disponibili impattano direttamente sulla qualità del prodotto finale. Gestione della Qualità 3. Concetti di Qualità nel Software La qualità può essere vista da due prospettive principali: Dal punto di vista del fornitore: Il software deve soddisfare i requisiti tecnici, funzionare senza errori e rispettare i tempi e i costi previsti. Dal punto di vista del cliente: Il software deve rispondere alle esigenze dell’utente, essere intuitivo e garantire una buona esperienza d’uso. La qualità è quindi legata alla soddisfazione dell'utente finale. 4. Strumenti per il Controllo della Qualità Per garantire la qualità, vengono utilizzati diversi strumenti di analisi e controllo: Diagrammi causa-effetto (Ishikawa): Utilizzati per identificare le cause principali di un problema, evidenziando le aree critiche da migliorare. Istogrammi: Rappresentano graficamente la distribuzione dei difetti, aiutando a visualizzare la frequenza dei problemi. Diagrammi di Pareto: Basati sulla regola 80/20, aiutano a individuare le cause principali che generano la maggior parte dei problemi. Carte di controllo: Monitorano la stabilità e la variabilità dei processi produttivi, segnalando eventuali deviazioni dagli standard. Concetti Fondamentali 1. Cos’è un Rischio? Un rischio è definito come una situazione incerta con una probabilità di accadere compresa tra 0 e 1. Se il rischio si concretizza, avrà un impatto positivo (opportunità) o negativo (minaccia) sul progetto. I rischi si dividono in: Rischi noti: possono essere identificati e gestiti preventivamente. Rischi ignoti: non possono essere previsti a priori e richiedono una gestione reattiva. 2. Differenza tra Rischio, Cause e Conseguenze È fondamentale distinguere tra: Cause del rischio: fattori che portano al rischio (es. gomme lisce per un’auto). Rischio stesso: l’evento che può accadere (es. uscire di strada). Conseguenze: gli effetti dell’evento (es. danni all’auto, infortunio). Processo di Gestione del Rischio 3. Ciclo di Vita del Rischio Il rischio viene gestito attraverso un processo ciclico composto da: Identificazione: individuare i possibili rischi. Analisi: valutare probabilità e impatto di ciascun rischio. Pianificazione delle risposte: definire strategie di mitigazione. Controllo e monitoraggio: seguire l’evoluzione dei rischi e adattare le strategie. 4. Tecniche per l’Identificazione dei Rischi Per individuare i rischi si possono usare vari strumenti: Brainstorming: discussioni tra esperti per raccogliere possibili rischi. Delphi Technique: raccolta anonima di opinioni da esperti tramite questionari. Root Cause Analysis: utilizzo di diagrammi causa-effetto (Ishikawa). Checklist e Risk Breakdown Structure: elenchi predefiniti di possibili rischi. 5. Analisi del Rischio L’analisi del rischio può essere: Qualitativa: assegna priorità ai rischi in base alla probabilità e all’impatto. Quantitativa: stima numericamente le probabilità e gli effetti del rischio. Strategie di Gestione del Rischio 6. Pianificazione delle Risposte al Rischio Una volta analizzati, i rischi vengono gestiti attraverso strategie mirate: Per le minacce: o Evitare: eliminare l’attività rischiosa. o Trasferire: delegare il rischio a terzi (es. assicurazioni). o Mitigare: ridurre la probabilità o l’impatto del rischio. o Accettare: preparare risorse per gestire il rischio se si verifica. Per le opportunità: o Sfruttare: massimizzare la possibilità che il rischio positivo si realizzi. o Condividere: collaborare con altri per cogliere l’opportunità. o Potenziare: aumentare l’impatto positivo del rischio. o Accettare: attendere senza intraprendere azioni specifiche. 7. Registro dei Rischi e Piano di Contingenza Il Registro dei Rischi raccoglie tutte le informazioni sui rischi identificati, le strategie di gestione e gli aggiornamenti. Il Piano di Contingenza prevede azioni per mitigare l’impatto di rischi accettati, come riserve di budget o buffer temporali. Miglioramento Continuo dei Processi Il miglioramento dei processi è un elemento chiave per garantire la qualità del software e l’efficienza operativa. L’adozione di modelli di valutazione della capacità dei processi consente alle organizzazioni di ottimizzare le proprie procedure e ottenere prodotti più affidabili. Motivazione per il miglioramento dei processi Il miglioramento dei processi è necessario per garantire qualità e competitività. Poiché lo sviluppo software è un’attività uomo-centrica e sperimentale, è essenziale un monitoraggio costante per garantire efficienza e conformità agli standard. Principi generali del miglioramento dei processi La qualità del prodotto dipende dalla qualità dei processi usati per svilupparlo. Migliorare i processi significa migliorare il business. L’applicazione di modelli standardizzati consente una gestione efficace della qualità. Approcci al miglioramento della qualità Esistono diversi metodi per il miglioramento della qualità, suddivisi in: Schemi: Modelli che definiscono i livelli di qualità dei processi (ISO 9000, CMMI, SPICE). Paradigmi: Strategie per raggiungere e migliorare un livello di qualità (PDCA, QIP, Experience Factory). ISO 9000: Standard per la gestione della qualità L’ISO 9000 è un insieme di norme internazionali che definiscono i requisiti per la gestione della qualità nei processi produttivi, garantendo standardizzazione e miglioramento continuo. Norme ISO specifiche per il software ISO/IEC 12207: Definisce i processi del ciclo di vita del software. ISO/IEC 9126: Stabilisce i criteri per la qualità del prodotto software. ISO/IEC 14598: Descrive il processo per la valutazione dei prodotti software. Processi Primari nel Ciclo di Vita del Software Acquisizione: Definisce le attività per l’acquisto di software. Fornitura: Descrive le attività necessarie per la consegna del software. Sviluppo: Copre le attività dalla progettazione alla realizzazione del software. Gestione operativa: Definisce il modo in cui il software viene utilizzato. Manutenzione: Include le attività di aggiornamento e correzione del software. Processi di Supporto Questi processi affiancano quelli primari e ne garantiscono il successo: 1. Documentazione: Assicura la tracciabilità e il miglioramento dei processi. 2. Gestione della configurazione: Controlla le versioni e i cambiamenti nel software. 3. Assicurazione qualità: Valida che i prodotti e processi siano conformi agli standard. 4. Verifica e Validazione: Controlla che il software rispetti i requisiti previsti. 5. Revisione e Audit: Effettua controlli periodici sui processi e prodotti. 6. Gestione dei problemi: Definisce il processo per identificare e risolvere anomalie. Processi Organizzativi Utilizzati per strutturare e migliorare l’organizzazione interna: Gestione del processo: Definisce il modo in cui i processi vengono eseguiti e migliorati. Gestione delle infrastrutture: Assicura la disponibilità di strumenti e tecnologie. Miglioramento dei processi: Identifica e implementa strategie per ottimizzare i processi aziendali. Addestramento e formazione: Garantisce il continuo aggiornamento del personale. ISO 15504 (SPICE): Valutazione dei processi Il modello ISO 15504, noto anche come SPICE, è un framework internazionale per valutare la capacità dei processi in un’organizzazione. Classifica i processi in categorie (Fornitore-Committente, Ingegneristici, Progetti, Supporto, Organizzazione). Utilizza livelli di capacità da 0 a 5 per valutare la maturità dei processi. Livelli di capacità dei processi secondo ISO 15504 0. Non eseguito: Il processo non è implementato. 1. Eseguito: Il processo viene seguito, ma in modo informale. 2. Pianificato e monitorato: Il processo è controllato secondo procedure definite. 3. Ben definito: Il processo è standardizzato e documentato. 4. Quantitativamente controllato: Le prestazioni sono misurate e analizzate. 5. Migliorato continuamente: Il processo viene ottimizzato costantemente. Capability Maturity Model (CMM e CMMI) Il CMM (Capability Maturity Model) è un modello di valutazione della maturità dei processi software, successivamente evoluto in CMMI (Capability Maturity Model Integration). Livelli di maturità del CMMI 1. Iniziale: Il processo è caotico e dipende dagli individui. 2. Ripetibile: Sono definite alcune pratiche gestionali. 3. Definito: I processi sono documentati e standardizzati. 4. Gestito: Il processo è misurato quantitativamente. 5. Ottimizzato: Il miglioramento continuo è parte integrante dell’organizzazione. CMMI vs SPICE (ISO 15504) CMMI è sviluppato dal Software Engineering Institute (SEI) ed è più rigido. SPICE è uno standard aperto ISO che consente una maggiore personalizzazione. Entrambi offrono modelli di rappresentazione Staged (per livelli di maturità) e Continuous (per singoli processi). Valutazione dei processi con SCAMPI SCAMPI (Standard CMMI Appraisal Method for Process Improvement) è il metodo ufficiale per valutare il livello di maturità delle organizzazioni secondo CMMI. Raccomandazioni per il miglioramento continuo Scegliere il modello più adatto agli obiettivi di business. Adottare strategie di miglioramento continuo per mantenere elevata la qualità. Collegare sempre le attività di miglioramento agli obiettivi aziendali. Qualità del Prodotto Software – ISO 25000 La norma ISO 25000, nota anche come SQuaRE (Software Product Quality Requirements and Evaluation), fornisce un framework per definire e valutare la qualità del software. Integra e migliora gli standard precedenti, come ISO 9126 e ISO 14598, per garantire che i prodotti software soddisfino determinati requisiti qualitativi. Definizione di Prodotto Software Un prodotto software è un insieme di istruzioni che eseguono operazioni su un computer, rispettando i requisiti funzionali e non funzionali concordati con il cliente. Le norme ISO definiscono standard per valutare la qualità del software in diversi contesti. Evoluzione degli Standard ISO per la Qualità del Software ISO 9126: Definisce un modello di qualità con caratteristiche misurabili. ISO 14598: Guida la valutazione della qualità del software secondo i criteri della ISO 9126. ISO 25000: Integra e sostituisce i due standard precedenti, introducendo il concetto di SQuaRE per una gestione più strutturata della qualità. Struttura della ISO 9126 La ISO 9126 suddivide la qualità del software in quattro parti principali: 1. Caratteristiche di qualità (modello di riferimento). 2. Metriche per la qualità esterna (prestazioni osservabili dal cliente). 3. Metriche per la qualità interna (caratteristiche del codice sorgente). 4. Metriche per la qualità in uso (esperienza dell'utente). Tre Prospettive della Qualità del Software 1. Qualità Interna: Riguarda la struttura del codice e la sua ottimizzazione. 2. Qualità Esterna: Misura il comportamento del software in un ambiente operativo. 3. Qualità in Uso: Valuta l’efficacia e la soddisfazione dell’utente finale. Caratteristiche Principali della Qualità del Software Secondo ISO 9126, la qualità del software si articola in sei caratteristiche principali, ognuna delle quali ha delle sottocaratteristiche misurabili. 1. Funzionalità: Capacità del software di fornire servizi adeguati. o Adeguatezza, accuratezza, interoperabilità, sicurezza. 2. Affidabilità: Stabilità e resistenza ai guasti. o Maturità, tolleranza ai guasti, recuperabilità. 3. Usabilità: Facilità di apprendimento e utilizzo. o Comprensibilità, apprendibilità, operabilità, attrattività. 4. Efficienza: Uso ottimale delle risorse di sistema. o Prestazioni temporali, consumo di risorse. 5. Manutenibilità: Facilità di aggiornamento e modifica. o Analizzabilità, modificabilità, stabilità, testabilità. 6. Portabilità: Capacità di essere trasferito su diversi ambienti. o Adattabilità, installabilità, coesistenza, sostituibilità. ISO 25000: L’evoluzione della ISO 9126 La ISO 25000 riprende la struttura della ISO 9126 e la migliora, suddividendola in cinque sezioni principali: 1. Quality Management (ISO 2500n): Definisce i concetti fondamentali della qualità. 2. Quality Model (ISO 2501n): Modelli di qualità per software e dati. 3. Quality Measurement (ISO 2502n): Metriche per la misurazione della qualità. 4. Quality Requirements (ISO 2503n): Specifiche dei requisiti di qualità. 5. Quality Evaluation (ISO 2504n): Linee guida per la valutazione della qualità. ISO 25010: Il Modello di Qualità del Software La norma ISO 25010 amplia il modello di qualità della ISO 9126, introducendo otto caratteristiche di qualità, che includono le sei precedenti e due nuove: 1. Compatibilità: Valuta la coesistenza del software con altri sistemi. 2. Sicurezza: Protezione da accessi non autorizzati e gestione dei dati sensibili. ISO 25040: Il Processo di Valutazione della Qualità La norma ISO 25040 descrive un metodo strutturato per valutare la qualità del software, suddiviso in cinque fasi: 1. Definizione dei requisiti di valutazione (stabilire obiettivi e criteri). 2. Specificazione della valutazione (definizione di metriche e criteri decisionali). 3. Progettazione della valutazione (pianificazione delle attività). 4. Esecuzione della valutazione (raccolta e analisi dei dati). 5. Conclusione della valutazione (redazione del report finale). Certificazione della Qualità del Software Il processo di certificazione della qualità secondo la ISO 25000 prevede la valutazione da parte di un ente accreditato, che analizza il software in base ai criteri stabiliti nella norma e ne attesta la conformità. Elementi di Project Management Il Project Management (PM) è l'insieme di metodologie, tecniche e strumenti utilizzati per pianificare, eseguire, monitorare e controllare un progetto al fine di raggiungere gli obiettivi prefissati rispettando tempi, costi e qualità. Ruolo del Project Manager Le attività principali del Project Manager (PM) includono: Pianificazione: definire obiettivi, strategie e processi per la realizzazione del progetto. Integrazione: coordinare le diverse parti coinvolte per garantire sinergia ed efficienza. Esecuzione: gestire risorse e compiti per completare il progetto nei tempi e budget previsti. Importanza della Pianificazione La pianificazione aiuta a: Ridurre l'incertezza e i rischi. Migliorare l'efficienza nell'esecuzione. Definire chiaramente gli obiettivi e le aspettative. Consentire un monitoraggio costante del progresso. Elementi Chiave della Pianificazione La pianificazione di un progetto si basa su diversi fattori: 1. Obiettivi da raggiungere. 2. Strategie e programmi per ottenere i risultati. 3. Schedulazione delle attività (tempi e scadenze). 4. Budget e risorse finanziarie disponibili. 5. Organizzazione del team e delle responsabilità. 6. Policy e procedure aziendali da seguire. 7. Standard di qualità per misurare il successo. Livelli di Pianificazione Strategica: obiettivi a lungo termine (>5 anni). Tattica: obiettivi di medio termine (1-5 anni). Operativa: attività a breve termine (fino a 1 anno). Cosa è il Project Management? Il Project Management si basa sull'applicazione di conoscenze e strumenti per: Gestire tempi e scadenze. Ottimizzare i costi e il budget. Garantire la qualità del prodotto finale. Utilizzare efficacemente le risorse disponibili. Gruppi di Processi del Project Management Secondo il PMI (Project Management Institute), i processi di gestione si suddividono in cinque gruppi principali: 1. Avvio: definizione e autorizzazione del progetto. 2. Pianificazione: creazione del piano di gestione e programmazione delle attività. 3. Esecuzione: implementazione e gestione delle attività pianificate. 4. Monitoraggio e Controllo: verifica del progresso e gestione delle variazioni. 5. Chiusura: finalizzazione e analisi post-progetto. Fattori di Successo di un Progetto Un progetto è considerato di successo se: È completato nei tempi previsti. Rispetta il budget assegnato. Soddisfa i requisiti di qualità e performance. È accettato dal cliente o sponsor. Ha un impatto minimo sulle normali operazioni aziendali. Aree di Conoscenza del Project Management Il PMI definisce dieci aree di conoscenza fondamentali: 1. Integrazione: gestione coordinata del progetto. 2. Ambito: definizione degli obiettivi e del perimetro del progetto. 3. Schedulazione: pianificazione e gestione del tempo. 4. Costi: gestione del budget e controllo delle spese. 5. Qualità: definizione e mantenimento degli standard qualitativi. 6. Risorse: gestione del personale e degli strumenti. 7. Comunicazioni: gestione dell’informazione tra i membri del team. 8. Rischi: identificazione e mitigazione dei rischi. 9. Approvvigionamenti: gestione di forniture e contratti. 10. Stakeholder: coinvolgimento e gestione degli attori coinvolti. Strumenti di Pianificazione e Gestione del Tempo Work Breakdown Structure (WBS): suddivide il progetto in attività più piccole e gestibili. Diagrammi di Gantt: rappresentano graficamente la durata delle attività e le loro dipendenze. PERT e CPM: tecniche per l'analisi dei percorsi critici e delle tempistiche di progetto. Monitoraggio e Controllo del Progetto Il Monitoraggio e Controllo serve a: Tracciare l’andamento delle attività. Identificare e correggere eventuali problemi. Assicurare il rispetto di tempi, budget e qualità. Uno degli strumenti più utilizzati per il controllo è il Earned Value Management (EVM), che permette di confrontare i costi previsti con quelli effettivi per valutare la performance del progetto. Gestione delle Risorse e delle Responsabilità Uno strumento utile è la Matrice RACI, che definisce i ruoli nel progetto: Responsible (R): chi esegue il compito. Accountable (A): chi ha la responsabilità finale del risultato. Consulted (C): chi fornisce supporto e consulenza. Informed (I): chi deve essere aggiornato sull’andamento del lavoro. Gestione dei Costi nel Progetto La gestione dei costi avviene in due momenti: 1. Ex-Ante (Pianificazione): stima dei costi tramite tecniche come stima esperta e analogia con progetti precedenti. 2. In-Itinere (Monitoraggio): utilizzo di strumenti come EVM per controllare variazioni di budget. Chiusura del Progetto La chiusura di un progetto comprende: Formalizzazione dell’accettazione da parte del cliente. Analisi post-progetto per raccogliere learnings. Documentazione dei miglioramenti per progetti futuri. Chiusura amministrativa e finanziaria.