您的位置:首页 > 其它

软件开发的本质:Scrum和敏捷的假设

2010-07-12 15:04 260 查看
  长久以来,人们都把软件开发和工业开发做类比,认为两者有很大的相似性。所以,也就有了传统软件开发模式,认为在一开始把所有都定义好,后面使用一些项目管理和质量管理的方法,项目就会获得成功。

  Scrum和敏捷开发的模式,对软件开发的本质提出了不同意见。Scrum的创始人Ken Schwaber认为软件开发更类似于新产品的研发,而不是生产制造模型。生产制造业的流程有一个重要的特性,那就是“可重复”,把定义好的流程运用到同样的输入上一定能产出同样的结果。这是大规模生产中流程控制和质量控制的前提。而这点对软件开发完全不适用,把同一份需求(且不说对需求的理解不同)给两个不同的人,做出来肯定是不同的软件,即使是同一个人在不同的时刻,也很有可能做出不同的东西。更重要的是,没有任何定义能清楚地说明谁做出的是对的,谁做出的是错的。因为这软件开发本身的复杂性决定了很难定义清楚全部细节。所以,在一开始拿到一份需求,认为最后做出的软件就能满足这份需求,这是很不实际的。因为没有定义清楚的东西太多了。

  对于新产品的研发,大家都会认同输出是不可控的。可以通过不断的尝试,不断地反馈来不断地改进。最后做出一个让人满意的产品。Scrum基于软件开发更类似于新产品研发的假设,其框架本身就继承了不断获得反馈和改进的机制,小到每天每刻,大到每个Sprint每个Release都在不断调整和提高。很多人认为Scrum和敏捷都是从实践中来,而没有理论基础,事实上,这一点可以看做是Scrum理论基础假设的一个方面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: