Affinchè il cliente sia davvero partecipe al processo di sviluppo di un software che ci ha commissionato, deve avere un problema da risolvere. Se ha un problema, ci chiama, si rende utile, ci spiega meglio il lavoro che fa ed il problema stesso che lo affligge. In un passato molto più vicino di quanto crediate, mi è capitato un cliente che voleva un software solo per sfruttare un po' di più il PC che ha in ufficio. Da un cliente così solitamente arrivano richieste del tipo..."Senti, ho un PC con Office installato. Mi hanno detto che Access è un database. Non si può fare qualcosa per...che ne so...archiviare i clienti? Oppure, scansionare le fattura e memorizzarle nei Documenti?". Un cliente di questo tipo non ha un problema, vuole solo ottenere un miglioramento della propria produttività. In un contesto di questo tipo, siamo noi che ci immaginiamo cosa possiamo fare con il software che abbiamo in testa. Non risolviamo nulla, semplicemente ci inventiamo qualcosa per renderlo soddisfatto. I migliori software nascono proprio quando l'obiettivo finale è risolvere un problema: più il problema è definito, migliore sarà la risposta che possiamo dare.
L'ho già scritto altre volte, ma lo ripeto brevemente. Prima di lavorare come consulente come faccio adesso, c'è stato un lungo periodo in cui sviluppavo su commissione (prima come dipendente, poi come libero professionista). Ho trovato davvero pochi clienti che sono stati cooperativi. Un cliente cooperativo lo si riconosce perchè 1) è ansioso di avere il software 2) ti chiama per sapere quando glielo farai vedere 3) se non lo chiami tu, ti chiama lui. Ho conosciuto anche clienti che, dopo il primo incontro per l'analisi iniziale, non si sono fatti più sentire. E' vero, direte voi, potresti chiamarlo tu, ma io sono piuttosto cinico ed onesto in questo. Non mi va di lavorare e di guadagnare sapendo di creare un software che finirà nel dimenticatoio perchè in realtà il cliente non ne sente la necessità. Preferisco di gran lunga un cliente che ha effettivamente un problema, e mi chiama per risolverlo. Un piccolo esempio: una volta mi ha chiamato un fabbro (!) nei dintorni di Pavia, perchè aveva bisogno di un software che facesse un po' di calcoli piuttosto complessi, che coinvolgevano pesi specifici dei materiali, sbarre di metallo più o meno lunghe e pesanti e a diverse sezioni (quadrate, rotonde, romboidali, etc.). Il software - onestamente non lo ricordo con precisione - doveva fare un po' di conti. Invece di progettare un'applicazione da zero, ho preferito usare Excel 2003, usandolo come piattaforma per calcoli, numeri, numeri, numeri ed ancora numeri. Ho bloccato opportunamente le celle che dovevano essere read-only, ho usato un worksheet per scrivere un piccolo manuale d'uso, l'ho formattato come Dio comanda per fare in modo che se l'avesse voluto stampare sarebbe stato tutto ok. Il cliente aveva un problema: prima faceva tutti i conti a mano con la calcolatrice: impiegava mezza giornata per ottenere i risultati numerici che alla fine gli servivano per organizzare il lavoro della settimana successiva. Non è una battuta, è proprio così: di solito il fabbro lavorava dal lunedì al venerdì facendo il suo lavoro, e passava il sabato pomeriggio in mezzo ai numeri. Il mio foglio Excel gli ha risolto il problema. Adesso il sabato pomeriggio va a fare la spesa con la moglie (secondo me, alla fine mi dirà che preferiva fare i conti!, ROFTL!!!).
Il bello è che questo fabbro mi chiamava, si faceva sentire, mi ha messo in guardia su determinati arrotondamenti che potevano essere critici, mi ha spiegato un sacco di cose per introdurmi alla materia. Alla fine è rimasto soddisfatto, così come sono rimasto soddisfatto io del mio rapporto lavorativo con lui.