Concetto: Personalizzazione di un processo per un progetto piccolo
Questa linea guida spiega come personalizzare RUP per un progetto piccolo.
Relazioni
Descrizione principale

Introduzione

La chiave per ottenere il delicato equilibrio fra distribuire un software di qualità e distribuirlo presto (il paradosso del software) è comprendere gli elementi essenziali del processo e seguire determinate linee guida per personalizzare il processo in modo che si adatti al meglio alle esigenze dello specifico progetto. Ciò deve essere effettuato aderendo alle migliori pratiche che si sono rivelate utili, in tutta l'industria, per la creazione di progetti di successo per lo sviluppo di software.

Definizione di "progetto piccolo"

Piccolo può essere riferito al numero di persone che partecipano al progetto, alla durata del progetto o alla quantità di software da sviluppare. Per gli scopi di queste indicazioni, un "progetto piccolo" viene definito come un progetto con:

  • da 3 a 10 persone
  • durata inferiore ad un anno.

Caratteristiche del processo di un progetto piccolo

Una caratteristica chiave della maggior parte dei progetti piccoli è un minor livello di formalità. Anche se esistono delle eccezioni, maggiore è il numero di persone sul progetto e più grande e più complesso è il prodotto, maggiore sarà la necessità di un processo formale. Ad esempio, se il progetto è svolto da un team di 100 persone distribuito geograficamente, o se sta lavorando contemporaneamente su più prodotti correlati con più clienti e subappaltatori, è necessario un processo molto più formale che con un tipico team da 5 persone. In modo simile, un sistema di guida per missili richiede artefatti più formali di un aggiornamento ad un sistema d'inventario.

Quali sono i motivi dell'esistenza di un processo? Un processo consente la ripetizione di pratiche valide e l'eliminazione o il miglioramento di quelle che si sono rivelate non valide. RUP in particolare fornisce:

  • una guida alle pratiche migliori
  • una serie di attività, ruoli e prodotti di lavoro di cui potrebbe aver bisogno il processo - con una guida su quando sono necessari
  • molte valide informazioni dettagliate utili per applicare in maniera efficace le tecniche che si ritengono appropriate per il progetto. Ad esempio, se si sta creando un modello di progettazione UML, si può individuare quali sono i diagrammi appropriati e come strutturare il modello. Inoltre, se si utilizzano i tool Rational, esiste un'ulteriore guida su come utilizzarli in modo efficace come parte del processo globale.
  • guida su come personalizzare il processo in modo che si occupi di problemi specifici correlati al processo. Ad esempio, se il progetto presenta molti cambiamenti di requisiti, può tornare utile la guida relativa alle modalità di una efficace gestione dei requisiti.

Molte delle attività e degli artefatti RUP sono necessari sia per i progetti piccoli che per quelli grandi - le differenze sono più in termini di formati di prodotti di lavoro e di livello di formalità, dettaglio ed impegno applicati a ciascuna attività. Per gli scopi di queste indicazioni, un "processo per progetto piccolo" focalizza l'attenzione sui progetti che richiedono scarsa formalità. Alcune caratteristiche di questo processo per progetto piccolo sono riportate di seguito.

  • Il numero di documenti tende ad essere inferiore e meno dettagliato. Invece di dettagliati Piani di gestione dei rischi e Piani di accettazione del prodotto, i progetti piccoli possono dedicare un paio di paragrafi per questi argomenti, come parte del Piano di sviluppo software globale. Il Piano di test di ciascuna iterazione può essere composto da qualche paragrafo nel Piano di iterazione.
  • I progetti piccoli spesso iniziano con un minimo di tool per lo sviluppo di software. Quando un progetto cresce ed ha esito positivo (obiettivo di tutti i piccoli progetti di successo), sarà importante includere dei tool efficaci utili per l'automazione dell'implementazione del processo del team.
  • Le revisioni formali possono essere sostitute da riunioni e discussioni informali.
  • Molti degli artefatti possono essere acquisiti informalmente. Su una lavagna può essere creato un elenco dei rischi, e le valutazioni dello dello stato possono essere dei paragrafi di un email.

Come iniziare

Per definire un processo per il progetto piccolo, è necessario prima rivedere i seguenti concetti fondamentali di RUP:

Quindi valutare qualsiasi eventuale processo esistente si stia seguendo rispetto agli elementi essenziali e concentrare le revisioni sulle aree deboli. Molti progetti scelgono di adottare in modo incrementale nuovi tool e un nuovo processo e all'inizio utilizzano solo piccole parti di RUP.

Utilizzando Rational Method Composer (RMC), è possibile selezionare e deselezione i pacchetti di contenuto RUP per eseguire una grossolana personalizzazione del processo, quindi eseguire un perfezionamento con le viste del processo, incluso l'aggiunta di proprie linee guida specifiche per il progetto. RMC include una configurazione di metodo Progetto piccolo. Si tratta di una configurazione più piccola di RUP che include maschere "informali" ed esclude la guida applicabile a progetti più grandi e più formali. I progetti piccoli devono iniziare con questa maschera ed applicare una propria personalizzazione specifica per il progetto.  Per ulteriori informazioni sulla personalizzazione di RUP, vedere Concetto: Personalizzazione di RUP.  

L'Esempio: Un progetto piccola adotta RUP, fornisce un esempio del tipo di approccio alla definizione del processo che può avere un piccolo progetto. Una guida dettagliata sulla definizione e la documentazione relative al processo di sviluppo software di un progetto viene fornita da Compito: Personalizzazione del processo di sviluppo del progetto .

Ulteriore personalizzazione del processo

In particolare i progetti più piccoli possono adottare le pratiche e le tecniche associate ai "processi agili". Questo viene discusso in Concetto: Pratiche agili ('agile')in RUP e in White paper: Utilizzo di RUP per progetti piccoli: approfondimento di eXtreme Programming.