C'è una cosa che mi sono sempre chiesto leggendo su tutto questo "sviluppo agile" qui su SE e altri siti:
Nell'ingegneria del software "tradizionale",
- raccoglie i requisiti dell'utente,
- scrivi una specifica basata su questi requisiti,
- consegnalo al cliente e fatturagli il lavoro svolto finora,
- eseguire una progettazione (approssimativa), in modo da poter stimare il costo dell'implementazione,
- fornire all'utente un preventivo per l'implementazione,
- attendi che il cliente firmi la specifica e accetti l'offerta,
- progettazione, implementazione, test,
- disegno di legge.
Se, durante il processo, i requisiti cambiano, si invia un'offerta (con un prezzo) per le modifiche desiderate (o lo si fa gratuitamente se la modifica è piccola, il cliente lo gradisce e il cliente non lo fa troppo spesso).
Quindi, come funziona (finanziariamente) in un progetto agile, in cui le frequenti modifiche dei requisiti fanno parte del processo?
- Scrivi un'offerta per ogni cambiamento di progettazione? (Non sarebbe un bel casino?)
- O negoziare un prezzo fisso e sperare che il cliente non cambi troppo spesso i requisiti? (Potrebbe essere rischioso, conosco i clienti che vorranno sfruttare questa opportunità per richiedere nuove funzionalità per anni prima di accettare che il progetto sia completato.)
- Oppure fatturate al cliente il tempo totale necessario? (Potrebbe essere rischioso per il cliente, che non conosce il costo in anticipo.)