5 Gestione dei progetti software. 5.1 Attività gestionale. Sistemi Informativi I Lezioni di Ingegneria del Software



Documenti analoghi
Gestione parte IIC. Diagrammi di Gantt. Esempio. Schemi di scomposizione delle attività

Descrizione dettagliata delle attività

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

IL PROJECT MANAGEMENT

Indice. pagina 2 di 10

Concetti di base di ingegneria del software

ing. consuelo rodriguez

Allegato 2 Modello offerta tecnica

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Automazione Industriale (scheduling+mms) scheduling+mms.

Sviluppo e Gestione dei Progetti. docente: Prof. Filippo Ghiraldo f.ghiraldo@bep.co.it


COMUNE DI SOLBIATE ARNO

Unità Formativa 10.2: Strumenti per la programmazione delle attività.

Aris TimeSheet. che guardano oltre. enti e aziende. Soluzioni per

Project Management. Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali.

Sistemi di misurazione e valutazione delle performance

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

PROGETTAZIONE DI UN SITO WEB

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

Corso di Valutazione Economica dei Progetti e dei Piani. Marta Berni AA

MANUALE DELLA QUALITÀ Pag. 1 di 6

GESTIONE DEI PROGETTI

03. Il Modello Gestionale per Processi

cin>>c8 s.r.l. Consuntivo Pagina 1 di 11 Consuntivo

La Metodologia adottata nel Corso

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in

COMUNICAZIONE PER IL MANAGEMENT D IMPRESA

L azienda e la sua gestione P R O F. S A R T I R A N A

MILESTONES E DELIVERABLES

Processi principali per il completamento del progetto

Fase 6 Information and visibility on the project

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Il Progetto e il Project Management

MODELLO PER LO SVILUPPO DEL PRODOTTO

AUDITOR D.Lgs 231/01. Seminario ACIQ SICEV Sessione di Aggiornamento Dedicata ai Registri SICEV SICEP. Milano 28 Settembre 2012.

Sistemi Informativi I

COME VIENE REALIZZATO UN SERVIZIO DI RIORGANIZZAZIONE DEI SISTEMI INFORMATIVI AZIENDALI?

LTA Starts you up! è un servizio svolto in collaborazione con LTA e

Matrice Excel Calcolo rata con DURATA DEL FINANZIAMENTO determinata dall'utente

REGOLAMENTO PER L ISTITUZIONE E L APPLICAZIONE DEL SISTEMA DI MISURAZIONE E VALUTAZIONE DELLA PERFORMANCE

IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA. Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale.

La pianificazione finanziaria di progetto

Capitolo 4 - Teoria della manutenzione: la gestione del personale

UN ESEMPIO DI VALUTAZIONE

Leading Initiative for Value and Efficiency. Interventi di formazione presso organizzazioni pubbliche e private 2012-L2 PROJECT MANAGEMENT


Matrice Excel Calcolo rata con IMPORTO DEL FINANZIAMENTO determinato dall'utente

Database. Si ringrazia Marco Bertini per le slides

IN COLLABORAZIONE CON OPTA SRL

Progettaz. e sviluppo Data Base

PROCEDURA OPERATIVA DI VALUTAZIONE DEI DIPENDENTI

EXPLOit Content Management Data Base per documenti SGML/XML

Concorso Premiamo i risultati DOCUMENTO DI PARTECIPAZIONE

ORGANIZZAZIONE E PIANIFICAZIONE DEL PROCESSO DI SVILUPPO PRODOTTO

GESTIONE DELLA FORMAZIONE E

2. GUIDA ALLA PREDISPOSIZIONE DEL DOSSIER DELLE EVIDENZE DA ESPERIENZA

IV. TEMPI E RISORSE: STRUMENTI DI PIANIFICAZIONE E CONTROLLO

La progettazione centrata sull utente nei bandi di gara

Università di Parma Facoltà di Ingegneria. Polo Tecnologico Nettuno

leaders in engineering excellence

