Я завжди дивувався, читаючи про всі ці "спритні розробки" тут, на SE та інших сайтах:
У "традиційній" інженерії програмного забезпечення, ви
- збирати потреби користувача,
- написати специфікацію на основі цих вимог,
- віддати його замовнику та виставити йому рахунок за виконану роботу,
- зробити (грубу) технічну конструкцію, щоб можна було оцінити витрати на впровадження,
- дати користувачеві ціну на реалізацію,
- зачекайте, коли клієнт підпише специфікацію та прийме пропозицію,
- проектувати, впроваджувати, тестувати,
- вексель.
Якщо під час процесу вимоги змінюються, ви надсилаєте пропозицію (із ціною) на бажані зміни (або робите це безкоштовно, якщо зміна невелика, вам подобається замовник, і замовник робить це не дуже часто) .
Отже, як це працює (фінансово) у гнучкому проекті, де часті зміни вимог є частиною процесу?
- Ви пишете пропозицію щодо кожної зміни дизайну? (Невже це не буде безлад?)
- Або ви домовляєтесь про фіксовану ціну і сподіваєтесь, що замовник не змінює вимоги занадто часто? (Це може бути ризиковано, я знаю, що клієнти, які використали б цю можливість, запитували нові функції роками, перш ніж визнати, що проект завершено.)
- Або ви просто виставляєте рахунок клієнту за весь необхідний час? (Може бути ризикованим для замовника, який не знає вартості заздалегідь.)