敏捷开发中提高软件生产率的方法

作者:陈勇

出处:blog.csdn.net/cheny_com

 

很多人都知道甚至感觉到敏捷开发的生产率比传统开发高,但到底敏捷开发是怎样提升生产率的呢?以及当前自己正在实施的敏捷开发还有多大的生产率潜力?

当然“受激励的个体”会产生生产率,但只是这样解释恐怕难以服众,更难说服老板。让我们换一个角度吧。

下面几个问题揭示了一些隐性的生产率潜力:

 

  • 10万/100万/1000万代码行的项目有20%/48%/65%被取消(Jones, 1998)
  • 成功交付的产品中,约2/3延期交付(The Standish Group, 1992~2004)
  • 所有软件平均60%左右的功能从未或很少被使用(个人是PPT和Excel高手,但是发现: PowerPoint: 53/116用过,Excel: 51/132用过)
  • 约?%的文档内容在后来的维护、升级中从来没有被阅读过
  • 约?%的代码在后来被抛弃或重新编写

所以,若你能做到下面的工作,则能为企业提供难以想象的生产力提升:

1. 100%:若能避免100万行代码的项目不被取消,则生产率接近提升100%(因为原来有接近50%的可能性被取消)

2. 50%:若能避免无用功能减少一半,则生产率大约可以提升50%(若能彻底消除则接近100%)

3. 50%~1000%:若能避免代码被大量乃至完全重写,则生产率大约可以提升50%~500%(个人曾遇到13人编写9年的软件被1人编写1.5年重建)

4. 约10%:若只写有用的文档,则生产率可以提升10%以上

 

因此只是在站着开会、共同估算、每月反思、按优先级排序等等层面来推广敏捷是不行的,应该时刻注意上述效果是否达到。比如:

1. 我的项目整体的工期/成本策略是什么?我应该在哪些节点交付哪些功能来证明什么?

2. 哪些功能是客户最常使用的?(不要过度相信“现场客户”那个人,更应该多接触那个群体)

3. 竞争对手都做过些什么?哪些功能其客户评价高?哪些功能其实华而不实(而我们却以为是对方强项)?

4. 这个项目或产品的生命有多久?需要我们注意可维护行吗?要写点文档说明哪些无法从代码中看到的东西?(“给政府做个网站”和“新型4G通讯基站软件”的生命周期可相差10倍)

5. ……

掌握好这些事情之后,会发现人的积极性不但因受激励而提高了,产品的生命力也似乎提高了,很少走弯路。而最终表现结果就是生产率提高了。

 

点击下载免费的敏捷开发教材:《火星人敏捷开发手册

 

posted @ 2011-03-07 09:59  Java EE  阅读(318)  评论(0编辑  收藏  举报