Per natura ho una certa predisposizione alla pragmaticità.
Nel lavoro raramente pratico il gold-plating e cattedrali nel deserto ne ho costruite ben poche.
Questo approccio prevede una contropartita da regolare: posso perdere alcuni dettagli o sfumature o a volte il mio interlocutore può percepirmi come poco sensibile alle sue istanze più particolari.
Accetto il rischio. Cerco comunque di mantenermi vigile per evitare di commettere tali errori.
Citano alcuni testi di project management: un progetto si può ritenere concluso con successo, quando termina nei tempi e nei costi prestabiliti e quando sono state realizzate tutte le funzionaltà previste e solo quelle previste.
Questa citazione spalanca la porta alle tematiche agili.

Partiamo dal documento costituitente della disciplina agile (manifesto per lo sviluppo agile di software).
In quel documento sono esplicitamente evidenziati i quattro pilastri su cui si sviluppa l’intera disciplina e soprattuto su quali questioni deve essere posto il maggiore accento:
- Gli individui e le interazioni più dei processi e degli strumenti
- Il software funzionante più che la documentazione esaustiva
- La collaborazione col cliente più che la negoziazione del contratto
- Rispondere al cambiamento più che seguire i piani
Nascosta tra le righe io ci leggo una sola parola: concretezza.
Customer Value
La teoria agile mette al centro della sua esistenza il concetto di customer value, che potremmo così sintetizzare:
il giusto prodotto, al giusto prezzo, nei giusti tempi.
Ma come possiamo definire “giusto” un prodotto, il suo prezzo e i relativi tempi di realizzo?
- Il giusto prodotto, è quel prodotto che implementa tutte le funzionalità richieste dal cliente, solo quelle, e che abbiano le caratteristiche e qualità necessarie.
- Il giusto prezzo è quel prezzo, equo e correttamente comparato alle funzionalità, aspettative e al mercato.
- I tempi giusti sono i tempi minimi di realizzo del prodotto, che vadano più possibile incontro alle aspettative del cliente.
Quando lessi la prima volta la definizione sopra, sorrisi: alcune le consideravo definizioni ovvie, altre semplicemente utopiche.
Però mi fecero pensare.
Era in effetti capitato in alcune occasioni, che alla presentazione di un prodotto appena realizzato il cliente mi facesse notare come alcune funzionalità introdotte non le ritenesse importanti; anzi spesso mi chiedeva di disabilitarle per evitare incomprensioni da parte degli altri utenti.
Quanto tempo e soldi mi erano costate quelle inutili funzionalità?
Altro problema centrale rispetto alla soddisfazione del cliente, è il tempo di realizzo di un prodotto o servizio.
Prima però un’altra considerazione a riguardo: sappiamo riconoscere il vero valore di business del prodotto che il cliente ci ha commissionato? Sappiamo identificare le funzionalità centrali del prodotto stesso?
Certo, credo proprio di si; spesso però tali funzionalità sono le ultime, in ordine cronologico, che vengono sviluppate.
Le motivazioni sono valide: è necessario oraganizzare prima il progetto, le risorse, l’architettura e, se si tratta di uno sviluppo software, il database e una buona parte dell’interfaccia utente.
Il cliente, di questo passo, vedrà le caratteristiche primarie del prodotto praticamente alla fine del progetto stesso.
Come fare quindi per conciliare tempi adeguati e soddisfazione del cliente?
La risposta è sicuramente procedere con rilasci progressivi.
Rilasci Progressivi
Il cliente ha appena firmato il contratto che gli abbiamo presentato per la realizzazione del prodotto richiesto.
Qual’è il più classico degli errori in cui ricadiamo?
Sparire per un tot di settimane, per poi ricomparire con il prodotto finito; chi di voi non ci è cascato almeno una volta? Personalmente, nonostante mille auto-raccomandazioni, mi capita tuttora.
Risultati:
- il tempo trascorso senza contatti ha “raffreddato” il cliente
- alcune, se non tutte, le funzionalità del prodotto, non sono come il cliente se le aspettava
- la finestra temporale in cui il prodotto avrebbe riscontrato maggiore successo è ormai passato
- il prodotto dovrà essere testato e sicuramente verranno richieste modifiche o aggiustamenti che avranno una ricaduta pesante considerando che siamo ormai alla fine della sua realizzazione
Ecco allora che lo sviluppo iterativo del prodotto/servizio e la predisposizione di rilasci progressivi di prototipi, perfettamente funzionanti nelle loro seppur parziali funzionalità, potrebbe essere la risposta opportuna.
Come fare?
Prima di tutto partiamo dalla WBS di prodotto: essa ci restituisce uno spaccato preciso e immediato di tutte le funzionalità del prodotto.
Insieme al cliente procediamo a prioritizzarne le funzionalità: partendo da quelle a più alto valore di business.
Queste dovranno essere quelle che andremo a rilasciare il prima possibile, abbattendo rischi di misunderstanding, cercando e ottenendo feedback immediati proprio perché caratteristiche più volute dal cliente, aumentando la soddisfazione del cliente perché indirettamente percepisce di avere il suo prodotto in tempi molto brevi.
In virtù di quanto detto sopra a proposito di architettura e organizzazione del progetto, non è però sempre facile rilasciare subito tali funzionalità al cliente; è per questo che è assolutamente necessario coinvolgere il team.
Solo il team è in grado di fornire indicazioni, suggerimenti, scorciatoie per arrivare a tale risultato.
Ovviamente tutti i mebri del team devono condividere pienamente le motivazioni che portano ad una scelta del genere, pena il fallimento dell’operazione.