Persone e ruoli principali in un progetto di sviluppo software

Persone e ruoli principali in un progetto di sviluppo software

Ogni progetto ed in particolare i progetti di sviluppo software dipendono da tre componenti fondamentali: le persone o risorse umane, i processi e gli strumenti o le tecnologie del settore. Ogni componente fornisce un valore differente al progetto. La risorsa più importante è senza dubbio la componente umana poiché le persone sono creative, forniscono una visione del futuro che non si è ancora realizzata ed applicano il loro intelletto per trasformare quella visione in realtà. Tuttavia le persone sono anche la causa primaria dei problemi che si verificano sui progetti. Le persone commettono errori che si ripercuotono sulla durata del progetto e sul suo costo. Per sfruttare al meglio le potenzialità che le persone offrono e ridurre al minimo il numero di errori durante lo svolgimento di un progetto è necessario introdurre i processi.

I processi sono rappresentati come delle procedure che bisogna seguire per raggiungere un obiettivo ben preciso. I processi, infatti, aiutano le persone a svolgere diverse attività senza avere la necessità di pensare che cosa fare ogni volta che si vuole ottenere un risultato. In altre parole i processi liberano la mente di concentrarsi su quelle attività che hanno bisogno di una maggiore attenzione fornendo una serie di passi da seguire per quelle attività che si svolgono regolarmente.

Persone e ruoli principali in un progetto di sviluppo software

Persone e ruoli

A seconda della tipologia di software che si vuole sviluppare è necessario un team di lavoro diverso. Ogni persona ha un differente bagaglio di competenze e di esperienze. Pertanto è facile comprendere che non tutte le risorse sono adeguate per ogni tipologia di progetto. In generale si può affermare che all’aumentare della complessità o dell’importanza del progetto è necessario impiegare sia un maggior numero di risorse sia quelle che hanno acquisito una maggiore esperienza.

Per organizzare al meglio il lavoro delle persone e per non creare ambiguità sui compiti è necessario una chiara e completa definizione dei ruoli e delle responsabilità, ovvero chi deve fare cosa, quando e quanto tempo ci deve impiegare.

Con il termine ruolo ci si riferisce ad una posizione ben definita che ha un set definito di caratteristiche utili per l’attuazione di determinati compiti. Il numero di ruoli impiegati all’interno di un progetto, come il numero di persone impiegate, dipende dalla sua dimensione e dalla sua complessità. È importante chiarire che i ruoli sono separati dagli individui, in quanto questi ultimi possono svolgere più ruoli contemporaneamente e lo stesso ruolo può essere svolto da più persone.

Nella seguente tabella sono elencate i differenti ruoli che sono impiegati a seconda delle differenti dimensioni del progetto.

Dimensione del progetto Ruoli
Molto piccole Non è necessaria una suddivisione dei ruoli.
Piccole Sono presenti un programmatore, analista e tester in una sola persona
Normali Sono presenti un Capoprogetto, un’analista, un progettista, un programmatore, un tester e un garante della qualità
Grandi Sono presenti più persone per ogni ruolo presente in un progetto di dimensione normale

Ruoli principali in un progetto software

Di seguito invece sono analizzati i ruoli principali che solitamente sono presenti in un progetto di dimensioni normali. In particolare:

  1. Il Capoprogetto o Project Manager è la persona responsabile di conoscere tutti gli stakeholder del progetto ed essere in grado di saper comunicare efficacemente con ognuno di essi. È responsabile della gestione del budget del progetto e pianificare, monitorare e controllare tutte le attività di un progetto.
  2. L’Analista funzionale si occupa di tradurre i requisiti di business del cliente in soluzioni tecniche. È fondamentale che durante la raccolta dei requisiti dal cliente sia coinvolto anche l’analista funzionale per ascoltare il suo punto di vista e affinché possa, in base alla sua esperienza, porre domande mirate per evitare ambiguità.
  3. Il Progettista, sulla base degli obiettivi da raggiungere definisce la struttura dati, le funzionalità ed i vincoli da rispettare. Si occupa, in altre parole di tradurre in un linguaggio tecnico, quelle che sono le esigenze del cliente.
  4. Il Programmatore, oltre a fornire una stima sui tempi e sul costo per lo sviluppo, è responsabile per la costruzione del prodotto È fondamentale che il progettista comunichi correttamente i requisiti tecnici al programmatore per ridurre i rischi ed aumentare le percentuali di successo del progetto.
  5. Il Tester assicura che la soluzione costruita dai programmatori rispetta tutti i requisiti presentati forniti dal cliente e quindi assicura che il prodotto finale sia privo di malfunzionamenti, errori e difetti. È compito del tester, dopo aver analizzato e valutato i requisiti tecnici fornitogli dall’analista funzionale, individuare e/o costruire dei casi di test per verificare il corretto funzionamento del software.
  6. Il Garante della Qualità (Tester UAT) si occupa di verificare che il prodotto finale fornito funzioni correttamente anche per gli utenti Si tratta di una fase diversa dalla fase dei test sui requisiti funzionali perché durante questa fase, chiamata anche User Acceptance Testing (UAT, Test di accettazione da parte dell’utente), viene assicurata la correttezza del prodotto per gli utenti finali. Questi test, generalmente, sono effettuati dal proprietario o cliente che ha commissionato lo sviluppo software e rappresentano l’ultimo stadio prima dell’accettazione da parte del cliente del nuovo software.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *