Quando un'azienda decide di sviluppare un software, le prime domande sono quasi sempre le stesse:
Quanto costerà?
Quanto tempo servirà?
Quali funzionalità dovrà avere?
Sono domande corrette. Ma ne esiste una meno frequente, e spesso più importante:
Quanto conosciamo davvero oggi del problema che il software dovrà risolvere?
Molti progetti partono dal presupposto che la risposta sia: tutto.
Si pensa che, attraverso l'analisi iniziale, sia possibile raccogliere ogni esigenza, definire ogni comportamento del sistema e arrivare a una soluzione completa prima ancora che il software venga utilizzato.
Nella realtà, però, questa condizione raramente esiste. Non perché l'azienda non conosca il proprio lavoro. Al contrario: spesso lo conosce così bene da non riuscire più a distinguere ciò che è una regola esplicita da ciò che è diventato un'abitudine.