内容


敏捷时代来临

Comments

Illustration正如孩子们要经历连续的身体和精神上变化,直到他们成熟成为成人一样,随着他们逐渐长大和成熟,思想和智力也会经历相似的转变。他们被构想出来,不断进行精炼和丰富,最终被接受为知识体系的合法成员。有些比其他的成熟得更快一些,并且我们会抛弃那些不再发展和不能低档住严格详细审查的思想。

在过去几年里,我一直关注敏捷软件的发展,从其幼年期到成年期,伴随着笑声、泪水进行奋斗,有时会有一种恐惧的感觉。尽管我已经看到了敏捷实践上的价值,但我还不是一个早期的采纳者--我通常是只有在风险和利害关系较低时的一个角色。现在,我已经相信这些实践在软件工程师的工具包中有了一个适当的位置;如果得到正确的使用,他们可以帮助团队更加优秀。要将一个敏捷的过程应用到一个重要的、高风险的项目上,如果项目和过程匹配得很好,我已经变得越来越不困难了。本专栏描述了我考虑这种方式的原因,记录了从早些年来通过最新的(和最近的)XP/敏捷领域的研讨会上的敏捷活动中的变化。

敏捷:较早时期

我的第一个敏捷研讨会,XP2001,是在Sardinia与好几百参与者一起召开的。我们中的许多人来到那里,了解了“敏捷事物”都是关于什么。我已经读了关于极限编程(XP)的许多书和文章,但是还没有接触过使用过XP的任何人。

在那时,XP和敏捷活动有一群差不多类似下面的信徒--他们使用一些可笑的缩写词,如YAGNI和DTSTTCPW。1我一直在等待有人向我说明这个神秘符号。尽管一些软件开发中的旧的守护者用类似的事物来谈论敏捷方法论,但通常它都是作为一种将被忽略的疯狂想法被摒弃掉了。

许多XP2001的参与人是咨询者,他们讨论将XP出售给客户组织的工作和他们碰到的问题。有些人讨论有关提升XP用于大的项目,但是还没有人证明它可以以小的配置重复地工作。这些咨询者都是非常聪明的、受人尊重的人,包括Kent Beck、Martin Fowler和Robert Martin。这些人很了解如何构建软件。他们中的一个人,Heck,写了一本流行的有关UML的书。2因此我认为他们值得听听。

我离开研讨会时,对敏捷和XP有了一个比较好的理解,尽管还不完全。我知道你可以在某些软件开发项目上有效地使用XP。我也明白你不需要使用所有的XP实践,或者按照一种传统的方式使用它们,以得到一些益处。事实上,我多年以来使用过几种实践,用一种方式或另一种方式。并且我清晰地看到,XP与Rational统一过程,RUP,有很多相同的东西。3

第二年,XP/敏捷领域研讨会在芝加哥的郊区召开。研讨会再次吸引了许多咨询者,他们中的一些人是会议发起人。在那时,Rational软件公司是敏捷联盟的一个成员;Grady Booch代表公司,并且我们出席了此次研讨会。尽管Rational仍然看起来像一个局外人,但是它正在团体中形成联盟,并从中学习。这个研讨会也吸引了一些著名的学术和研究团体成员。南加利福尼亚大学的Barry Boehm(以COCOMO和螺旋生命周期闻名的Barry Boehm)提交了一个主旨,并且Watts Humphrey,在软件工程组织的能力成熟度模型(CMM)发展中的一个关键人物,提交了另外一个。

在他的谈话中,Boehm说他认为敏捷运动对于产业是一股新鲜空气的气息。这个简单的陈述包含着敏捷运动的许多内容;它打开了与不同的敏捷相关问题集对话的方式。尽管坚定的追随者仍然不愿意承认XP不是一个银弹,但有些表现为更适度的位置。Humphrey的谈话甚至激起了更激烈的辩论。他谈论了度量,为对话引入了一种工程和控制观点,并最终培养了更多思想启发。

在研讨会上的经验式的专题会议上,许多参与者,大多数是来自学术界,一些来自产业界,表达了收集数据和进行试验的兴趣,以帮助确定敏捷方法的效力。在这之前,Laurie Williams在有关配对编程的有效性方面的度量工作是我们唯一看到的有关敏捷方法上的研究。她的结果说明配对编程是有益的,但是需要更多的数据以证实她的决定。许多人看起来都很热心于收集有关于此的数据和其它流行的敏捷实践。4

在下一次的XP/敏捷领域研讨会于2003年8月在新奥尔良召开时,出席的人数下降了。经济萎靡不振,并且此研讨会之前不久在犹他州召开了敏捷开发研讨会,吸引了否则可能要到新奥尔良的参与者。我也发现这个研讨会是令人气馁的;看起来就像是自上次会议后没发生过什么,而上次会议唤起了敏捷方法传播的希望。但是方法学似乎仍然是咨询者的领域,他们互相庆贺另一年将敏捷带给了大众。尽管有像Ivar Jacobson这样人的关键提示,他们注意到有多少敏捷原理在XP出现很久之前就已经有了,在我看起来,这个社团没有得到多少进展。

然而,更多的公司--包括微软--派出了代表,并且这种经验式的研讨会也有可取之处。我们讨论很多实践,包括了加拿大国家研究委员会的Hakan Erdogmus的一项实践。在一项实践中,他显示了确定首先测试编程或TFP的效率的趋势。5他得到了与我的学生在一次实验中所得到的比较相似的结果,那次实验是在我的软件工程实践课中进行的。TFP看起来改进了代码质量,但是结果从统计上看并不足以支持对此效果的确信。Erdogmus告诉我们,需要更多的实验才能确证他的发现。

在这次研讨会上的教育家的对话也很平常。我将要转到学术界上,想找出哪些教育家正在他们的课程中进行敏捷方法。据许多报告,他们正在尝试许多不同的方法将方法引入到他们的课程中,但是要这样做他们不得不将一些东西从课程中砍掉。

在研讨会后,我认识到缺少了什么。我们有大量的咨询者和学院派,但是却很少有真正使用XP和敏捷方法的用户。一个值得注意的显著的例外是实施和维护Saber航线预定软件的公司的一位副总裁。他报告说,他的团队已经成功使用了XP,但很少有用户往前进一步。我想知道,这些方法真正影响到商业环境了吗?

敏捷的一个巨大飞跃

今年,我得到了答案。XP/Agile Universe2004,第四次XP/敏捷领域研讨会,于8月在加拿大Alberta的卡尔加里市召开。(另两个研讨会集中在敏捷开发上--XP200n,6最早从2000年在欧洲召开,以及敏捷开发研讨会开始于2003年--也在今年召开了)。

在这次研讨会上,很明显,敏捷时代正在来临。首先,事情有了一个不同的感觉,因为它包括了许多用户-看到的所有论文的四分之一都来自用户。也有更多学院派(一半论文),并且很多都工作在重要的问题和想法上,这些将会影响方法论的未来。

在一个有关脚本化Web测试的指南中,我的合作伙伴是一个来自华盛顿公司的IT部门的质量工程师。用户们在会议中大声地谈论,问了很多好的问题,并想知道他们如何改进他们的组织。他们清楚地感觉到,敏捷和XP不是他们曾经所认为的那么极端。

今年的研讨会的另一个值得注意的特点是,咨询者和专家更多地是在幕后;许多呈现者都是新参加讨论会的,并带来了许多新的思想。Kent Beck,Martin Fowler,Ward Cunningham,以及其他老资格的人都没有出席。但是,研讨会兴旺起来了。

依我来看,经验式的研讨会是最能够给人深刻印象的指示器,这次的事情是不同的。我们有超过二十个的参与者,他们中的十三位都是真正的软件开发专家!我们集中在度量什么以及什么对度量是重要的上面。我们分成了两个组,我们分别关注哪些度量对商业和实践者是重要的。我们的目标是非常雄伟的。我们希望不只是确定我们应当度量的东西,还应当确定我们应当如何度量和分析数据,以及哪些种类的实验是最合适的。研讨会的结果将马上被贴出来,并且我将会在将来的专栏中包含他们的链接。

另一个有益的迹象是,研讨会比往年吸引了软件开发团体的更广泛的领域。进行了其它过程的讨论,如RUP和DSDM(动态系统开发方法)。Philippe Kruchten,他在RUP的发展方面很有影响力,并且现在在Vancouver的大不列颠哥伦比亚大学授课,提议了一个有关XP中体系构架角色的讨论,以及在Open Space区域中的其它敏捷方法。7参加此次研讨会的大多数人看起来都认为,体系构架应该单独进行构建,特别是在大的项目中。然而,有少数人争论说,体系构架只是在你关注XP实践时自然而然地进行发展。