GESTIONE DEI PROGETTI. Inizio

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

AVVISO PER LA MANIFESTAZIONE DI INTERESSE PER IL COFINANZIAMENTO A PROGETTI STRATEGICI DI R&S IN MATERIA DI ICT E MECCANICA AVANZATA RELAZIONE TECNICA

Il modello veneto di Bilancio Sociale Avis

Sistemi Informativi I Pianificazione e Diagrammi GANTT

Cos è. Insieme di: struttura organizzativa (equipe di qualità + capo progetto) responsabilità. procedure. procedimenti. risorse

manifatturiera e per i servizi

Manuale della qualità. Procedure. Istruzioni operative

Tecniche di Prototipazione. Introduzione

GESTIONE AVANZATA DEI MATERIALI

Cap.1 - L impresa come sistema

Trasformazione dei Processi in Progetti DIB 1

7. Esigenze informative e FAQ. 8. Allegati. Repository documentale.

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Specifiche tecniche e funzionali del Sistema Orchestra

1- OBIETTIVI DEL DOCUMENTO 2- INTRODUZIONE

GECO GECO GESTIONE COMMESSE. Data: Aprile 2006 Revisione: 2.0 Pagina: 1 / 15

PREVENTIVO uno strumento che ci tutela!

GESTIONE INDUSTRIALE DELLA QUALITÀ A

Gestione del workflow

GESTIONE AVANZATA DEI MATERIALI

SVILUPPO, CERTIFICAZIONE E MIGLIORAMENTO DEL SISTEMA DI GESTIONE PER LA SICUREZZA SECONDO LA NORMA BS OHSAS 18001:2007

S i s t e m a d i v a l u t a z i o n e d e l l e p r e s t a z i o n i d e i d i p e n d e n t i

Matrice Excel Calcolo rata con TASSO DI INTERESSE determinato dall'utente

GUIDA ALL USO DEGLI STRUMENTI OPERATIVI DEI COORDINAMENTI REGIONALI

Linee Guida per la Rendicontazione dei Progetti

Gestione Turni. Introduzione

Parte I. Prima Parte

Il modello di ottimizzazione SAM

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

COMUNE DI PERUGIA AREA DEL PERSONALE DEL COMPARTO DELLE POSIZIONI ORGANIZZATIVE E DELLE ALTE PROFESSIONALITA

DIPARTIMENTO DI INGEGNERIA IMPIANTI INDUSTRIALI. Andrea Chiarini Andrea Chiarini 1

ADDETTA E ADDETTO ALLA COMUNICAZIONE INTERNA D IMPRESA

L uso della Balanced Scorecard nel processo di Business Planning

GSC 100% Software per la gestione dei corsi di formazione Descrizione prodotto

Le basi della Partita Doppia in parole Facile e comprensibile. Ovviamente gratis.

Ciclo di vita dimensionale

Transcript:

