Alcune pratiche chiave utilizzate per implementare un nuovo ambiente di sviluppo, che consistono nel RUP (Rational
Unified Process) insieme ai tool, sono:
Valutazione del progetto e dell'organizzazione
Valutare lo stato corrente del progetto e dell'organizzazione per comprendere meglio quali parti dell'ambiente sarebbe
opportuno migliorare. Si comprenderanno anche meglio le possibili modalità di implementazione dell'ambiente.
Le seguenti pagine spiegano come valutare lo stato di un progetto e la relativa organizzazione circostante:
Implementazione incrementale dei processi e dei tool
Implementare l'ambiente, il processo e i tool in modo incrementale, così le persone sui progetti non saranno
sopraffatte da troppi fattori nuovi alla volta. Implementando l'ambiente in modo incrementale, è possibile
concentrarsi su una sottoserie dell'ambiente, aumentando la probabilità di successo.
Introdurre l'ambiente una parte alla volta. Il risultato della valutazione dell'organizzazione di sviluppo consente di
decidere quali parti del processo e quali tool sarebbe opportuno iniziare a introdurre. Normalmente, concentrarsi sulle
aree in cui l'organizzazione di sviluppo presenta i problemi maggiori.
L'implementazione dell'ambiente in modo incrementale potrebbe indicare che in una prima iterazione (o in una iniziale),
ci si concentra sull'introduzione della disciplina Requisiti, insieme ai relativi tool. Nella seconda iterazione,
l'attenzione si sposta sulla disciplina Analisi & Progettazione insieme ai relativi tool di modellazione. Nelle
iterazioni successive, vengono introdotte ulteriori parti dell'ambiente.
Consultare Concetto: Implementazione di un processo in un progetto per dettagli.
Gestione e pianificazione
Gestire e pianificare le attività dell'ambiente come avverrebbe con tutte le altre attività del progetto di sviluppo
software.
L'implementazione di un nuovo processo e dei nuovi tool su un progetto è un'attività complessa. La modifica del modo in
cui la gente lavora potrebbe mettere a repentaglio il buon esito di un progetto. L'esperienza insegna che, quando
vengono confrontate con le altre attività di sviluppo, le attività dell'ambiente vengono, talvolta, trascurate dal
responsabile del progetto.
Le attività dell'ambiente devono essere gestite e pianificate come tutte le altre attività in un progetto di sviluppo
software. Quindi, è importante che il responsabile del progetto abbia familiarità con il nuovo processo e con i nuovi
tool. A volte è difficile per il responsabile del progetto dedicare il tempo necessario per apprendere sia un nuovo
processo che nuovi tool potenzialmente numerosi. In tal caso, il responsabile del progetto necessita del supporto di
qualcuno che sappia implementare l'ambiente e che lo abbia già fatto in precedenza. Anche se il responsabile del
progetto dispone dell'insieme appropriato di skill e di esperienza, si consiglia di richiedere "l'esperienza di
implementazione dell'ambiente", poiché aumenta considerevolmente le possibilità di riuscita del progetto.
Per dettagli sulle modalità di gestione e di pianificazione di un progetto di sviluppo software, incluse le attività
dell'ambiente, consultare la disciplina Gestione del progetto. Consultare inoltre Concetto: Implementazione di un processo in un progetto.
Utilizzare le guide per introdurre un nuovo processo in un progetto. L'esperienza insegna che l'utilizzo di guide
è essenziale per la buona riuscita dell'implementazione di un nuovo processo. Se non si dispone di guide, esiste un
rischio evidente che la gente del progetto ricada nelle precedenti abitudini. La guida agisce da "controllore" della
modifica.
Il progetto ha bisogno sia delle risorse che del budget per un mentoring sul progetto. Occorre pianificare la
ricorrenza di alcune delle attività di mentoring, ad esempio della conduzione dei workshop. E' importante che la guida
del processo comprenda il significato di essere determinante per le modifiche e si accerti che il lavoro proceda. E'
inoltre essenziale che la guida cessi di essere indispensabile e che trasferisca, quindi, sia la conoscenza che le
responsabilità ai membri del progetto. Consultare Concetto: Mentoring
per ulteriori dettagli sul significato di guida e delle relative mansioni.
Distribuzione della proprietà del processo
Distribuire la proprietà del processo tra la gente coinvolta nel progetto, perché è più probabile che adottino e
apprendano rapidamente il nuovo processo. Il caso di sviluppo derivante è migliore quando i "veri esperti", la gente
coinvolta nel progetto, lo sviluppano personalmente. Se si distribuisce la proprietà del processo, si ridurrà anche la
probabilità che il progetto diventi troppo strettamente dipendente dai consulenti esterni.
Non appena possibile, assegnare a qualcuno coinvolto nel progetto la responsabilità per ogni disciplina del processo
principale. Questa persona ha la responsabilità primaria per la configurazione di tale parte del processo e della parte
di caso di sviluppo corrispondente. Ad esempio, essere responsabile per una disciplina del processo principale come i
requisiti significa essere responsabili per tale parte del caso di sviluppo. Ogni persona deve essere responsabile per
una o più discipline del processo principale e deve conoscere bene l'area e la guida che può aiutare gli altri
sviluppatori.
Un tecnico del processo agisce come guida per la gente coinvolta nel progetto che possiede le diverse parti del
processo e la assiste durante la configurazione del processo.
'ROI (Return on investment - guadagno sull'investimento)'
Pensare al guadagno sull'investimento quando si configura il processo: concentrarsi sugli elementi che consentiranno un
guadagno superiore rispetto all'investimento.
L'esperienza insegna che per alcuni progetti si tenda a impiegare troppo tempo e risorse nello sviluppo di linee guida
approfondite, di un caso di sviluppo esteso e di ulteriore materiale correlato al processo. Esistono tre problemi
principali relativamente a tale situazione:
-
La gente non legge le descrizioni troppo prolisse.
-
E' molto difficile eseguire ogni azione correttamente dall'inizio. E' meglio fare qualcosa in modo meno
approfondito, riprovare e quindi correggere il precedente errore.
-
Distoglie l'attenzione dal mentoring. E' necessario che alla gente che ha familiarità con il processo venga
assegnato il mentoring, non la stesura di descrizioni estese, come attività principale.
Quando si sviluppano le linee guida, è necessario tenere a mente il guadagno sull'investimento. Provare a riutilizzare
linee guida esistenti. Ad esempio, un'alternativa poco costosa nello sviluppo di una linea guida di modellazione del
caso d'uso è utilizzare un buon esempio di descrizione esistente come linea guida.
In pratica, non è possibile calcolare l'investimento e il guadagno, per cui occorre confrontarli. Come tecnico del
processo, è essenziale tenere a mente che, qualunque cosa si stia facendo, deve comportare un guadagno sostanziale per
gli sviluppatori.
Come tenere la gente informata e coinvolta
Informare la gente sui nuovi processi e tool e coinvolgerli nel lavoro a causa della principale minaccia a qualsiasi
modifica in un'organizzazione è il comportamento della gente rispetto al cambiamento. L'introduzione di un nuovo
processo e di nuovi tool in qualsiasi organizzazione significa che la gente deve cambiare il proprio modo di lavorare.
La gente ha una avversione naturale ai cambiamenti. C'è sempre il rischio di cadere in una spirale negativa, in cui gli
atteggiamenti negativi delle persone producono risultati più miseri che portano, in seguito, ad atteggiamenti ancor più
negativi.
Quanto segue elenca alcune azioni che è possibile eseguire per evitare gli atteggiamenti negativi, a partire
dall'atteggiamento negativo della gente nell'organizzazione:
-
Impostare delle aspettative realistiche. Non vendere in grandi quantità il nuovo processo o i nuovi tool.
-
Coinvolgere le persone chiave nel lavoro di modifica. Fare in modo che esse siano parte del progetto pilota e dare
loro la responsabilità per alcune parti del processo. Consultare Distribuzione della proprietà
del processo.
-
Spiegare perché è necessario effettuare il cambiamento. Quali problemi ha l'organizzazione che è necessario
risolvere? Quali cambiamenti nella tecnologia richiedono un nuovo processo e nuovi tool? In che modo l'utilizzo dei
nuovi tool e processo sarà vantaggioso?
-
Informare tutte le persone nell'organizzazione di cosa sta succedendo. Ad esempio, tenere tutti i reparti informati
relativamente all'andamento della situazione. Non è necessario che tali informazioni siano estremamente
dettagliate; l'aspetto importante è siano le stesse per tutti.
-
Non dimenticare gli stakeholder (portatori d'interesse), come i clienti o gli sponsor. Ad esempio, se si passa da
un approccio a cascata (water-fall) a un approccio di sviluppo iterativo, è necessario che gli stakeholder
comprendano in che modo viene gestito un progetto di sviluppo iterativo e in che modo viene misurato il relativo
avanzamento. In un progetto di sviluppo iterativo, ad esempio, non possono aspettarsi una progettazione
completamente congelata in un punto cardine iniziale. Verranno inoltre coinvolti quando i progetti cambiano il modo
con cui acquisiscono i requisiti.
Istruire la gente sul nuovo processo e sui nuovi tool perché essi devono comprendere sia il nuovo processo che le
modalità di utilizzo dei nuovi tool.
Esistono diversi modi per istruire la gente, compresi i seguenti metodi che sono stati utilizzati:
-
Corsi di addestramento standard
-
I campi consistono da una a cinque settimane di addestramento concentrato sulla formazione pratica. Non sono molte
le società che possono permettersi i "campi di addestramento", tuttavia, essi hanno dimostrato la loro efficacia
nei casi in cui vi sono molti fattori nuovi per le persone coinvolte nel progetto.
-
Il mentoring funziona quando è disponibile una guida che esamina i risultati, conduce workshop e risponde alle
domande. Se eseguito correttamente, il mentoring può essere un modo molto efficace di trasferire le nozioni.
-
I workshop di partenza sono un modo efficace per tenere la gente informata in occasione dell'introduzione di una
nuova parte dell'ambiente. In questo tipo di workshop, la gente lavora utilizzando il proprio materiale del
progetto reale e seguendo le nuove parti del caso di sviluppo tramite l'utilizzo di nuovi modelli, linee guide e
tool. Generalmente, un tecnico del processo e uno specialista dei tool sono responsabili per tale workshop. Non
impiegare troppo tempo nello sviluppo del materiale di addestramento per un workshop iniziale. Lo scopo principale
è fornire un'esperienza pratica utilizzando nuove sezioni del caso di sviluppo insieme a modelli, linee guida e
tool. Il workshop iniziale è inoltre un modo per verificare tali elementi insieme ai casi di sviluppo.
|