在整个研讨会中,都是参与者之间的有益辩论和对话。Mary Poppendieck谈论了社团为了跨越分歧而讨论主要方面应当关注哪些内容。她谈到,关键是要获取好的用户参考。早期没有采用的组织将会做出一个采购决定,该决定是基于在他们的地区中一直使用一个产品的其它组织有多成功,而不管其它数据销售商可能展现了什么。

与Mary Poppendieck形成对比的是,Craig Larman主张,收集有关实践有效性的实际数据是获得更多用户的关键。依我来看,她结束时的主要讲话是研讨会的重点。他谈论了敏捷过程的“历史和根据”,回顾了瀑布模型,螺旋模型,以及DoD的82167和2167A生命周期模型。他仔细地看了一下像Winston Royce这样人的想法如何被误解了,以及Royce后来是如何由于将瀑布模型强行用于产业界而受到了不公正的惩罚。Craig指出了一些人们被错误引用的详细地方,导致了多年的误解和错误传播。

真正使得他的谈话那么重要的是他没有同样地去推动敏捷。他真正关心的是人们成为高质量软件的有效开发人员;敏捷实践只是工具包中的工具。他的主要观点是,隐藏在敏捷后面的许多概念已经存在了一段时间了,现在我们正在重新发现它们--即使许多人在这些年里迷了路。

一个成熟的XP将会导致更宽广的过程采用

我前面提及到,XP/Agile Universe 2004是最新的XP/敏捷领域研讨会。这是好的。下一年,它将会与敏捷开发研讨会合并,成为敏捷方法方面的主要研讨会。让两个研讨会分开会伤害敏捷活动。许多人承认这一点,但是还需要花时间将所有会议汇集在一起,形成一个单一的研讨会。

明年我会有两个预测。首先,敏捷实践的使用将会有一个非常显著的增长。敏捷方法,特别是XP,非常适用于小团队,并且像Grady Booch几年以前说明的那样,大多数的软件开发是由五到九个人的团队进行的。我的第二个预测是,随着敏捷实践的采用不断增长,其它方法和过程的采用,例如RUP,将会怎样呢。为什么?尽管XP在合适的时候是有效的,但是大多数团队不能简单地采用所有实践;它们对于较大的组织不太适合,并且不能覆盖全部的软件开发生命周期。

作为替代,许多人将会看到,裁减一个像RUP这样的一个过程框架以得到一个敏捷实例,进行产品的每次发布,这样会变得更容易些。更多的中等规模和大的组织将会认识到拥有一个灵活的、可定制的过程的好处,并且将想要他们的过程得到可用的最佳实践。如果经验论者持续进行下去,度量和宣扬这些实践可以产生的益处,那么越来越多的组织将会看到光明。

注释

1YAGNI 意思是 “You Ain’t Gonna Need It," ,并且 DTSTTCPW 意味着 “Do the Simplest Thing That Could Possibly Work."

2Martin Fowler 是 UML Distilled的作者,曾经出版的最流行的UML书之一。

3我在The Rational Edge的 March 2001April 2001 期刊中写了有关内容。

4Laurie Williams写的有关她的度量配对编程的效率和其它实践。参见她的Web主页:http://collaboration.csc.ncsu.edu/laurie/publications.html

5参见The Rational Edge2002年10月 期刊中的有关实践描述信息的文章。

6研讨会的名字每年改一个数字。第一次研讨会是XP2000,并且今年是XP2004。

7Open Space就是参与者提出讨论主题的地方,并且如果有足够的人感兴趣,一个讨论就开始了。

8DoD 是美国国防部。


相关主题

  • 您可以参阅本文在 developerWorks 全球网站上的 英文原文
  • 敏捷联盟Web站点:http://www.agilealliance.org/home 这是一个查找有关敏捷的最新发展的好地方。
  • Alistair Cockburn, Agile Software Development. Addison-Wesley, 2001.
  • Craig Larman, Agile and Iterative Development: A Manager’s Guide. Addison-Wesley, 2003.
  • Giancarlo Succi 和 Michele Marchesi, Extreme Programming Examined. Addison Wesley, 2001.
  • Laurie Williams, et al., “Strengthening the Case for Pair Programming." IEEE Software, July/August 2000.

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=161796
ArticleTitle=敏捷时代来临
publish-date=09222004