RigorousAgile

2005年5月29日

我经常遇到这样的抱怨:敏捷方法没有严格的定义。抱怨者可能会说,这意味着你无法判断一个特定的团队是否在使用敏捷方法。他们也可能会说,这使得教人们如何使用敏捷方法变得困难——课程是什么?

在某种程度上,我确实感到了这种抱怨的痛苦——但我承认这是无法治愈的。这种缺乏严密性是敏捷方法定义本质的一部分,也是其核心理念的一部分。

一般来说,思维过程(特别是软件开发)的一个基本问题是环境的多样性。188比分直播完整手机版不同的系统有不同的压力和力,这使得很难提出一个严格的声明来说明该怎么做才能充分涵盖它们。软件开发是这样一种以人为本的活动,而且人是很自然的,这一事实加剧了这种效果188比分直播完整手机版不一致和高度可变.敏捷人士由此得出的结论是,尝试将软件开发与严格的过程绑定是无效的,因为这忽略了执行该过程的主要(人)组件的本质。188比分直播完整手机版

(这可能是因为我们的职业是与计算机一起工作,这导致我们想要以同样的方式为人类系统编程——尽管它们是如此不同的事实。)

所有这一切的结果是,敏捷方法从根本上期望团队决定遵循什么过程,并且期望团队积极地、定期地改变他们的过程。任何定义可以测试一致性的严格过程的尝试都与此理念背道而驰。

我不能否认这是令人沮丧的。当你无法从一开始就清楚地知道Scrum是什么时,你如何去调查敏捷方法是否比其他方法更有效,或者极限编程是否比Scrum更有效?如果客户想要一个用极限编程构建的系统,他们怎么知道它是否真的被实现了呢?有一种“我一看到就知道”的感觉,但这需要有经验的从业者有这种感觉,即使这样,这些从业者也有很大的空间来提出异议。

我对这个难题没有答案。我不这么认为一个答案。这是运动本身的一个不幸后果,就像游泳不可避免地会被弄湿一样。

转载于2012年7月26日