作者 内容
 ljun511  关于敏捷方法在实际工程中的一个疑问。
 

不知诸位同仁有没有在承接项目时候使用敏捷方法。在下才学疏浅,请各位指教。
在一个敏捷项目中,需要假定我们并不能事先确定系统的需求。因此在项目的初期有一个详细设计阶段的想法是不现实的。系统的设计必须随着软件的变化而进化。敏捷方法,尤其是极限编程(XP),通过一些实践使这种进化设计成为可能。
对软件过程的一般解释是尽早理解需求,停止需求的变动,将这些需求作为设计的基础,停止设计的变动,然后开始构筑体系。这就是瀑布方法--基于计划的生命周期。
但是,你在承接一个项目时候,项目发包方绝大多数是要根据你的需求分析计算出来的任务量来谈判价格的。他们不会等你什么迭代n次。他们一般都希望以固定总价把合同定下来,而需求迭代过程中增加的东西也可以方便的加进去,以最大限度减少自己的风险。在现在这么激烈的竞争条件下(狼多肉少呀),承包方想以成本加利润等降低自己风险的形式签订合同很难。
你要迭代,发包方可以轻易说,谁让你事先不搞清楚细节的东西,你需求分析能力不行。如果不迭代,开发出来的东西根本达不到发包商的期望而不能通过验收。你也不可能先免费给发包商差不多做完了再谈判价格,那样你一定死得很惨!
所以说:敏捷方法在内部软件开发等不计算成本的纯软件开发环境比较适合,对项目工程这样的这个难题又如何解决?!

 03/04/26 13:51 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 lee_sure   同意,用户只要你提交给他有品质的产品,你用什么方法是你的事。但用户不希望项目失败,你可以向他解释这个概念,但不会多得一分钱。经验的价值就是你“迭代”过程的花费
 
 03/04/29 17:36 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 smilemac  迭代与事先能否确定全部需求并不矛盾。
 

在能确定全部需求的情况下也可以迭代开发,事实上更好。

考虑工作量时需要考虑总的时间人力等,然后提出报价,如果需求不明确,而且又在和对手竞争的情况下,那么只能靠经验了。

 03/04/29 17:59 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 smilemac  其实很多用户都是希望能不时看到你的进展,这时迭代是你最好的选择,事实上,如果组织的好,迭代还可以缩短开发周期。
 
 03/04/29 18:03 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首