In qualsiasi azienda di sviluppo software ci sono alcune figure professionali che hanno lo scopo di facilitare il dialogo con i clienti e la realizzazione di programmi utili e funzionali per i clienti stessi. Oltre a queste persone, ci sono poi i vari responsabili e infine, ultima ruota del carro, i programmatori.
Analizziamo ora tutte le figure che concorrono a sviluppare il processo produttivo:
Responsabile: può essere "di progetto" se l'azienda è suddivisa in comparti verticali, "di risorse" se l'organizzazione interna segue una struttura orizzontale. In poche parole, è quello a cui si chiedono le ferie.
PM, ovvero Project Manager, ovvero capoprogetto (ma PM fa più figo): in teoria è colui che organizza il lavoro, calcola i tempi di realizzazione, presenzia alle riunioni con i clienti per redigere le priorità. In pratica, chiede i tempi di realizzazione ai programmatori, secondo uno schema di priorità che gli ha preparato un analista, un progettista, oppure, in mancanza, il suo animale domestico.
Analista/Progettista: sono due figure distinte, ma la distinzione solitamente sfugge ai più. In teoria dovrebbero fare delle analisi di progetto ("questa roba qua dovete farla così"). Poi non si mettono d'accordo, e quindi esistono analisi e progetti che parlano della stessa cosa e ma che deve essere fatta in due modi diversi (solitamente contrapposti).
Programmatore: Dovrebbe prendere l'analisi di progetto ed eseguire le indicazioni. Purtroppo spesso le analisi di progetto non esistono, se esistono sono sbagliate, se chiede informazioni agli analisti/progettisti ottiene risposte contrastanti. Quando chiede al PM chi deve ascoltare, la risposta può essere "Cerca di fare una media tra quello che ti hanno detto loro, seguendo la tua logica" (! - l'utilità delle altre figure professionali a questo punto risulta alquanto misteriosa).
Se un programmatore manifesta la sua incomprensione, gli viene solitamente risposto:
1. tu sei fastidioso
2. tu non sei collaborativo
3. tu non andrai in ferie
Ovviamente se il programma non funziona o le scadenze non vengono rispettate, la colpa è del programmatore.