5 Gestione dei progetti software. Dopo aver completato lo studio del ciclo di vita del software, in questa parte vengono discussi gli aspetti gestionali della produzione del software. Vengono esaminate le differenze dalla gestione di altri settori ingegneristici e le peculiarità del ruolo del manager. Vengono illustrate le attività manageriali tipiche di pianificazione delle attività, strutturazione aziendale, misura della produttività, stima dei costi. 5.1 Attività gestionale. La gestione di un progetto software si presenta simile alla gestione di altri progetti, con in più alcune caratteristiche particolari. Il controllo sulle fasi di sviluppo di un progetto software. Non viene fatto guardando il prodotto, come avviene per un edificio o un ponte, ma attraverso la documentazione, che assume pertanto un ruolo di grande importanza quindi non solo per l utente. Un documento però non inquadra completamente un progetto: questa caratteristica è nota come intangibilità o impenetrabilità del software. Il manager, come l utente, non vede il prodotto crescere, ma si deve rifare a voci sul suo stato di sviluppo. Esperienza. Vi è molta meno esperienza sul processo di sviluppo del software piuttosto che, ad esempio, nei processi tipici dell ingegneria edile. Singolarità. Un progetto software mira alla produzione di un esemplare, in questo senso è più simile al progetto per un ponte piuttosto che al progetto per un automobile che viene poi prodotta in serie. Questo comporta che non sia semplice portare l esperienza accumulata con un prodotto in un altro. Quali sono le attività gestionali tipiche di un capoprogetto (o project manager)? Proposta. Normalmente un cliente si rivolge a più software-house pe rla realizzazione di un sistema. Per ottenere l appalto, ogni azienda fa una proposta o progetto-offerta. Il cliente valuta le proposte ed accoglie quella che ritiene più conveniente per le sue esigenze. La redazione del progetto-offerta è in genere affidata al project-manager. Valutazione dei costi. Si cerca di determinare quanto verrà a costare il sistema finito. Si deve tener conto di molti fattori: della tecnologia, del numero di persone che parteciperanno al progetto, dell utilizzo e/o acquisto di hardware necessario alla realizzazione, ecc. Pianificazione delle attività e scadenze. Si decide come ripartire il lavoro di sviluppo e la durata delle varie fasi e sottofasi. Supervisione (monitoraggio), Si tratta del controllo puntuale dello stato di avanzamento del progetto. Revisioni periodiche. Si tratta di verifiche pianificate o determinate da particolari eventi nel corso del progetto per determinare se si sta uscendo dai costi previsti, se si è in ritardo sulla tabella di marcia. Portano ad una modifica della pianificazione (ripianificazione). Selezione e valutazione del personale. Riguarda il personale che deve lavorare sul progetto e comprende assunzione, formazione del team, motivazione, ecc. Pagina 1 di 8

Rapporti e presentazioni. Si tratta di documenti da consegnare alla Direzione e di presentazioni da effettuare al cliente, durante la progressione del progetto, al termine di particolari fasi, al completamento del progetto. 5.2 Struttura aziendale Qual è la composizione di un team di sviluppo? Il team di sviluppo di un sistema comprende diverse figure, in dipendenza della specializzazione, del tipo di tecnologia impiegata, del tipo di progetto. Nel team vi sono normalmente persone che svolgono funzioni di analisi (specifiche, progettazione) ed altre che svolgono funzioni di codifica. Solamente se il sistema/prodotto da sviluppare è contenuto viene affidato ad una sola persona. Solitamente un lotto di lavorazione viene affidato ad un gruppo (team), la cui dimensione media va da 2 a 7/8 persone. E stato osservato che se si va oltre questo numero si perde in produttività, o comunque questa non migliora. Infatti l attività di coordinamento, la comunicazione tra i componenti del team, diventano fattori pesanti che vanno a prevalere sul vantaggio dovuto all ampliamento del gruppo di lavoro (span of control). Se il prodotto è di notevoli dimensioni e per essere sviluppato in tempi ragionevoli richiede un team più ampio, viene organizzato in sottosistemi con interfacce semplici e ben definite, ed ogni sottosistema è affidato ad un team che lavora indipendentemente. Nelle grandi aziende che sviluppano più progetti contemporaneamente, l organizzazione dei ruoli è più complessa. Vi è una gerarchia al cui vertice si trova un direttore, al quale fanno riferimento un insieme di project manager. Organizzazione dei ruoli Direttore Project Manager Project Manager Quality Manager Team Leader Team Leader Team Leader Q1 Q2 Q3 Ogni project manager è responsabile di un progetto e controlla un insieme di team. Pagina 2 di 8

Vi è inoltre un insieme di team di collaudatori sotto la responsabilità di un quality manager che fa rapporto al direttore. Oltre alla minore necessità di comunicazione, i team con un numero ridotto di persone portano alcuni benefici. Standard di qualità. L alta coesione della squadra concorre al rispetto degli standard di qualità: la qualità dei prodotti sviluppati dal team è circa una costante. Competenza e lavoro di gruppo. Un certo numero dei componenti il team, talvolta tutti, hanno una visione globale del progetto. Questo determina una maggiore sostituibilità all interno del team, minori rischi in caso di turn-over. Inoltre si genera un ambiente formidabile per acquisire competenze. Condivisione. I prodotti realizzati sono visti come prodotti di squadra, non dei singoli componenti: un programma o una sua parte non è sentito come prodotto del singolo ma della squadra. Ciò incide sulle risposte, per esempio quando un programma non supera l esame di qualità. E stato osservato che in un team tradizionale, una certa percentuale del tempo utile alla realizzazione del prodotto è dedicata allo scambio di informazioni tra i membri della squadra. La riduzione del tempo di comunicazione porta a maggiore efficienza, pertanto nel team si introducono delle persone che ricoprono il ruolo di interfacce. L interfaccia solleva gli altri membri del gruppo dalle problematiche non strettamente collegate alla realizzazione del sistema: la scrittura di rapporti, la comunicazione con l esterno del team, ecc. Team e Ruoli Team Capo Specialisti di supporto Interfaccia Comunicazioni con l esterno Oltre alle persone assegnante in modo continuativo al team, in dipendenza delle esigenze, altre persone possono temporaneamente farne parte. Solitamente si tratta di specialisti di supporto che sono necessari per quelle parti del progetto che richiedono competenze specifiche (ad esempio di database, di design per un sito internet, ecc.). Pagina 3 di 8

L idea alla base di questo tipo di team è di recuperare la situazione ideale dello sviluppatore singolo, si cerca cioè di sfruttare i vantaggi dello sviluppo affidato ad un singolo, in una struttura di gruppo. 5.3 Produttività. La produttività è la quantità di lavoro svolto nell unità di tempo. Nel caso di un prodotto software cosa si intende per quantità di lavoro? Un progetto si lascia dietro una quantità enorme di materiale oltre al prodotto finale: documentazione, prototipi, simulatori, dati di test, prime versioni. Anche se lo scopo del progetto è la produzione del sistema finale, tutti i prodotti intermedi devono essere considerati per ottenere una misura dello sforzo di produzione. Spesso invece si considera una misura del quantitativo di prodotto finale. La quantità Q dello sforzo di produzione è in questo caso una funzione del prodotto finale (del software SW prodotto): Q = F (SW) Si tratta di una approssimazione che consente però di confrontare due prodotti. Si considera così il rapporto dello sforzo di produzione di due prodotti P 1 e P 2 corrispondente al rapporto Q 1 e Q 2. La quantità Q è data dalla complessità del prodotto finale che si assume pari al numero di istruzioni. Va chiaramente definito cosa si intende per istruzione: è un problema per i linguaggi di alto livello. Si può eseguire una approssimazione contando il numero di righe di programma. Per poter confrontare programmi diversi bisogna però considerare che questi possono essere scritti in linguaggi diversi: questo problema si risolve determinando opportune costanti di conversione. La produttività in questi casi può essere calcolata come ad esempio: numero di istruzioni consegnate da un programmatore in un mese. Si deve notare che anche il test in un certo senso dà origine ad istruzioni. La produttività va calcolata come media in tutto l arco di tempo dello sviluppo del software. Una simile misura della produttività presenta un evidente difetto: non tiene conto della qualità del software prodotto. La produttività media è influenzata da vari fattori. Complessità dell interfaccia utente. Partecipazione del cliente alla definizione dei requisiti. Livello di esperienza del programmatore. Complessità del sistema. Sono necessari dei metodi più sofisticati per determinare lo sforzo di produzione e la produttività, in particolare un metodo che tiene conto del punto di vista dell utente è denominato Function Point Analysis. Pagina 4 di 8

