Есть одна вещь, которую я всегда удивлялся, когда читал обо всем этом "проворном развитии" здесь, на SE и других сайтах:
В «традиционной» разработке программного обеспечения вы
- собирать требования пользователя,
- написать спецификацию на основе этих требований,
- отдайте его клиенту и выставьте ему счет за проделанную работу,
- сделать (грубый) технический проект, чтобы вы могли оценить стоимость реализации,
- дать пользователю ценовое предложение для реализации,
- подождите, пока клиент подпишет спецификацию и примет предложение,
- проектировать, внедрять, тестировать,
- счет.
Если во время процесса требования меняются, вы отправляете предложение (с ценой) для желаемых изменений (или делаете это бесплатно, если изменение небольшое, вам нравится клиент, и клиент делает это не слишком часто) ,
Итак, как это работает (финансово) в гибком проекте, где частые изменения требований являются частью процесса?
- Вы пишете предложение для каждого изменения дизайна? (Разве это не было бы довольно беспорядок?)
- Или вы договариваетесь о фиксированной цене и надеетесь, что клиент не слишком часто меняет требования? (Может быть рискованно, я знаю клиентов, которые будут использовать эту возможность для запроса новых функций в течение многих лет, прежде чем признать, что проект завершен.)
- Или вы просто выставляете счет клиенту за общее время? (Может быть рискованно для клиента, который не знает стоимость заранее.)