转载:http://sd.csdn.net/a/20120521/2805715.html
作者简介:本文作者Charlie Rudd是SolutionsIQ这家拥有30多年敏捷开发咨询和训练经验的公司的CEO。Charlie同样也是该公司主要智囊,拥有丰富的敏捷开发经验。这篇文章就是Charlie带给我们的SolutionsIQ专注敏捷开发30多年的经验结晶。
什么是方法论?
所谓的方法论是指为组织工作而设计的过程,每一道步骤都是按照一定的规则和要求来的。方法论的一般规则如下:
- 在某种情况下做某些事。
- 为了达到某项目标,需要做某些工作力。
- 某项活动需要根据它的序列确定。
- 某项任务的输入是X,而输出是Y。
- 其它。
从更高的角度来看,方法论应更注重架构而不是具体内容,规则和任务通常更有价值。当你决定使用某种方法论时,你首先需要制定规则。依赖于这样的规范化行为,也许会提高你成功的可能性。当然,遵从这些规范化的行为,你同样也可能失败。你可以指责规范,而不用承认这是你的错,因为所有的活动都是由模式决定的,而不是开发者——开发者只需要遵从命令就好了。这是否是好事取决于你是否会愿意承担失败的责任。总之,方法论是由规则驱动的。
敏捷开发
像方法论的子节点一样,敏捷开发也有自己的规则和任务描述。例如:
- 在测试驱动开发中,你永远需要首先建立单元测试。
- 每天用限制的内容描述你昨天做了什么?你今天将会做什么?你遇到了那些问题?
- 完成的定义是确定完成清单上的所有任务。
- 其它。
即使你能够勉强总结出敏捷开发的原则,也不能说明敏捷开发就是方法论,因为这并不是敏捷开发肯定会做的,所以这并不是敏捷开发。
敏捷是什么?
在敏捷开发中,开发者不会固守于某一项模式、规则,规则由他们自己创造!
- 出现问题时,将开发回滚到上次可靠阶段。
- 只做你需要做的。
- 用你的工作支撑起合作团队的工作。
- 尽快将你的项目转化成产品。
- 期望和拥抱变化。
- 尽快进入开发阶段,可以边开发边学习。
根据方法论的定义,开发是方法论的一部分。然而在敏捷开发中,只有在你需要具体化敏捷开发的时候,开发才算是它的一部分。如果你只知道盲从敏捷开发的通常含义而不理解以上原则时,那就不是敏捷开发!相反,如果你遵从以上原则(即使不被认为是敏捷开发),那它就是敏捷开发。
使用敏捷开发时,通常会提高你成功的可能性。和方法论不一样的是,如果你使用敏捷开发原则却失败了,将无法把问题转嫁给开发过程,你需要直面自己的错误!在敏捷开发中,开发者需要自己对开发负责,确认开发是否符合原则也是开发者的责任。当然,这并不轻松,有时候会需要解释,达成共识,或者权衡决定和判断。敏捷设计就是为了让你无法逃避责任和义务,这是好还是坏当然还得依赖于你的想法。简而言之,敏捷开发是由原则驱动,而不是规则驱动。那究竟又是什么创造了敏捷?
敏捷是一种人生哲学!
原文链接:solutionsiq.com