5.4 Pianificazione delle attività. La pianificazione di un progetto consiste nella suddivisione del lavoro totale richiesto dal progetto in compiti (task) distinti e nella stima della durata di ogni task. Se più individui o team lavorano nel progetto alcuni task possono essere svolti in parallelo. Il piano deve coordinare questi task in parallelo in modo da utilizzare in modo ottimale le risorse umane e fisiche. Nel caso del modello a cascata ogni fase viene definita in più sottofasi, che corrispondono ad un task. All interno di ogni fase, spesso al termine di un task vengono definiti dei punti di controllo (milestones). Devono essere inseriti in punti rilevanti dello sviluppo ad una distanza di tempo di non più di 2 o 3 settimane (che è anche la durata media di un task). Per essere effettivi i punti di controllo devono essere messi in punti il cui raggiungimento sia definibile in modo univoco (non ha senso ad esempio definire un punto di controllo rispetto ad una percentuale di sviluppo). Ad ogni punto di controllo viene presentato al project manager un rapporto formale di progresso delle attività. Un rapporto formale è costituito da un certo numero di deliverables. Un deliverable è una qualsiasi cosa che forma una testimonianza del lavoro fatto: un documento, una dimostrazione. Un milestone consiste quindi in una verifica del lavoro fatto fino a quel punto, sulla base dei deliverables consegnati al momento del milestone. Come si descrive un piano di lavoro? Viene innanzitutto compilata una tabella dei task. Ad ogni task viene associata una descrizione, una stima della durata ed i nomi dei task dai quali dipende. Tabella dei task Task Descrizione Durata (giorni) Dipendenze T1 Attività 1 3 - T2 Attività 2 12 T1 T3 Attività 3 10 - T4 Attività 4 10 T3, T1 T5 Attività 5 5 T2, T4 T6 Attività 6 22 T5 T7 Attività 7 12 T5 T8 Attività 8 17 T7 T9 Attività 9 9 T8 Pagina 5 di 8

Un task Tk dipende dal task Th se Tk non può iniziare prima che Th sia terminato, ad esempio perché l input di Tk è l output di Th. A partire dalla tabella dei task si può costruire il grafico delle dipendenze, nel quale vanno inseriti oltre ai task anche i milestones. Grafo delle dipendenze F I 3 T1 M1 M2 12 T2 10 T4 M3 5 T5 M4 22 T6 12 17 9 T7 M5 T8 M6 T9 10 T3 Ogni task viene etichettato con la sua durata, mentre i milestones vengono etichettati con la data prevista per il raggiungimento: la data si ottiene considerando la durata dei task precedenti a partire dalla data di inizio. I tanti cammini dal nodo iniziale a quello finale hanno durate diverse, c è però sempre un camino più lungo: il cammino critico (evidenziato in rosso nel grafico). Il cammino critico determina la durata dello sviluppo del progetto. Ogni ritardo sul cammino critico determina un ritardo su tutto il progetto: ritardi non eccessivi su altri cammini non hanno questo effetto. Bisogna prestare la massima attenzione ai task del cammino critico. Vi sono strumenti automatici per generare il grafo delle dipendenze e trovare il cammino critico secondo vari metodi. Un metodo è il PERT che consente un analisi particolarmente fine, ad ogni task vengono associate tre durate: ottima, media e pessima. Questi dati vengono utilizzati per trovare la durata ottima, media e pessima del progetto nel suo complesso. I cammini critici rispetto alle tre diverse durate possono essere diversi. Pagina 6 di 8

