Concetto: Pratiche dell'ambiente
Questa guida introduce le pratiche fondamentali utili per l'implementazione dell'ambiente di un progetto software.
Relazioni
Elementi correlati
Descrizione principale

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

Utilizzo delle guide

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. 

Addestramento della gente

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.