C'è una cosa che mi sono sempre chiesto quando leggevo di tutto questo "sviluppo agile" qui su SE e altri siti:
Nell'ingegneria del software "tradizionale", tu
- raccogliere i requisiti dell'utente,
- scrivere una specifica basata su questi requisiti,
- darlo al cliente e fatturarlo per il lavoro svolto finora,
- fare una progettazione (approssimativa) tecnica, in modo da poter stimare i costi di implementazione,
- dare all'utente un preventivo per l'implementazione,
- attendere che il cliente firmi le specifiche e accetti l'offerta,
- progettare, implementare, testare,
- conto.
Se, durante il processo, i requisiti cambiano, invii un'offerta (con un prezzo) per le modifiche desiderate (o lo fai gratuitamente se la modifica è piccola, ti piace il cliente e il cliente non lo fa troppo spesso) .
Quindi, come funziona (finanziariamente) in un progetto agile, in cui frequenti cambiamenti dei requisiti fanno parte del processo?
- Scrivi un'offerta per ogni modifica del design? (Non sarebbe un bel casino?)
- O negozia un prezzo fisso e speri che il cliente non cambi i requisiti troppo spesso? (Potrebbe essere rischioso, conosco i clienti che utilizzerebbero questa opportunità per richiedere nuove funzionalità per anni prima di accettare il completamento del progetto.)
- O addebitate semplicemente al cliente il tempo totale richiesto? (Potrebbe essere rischioso per il cliente, che non conosce il costo in anticipo.)