项目管理资源网

您的位置:项目管理资源网 >> 研发制造项目管理

混沌理论和项目管理

2006/7/4 17:00:19 |  2949次阅读 |  来源:网友转载   【已有0条评论】发表评论

瀑布模型已经被实践证明是不适用于绝大部分软件开发项目的,如果说还有项目“可以”采用瀑布模型的话,它也完全可以采用更加先进的开发模型获得更好的效果。事实上,还是有很多项目采用瀑布模型开发,与此对应的事实是,一半的软件开发项目都可以称之为“失败”。

最近看了本书叫Manage Project with Growth,从理论上解释了为什么瀑布式模型不适用于软件开发,以及为什么这样的模式还在大量被采用。

瀑布模型,也就是先计划然后收集需求、然后分析、然后设计、然后编码、然后测试的开发模式,这起源于其他类别的工程学,如建筑和机械生产,软件工程出现的比这些硬件工程晚的多,没有办法,一开始只有学习其他工程的份,但是到了二十一世纪,还是对这种生产方式执迷不悟,就太不应该了。

二十世纪初一个Taylor的美国人对生产过程做了细致的研究,这哥们出生贵族,他认为原有的生产方式很大的弊端是manager不是管理,只是在监督,工人完全按照自己的方式生产,Taylor认为manager有责任了解工作性质,指定出严格的process,工人不能自己想怎么干就怎么干,需要按照统一的process来工作,简而言之,即使manager动脑,工人出力。Taylor的观点被称为Talyorism,通过实践证明这种观点在生产性的工业中是正确的,软件工程的前辈们自然而然的就将Talyorism应用到软件开发中了。

Talyorsim对可以预见结果的生产是适用的,之可惜软件生产有其不同于其他工业的特点。软件生产不是简单的,如果硬件能够达到软件的复杂性的话,还需要软件干什么;软件生产不是可重复的,汉堡包可以被用同样的方式生产无数次,但是每一次软件开发几乎有不同的问题需要解决......

传统的工程学基于这样的假设,生产过程是线性的,即有这样的特点
1) 结果是输入之和;
2) 小的改变只产生小的影响;
3) 结果是可以预测的。

但是软件开发不是简单系统,不是线性的。根据混沌理论,非线性的过程结果是无法预料的,因为一点点的输入改变可能产生巨大的结果改变(此书作者一定是一个工程师出生,引经据点都是工程师的经历和口吻,提到1986年MIT一个气象研究者最早发现混沌现象)。

既然软件开发是一个混沌过程,那么一开始所谓周详的计划,再到周详的需求分析,还有周详的设计文档,都价值不大,因为一个小小的改变就让大量的人力投入变成白费劲。还好混沌的过程不是完全失去控制的,有的情况下开始的工作多少还是有点作用,但是某些时候(不幸的是这样的时候很多)会产生重创。

但是很多软件项目的manager为什么还是用老式的工程方法来管理项目呢?此书通过心理学分析,引文manager需要心理上的安慰,通过制定不切实际的计划,获得“项目在可控制之中”的心理暗示,如果实际项目没有按照计划进行,出现延误现象,可以说“没有做好计划“,于是陷入寻找一种指定”好计划“的陷阱,殊不知,绝大多数情况下,更本不可能一开始就指定出”好计划“,随机应变才是最好的计划。

项目失败的时候,manager可以说,我已经指定了计划,只不过计划没有切实得到执行;如果项目成功哦你了或者勉强成功了,mananger又会说,计划发生功效了。似乎这样的生产方式永远能够存活下去,这种方式能够存活是因为在一定范围内普遍还是采用这种方式,敌我都有伤亡,如果有一支力量能够打破这种局面,采用先进的方式,获得更高的生产力,整个行业的生产方式就有可能得到改变。

至于什么是先进的方式,莫衷一是。个人认为对绝大多数软件开发,迭代式(iterative)开发是正途。不完全抛弃计划,但是不要一开始指定死板不切实际的计划,制定just enough的计划,然后随着项目的推进不断的完善计划。迭代式开发也不是银弹,也有陷阱,再说了。

    项目经理胜任力免费测评PMQ上线啦!快来测测你排多少名吧~

    http://www.leadge.com/pmqhd/index.html

“项目管理生根计划”
企业项目经理能力培养和落地发展方案下载>>

分享道


网站文章版权归原作者所有,如有认为侵权请联系我们,将于1个工作日内作出处理!
网友评论【 发表评论 0条 】
网友评论(共0 条评论)..
验证码: 点击刷新

请您注意护互联网安全的决定》及中华人民共和国其他各项有关法律法规或间接导致的民事或刑事法律责任
·您在项目管理资源网新闻评论发表的作品,项目管理资源网有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款