Le aziende medio piccole, come per esempio la maggior parte delle software house, si trovano spessissimo a dover gestire l’esecuzione di più progetti contemporaneamente.
Tali progetti, nella maggioranza dei casi, richiedono l’utilizzo di differenti tipologie di risorse: sviluppatore junior, sviluppatore senior, software architect o specialist, project manager.
Tali progetti, inoltre, possono avere differenti gradi di difficoltà, redditività e rischi:
- Categoria A: semplici repliche o revisioni di qualcosa di già sviluppato
- Categoria B: nuovi sviluppi su tecnologie comunque conosciute
- Categoria C: nuove realizzazioni su tecnologie inedite o sulle quali non esiste in azienda un know-how specifico
Per queste categorie potrebbe essere sintetizzata la seguente tabella.
| Tipo Progetto |
Redditività |
Rischi |
Crescita |
| Categoria A |
Buona |
Bassi/Inesistenti |
Nulla |
| Categoria B |
Media |
Bassi |
Minima |
| Categoria C |
Bassa/Nulla |
Alti |
Alta |
Le risorse a più alta specializzazione o responsabilità (software architect o project manager) sono quelle a maggior costo e spesso anche quelle meno numerose o disponibili in azienda.
Si pone quindi la forte necessità di gestire al meglio tali progetti cercando il miglior bilanciamento economico, di risorse e di governo del progetto stesso.
L’obiettivo è molto sfidante e, più di quanto si pensi, rappresenta per una piccola azienda la differenza tra floridità, mera sopravvivenza o fallimento.
Vogliamo aggiungere a questa considerazione il famigerato peso dell’ “attuale momento congiungurale e di crisi in cui verte l’economia mondiale?”

Già, le vostre preoccupazioni sono anche le mie.
Non posso dire di aver elaborato una soluzione.
Parto però dalla semplice considerazione che senza un metodo, la situazione, già di suo piuttosto complessa, non è risolvibile.
Proviamo a scomporre il problema in aree per cercare di delineare un approccio.
Tali aree le possiamo considerare componenti primarie di un progetto:
- Cultura di project management aziendale e relativo grado di maturità
- Regolamentazione della modalità di lavoro
- Framework metodologico
- Rapporto con il cliente
- Gestione del team
- Gestione del portafoglio progetti
Per ognuna cerchiamo di evidenziarne i punti chiave e i possibili approcci.
Cultura di project management
Non è un lusso. Non è qualcosa di cui possiamo fare a meno.
Non è necessario per riempirsi la bocca di termini molto “professional”; è l’unico modo per crearsi un background che guidi il nostro percorso attraverso le complessità crescenti dei progetti.
Non è pensabile si possano gestire progetti, soprattutto in ambito ICT, senza un’adeguata cultura di project management, dove vincoli stretti e difficoltà in genere sono la quotidianità: tempi ridotti, budget tagliati, carenza di risorse, complessità comunicative, in altre parole progetti ad alto rischio.
Ecco che quindi il project manger deve conoscere le basi, deve costruire una cultura di project management partecipata dal team, dal management, dal cliente.
Deve creare quel lessico, vocabolario comune fatto di metodi, tecniche, strumenti quanto più possibile condivisi.
Modalità di lavoro
L’esecuzione del lavoro deve essere regolata, incanalata, per certi versi industrializzata.
Un team di progetto, sebbene di una piccola azienda, non può permettersi un approccio artigianale.
O meglio tale approccio, sia chiaro ad altissimo valore aggiunto, può essere mantenuto per quelle attività in cui esiste una forte componente creativa o nelle aree in cui un approccio dedicato, dettagliato, quasi ritagliato sull’esigenza specifica, è un presupposto per la buona riuscita del progetto stesso.
Per tutto il resto devono essere definite regole, metodi, tempistiche, template e layout standard, procedure, persino le modalità di comunicazione con il cliente andrebbero decise a tavolino.
Project Framework
In campo di sviluppo software un framework è una struttura di supporto al lavoro, composto funzioni, metodi, codice, organizzato in librerie riusabili indistantemente dal tipo di applicazione in fase di sviluppo.
Questo concetto è alla base dello sviluppo software: creare codice riusabile, già testato, che garantisce maggiore velocità di realizzazione, costanza di risultati e scalabilità su differenti realtà.
Perchè quindi non creare un nostro project framework? Un componente che racchiuda il nostro approccio ai progetti?
Tutto ciò descritto nel paragrafo precedente potrebbe essere in qualche modo reso astratto, generalizzato e organizzato in linee guida, template, layout, procedure, regolamentazioni, flussi di lavoro.
Che immenso vantaggio ne trarremmo?
Ogni componente del team è finalmente in grado di lavorare per buona parte in completa autonomia e dedicarsi maggiormente alla questioni a più alto valore aggiunto.
Si passa quindi dal governare il quotidiano a governare le sole eccezioni (Exception management wikipedia).
Sarà anche molto più semplice inserire nuove risorse o spostare le risorse su differenti progetti (crashing, fast tracking) in caso di necessità.
Rapporto con il cliente
A prima vista potrebbe sembare il problema con minore peso specifico.
Quando si parla di conduzione e esecuzione di un progetto, di fatto realizziamo una nuova necessità del cliente, qualcosa che non esite, qualcosa che ha solo immaginato.
Qualcosa alla quale tiene particolarmente e sulla quale sta investendo tempo e denaro, semplicemente fidandosi di una promessa fatta, sulla base di alcuni capitoli scritti in un project plan.
Questo ci investe di una grossa responsabilità; personalmente faccio fatica a caricarmi sulle spalle tali pesi in mancanza di una piena fiducia.
Il cliente deve fidarsi di noi. E noi dobbiamo imparare a conquistarla.
Quando il cliente si fida di noi, diventa un alleato, non un nemico dal quale difenderci stando in trincea; evitaremo di spendere energie per giustificare, spiegare, puntualizzare.
Cominceremo a spostare il rapporto su piani diversi: sinergia e collaborazione.
Gestione del team
Come già accennato sopra, il team deve condividere pienamente modalità, regole e flusso lavorativo.
Deve riconoscere nel project mangaer un leader: una persona capace di fissare mete e obiettivi condivisi, capace di stimolare il lavoro, di motivare continuamente il gruppo e all’occorrenza di personalizzare il proprio stile alla situazione e alle singole persone.
Il successo di un progetto è vincolato alla regola: le persone giuste al posto giusto.
Qualcosa di cui ho già accennato in un precedente post.
Gestione del portafoglio progetti
La definizione ufficiale di portafoglio di progetti è la seguente.
Collezione di progetti raggruppati per facilitarne la gestione al fine di raggiungere l’obiettivo strategico di ognuno e indirettamente massimizzare quello aziendale. Tali progetti accorpati non necessariamente sono tra loro correlati e i risultati dell’uno potrebbero non influenzare quello degli altri.
In altre parole la loro gestione potrebbe correre su linee parallele.
Gestire progetti tra loro disgiunti presenta sicuramente una maggiore complessità, però ha il suo lato positivo.
Questo si chiama bilanciamento.
Potremo bilanciare le risorse tra progetti, rallentando o velocizzando lo sviluppo dell’uno o dell’altro a seconda delle necessità e dei vincoli di ognuno.
Di fatto stiamo diversificando e bilanciando la nostra redditività.
Di conseguenza bilanceremo anche i rischi.
La gestione multi-progetto non è un’attività semplice.
La creazione di un processo strutturato, in continua evoluzione, rifinitura e controllo, rappresenta forse l’unico vero strumento per far fronte a complessità e rischi collegati.