Un altro metodo porta ad una rappresentazione di grafo a barre (bar-chart), che viene dedotto dal grafo delle dipendenze. Attività 1 Attività 2 Attività 3 Attività 4 Attività 5 Gen Feb Mar Apr Mag Giu Lug Ago Grafo a barre (Bar-chart) Diagramma delle allocazioni (allocation-chart) Risorse Risorsa 1 Risorsa 2 Attività Attività 1 Attività 2 Attività 2 Totale 3 gg 5 gg 5 gg G 1 g F 3 g 3 g M 2g A M Attività 3 8 gg 3 g 3 Attività 4 8 gg 1 g 3 g Le attività vengono messe in diretta relazione con il tempo, sono indicati i milestones e spesso il margine di espansione che ha ogni task rispetto al cammino critico (che non ha margini). Ogni barra può venire annotata con il numero di persone che lavorano sul task corrispondente. Questo diagramma consente di avere il numero delle persone impiegate in ogni istante: numero che dovrebbe essere più o meno costante tranne che nei punti critici. Non si ha invece evidenza di quali siano le persone impiegate nel progetto in un dato istante. Si ricorre quindi ad un diagramma integrativo: il diagramma delle allocazioni (allocation-chart), che indica in ogni istante a quale progetto e quale task del progetto lavora una persona.. Questo metodo consente di evidenziare lo sforzo del progetto e di ogni task espresso in numero di persone per mese. Per ottenere i costi si associa ad ogni persona/mese il costo omnicomprensivo (stipendio, spese, ecc.). Questo metodo porta alle rappresentazione di tipo GANTT. Come si produce una pianificazione? In base ad una combinazione di criteri. Per analogia. Confrontando quanto avvenuto per un prodotto sviluppato in passato. Per giudizio di un esperto. Una persona che ha accumulato esperienza nella produzione di piani di lavoro per diversi tipi di prodotti. In base alle risorse disponibili. Si tratta di una situazione comune, non si determinano cioè le risorse necessarie in base al piano, ma il project manager redige il piano sapendo ad esempio di poter disporre di tre persone per due mesi e poi di due per un altro mese e mezzo ecc. Un piano di lavoro non è un entità statica, ma viene continuamente riorganizzato. Pagina 7 di 8

Il project manager può fare il piano annuale delle attività, sapendo che mensilmente lo dovrà rivedere ed adattare alle situazioni (nuove attività, variazioni nelle risorse allocate, ritardi nelle attività schedulate, ecc.). Un piano fa sempre fatto per tutto il periodo di sviluppo di un progetto, non solamente per una sua parte. 5.5 Stima dei costi. Una delle informazioni più importanti presenti in uno studio di fattibilità è la stima del costo del prodotto. I costi devono essere stimati con buona approssimazione all inizio dello sviluppo del prodotto, non ad attività iniziate. Una valutazione del costo globale di un prodotto/progetto non è però semplice, si basa su diversi criteri. Per analogia. Confrontando i dati a disposizione per prodotti precedenti. Per giudizio dell esperto. In base alle risorse disponibili. In questo caso si sa in partenza che il cliente è disposto a pagare non più di una certa cifra: si cerca quindi di stimare la quantità di prodotto fattibile con quella cifra. In base a modelli di calcolo. Viene stimato lo sforzo richiesto in base alle caratteristiche del prodotto, definito il numero di mesi/persona (M/p) necessari ed il tempo complessivo (Tc) di sviluppo. I modelli di calcolo forniscono delle formule per calcolare M/p e Tc a partire essenzialmente da una stima delle dimensioni del prodotto e di alcune caratteristiche di complessità. Il metodo denominato Function Point Analysis consente di definire una stima dei costi basata sulla percezione funzionale da parte dell utente del sistema finito. M/p e Tc sono indipendenti o quasi! Il lavoro svolto da 10 persone in un mese (2iorni lavorativi) non può essere fatto da 22 persone in 10 giorni. Vi sono tempi di sviluppo fisiologici per i progetti che non si possono abbreviare semplicemente aumentando il numero di risorse. Bisogna quindi pianificare considerando che si può influire parzialmente sul Tc e stimare la quantità di risorse ottimale da allocare sul progetto. Il fatto che non si possa diminuire sotto una certa soglia il tempo di sviluppo è dovuto principalmente a due fattori: Non tutto è parallelizzabile. Vi sono dei limiti all introduzione di nuove risorse: si rischia di aumentare i costi, infatti si hanno problemi di coordinamento ed aumenta la parte di tempo dedicata alla comunicazione, da un certo punto in poi il tempo in più richiesto per la comunicazione supera i benefici dell introduzione di nuove risorse. Pagina 8 di 8