在SE和其他网站上阅读所有这些“敏捷开发”内容时,我总是想知道一件事:
在“传统”软件工程中,您
- 收集用户的需求,
- 根据这些要求编写规范,
- 把它交给客户,并向他收取到目前为止已完成的工作的费用,
- 做一个(粗略的)技术设计,以便您可以估算实施成本,
- 为用户提供实施的价格报价,
- 等待客户签署规格书并接受报价,
- 设计,实施,测试,
- 法案。
如果在此过程中需求发生变更,则您发送所需变更的报价(有价格)(如果变更很小,则免费提供,您喜欢客户,而客户却不经常这样做) 。
那么,这在敏捷项目中是如何工作的(财务上),而频繁的需求变更是流程的一部分?
- 您是否为每次设计变更都写报价?(这不是很乱吗?)
- 还是您协商固定价格并希望客户不要经常更改要求?(可能会有风险,我知道客户会在接受该项目完成之前利用这个机会请求多年的新功能。)
- 还是只向客户收取所需的总时间费用?(对于事先不知道成本的客户可能会有风险。)