2001年2月,在美国犹他州的一个滑雪场,17位轻量级软件开发方法的创始人和专家,包括Kent Beck(Extreme Programming)、Alistair Cockburn(Crystal Methodologies)、Jim Highsmith(Adaptive Software Development)等等,共同发布了“The Manifesto for Agile Software Development”(敏捷软件开发宣言)。这表明,在软业经历了无数次的项目失败之后,人们开始反思软件开发的工程特性,反思计划和控制的有效性,反思过去对于不确定性的态度和反应。敏捷终于为这个行业,以及这个行业中的一些人所认识、理解和推崇。
与会者之一Martine Fowler在其后来的文章“The New Methodology”中这样解释重量级、轻量级和敏捷:
轻量级与重量级的差异来自于人们对两种方法的文档数量的直观感受,即轻量级方法较少产生和依赖于庞大的文档,但这只是一个表面现象;在诸多的轻量级方法之间存在着很多相通的地方,敏捷更恰当的表达了这些轻量级方法的最根本之处。
首先,敏捷强调适应,而非预测。重量级方法花费大量的人力物力,试图制订详细的计划来指导长期的工作,而一旦情况变化,那么计划就不再适用。因此本质上重量级方法是抵制变化的,而敏捷方法则强调适应变化。其次,敏捷方法以人为中心,而非以流程为中心(即以事为中心)。敏捷方法强调软件开发应顺乎本心(work with people''s nature ),软件开发应带来乐趣。
敏捷流程(Agile Process)汲取众多轻量级方法的“精华”,更加强调对变化的适应和对人性的关注。除了上面介绍的XP以外,其他知名的敏捷流程包括:
1.Crystal
Cystal事实上不是一种开发方法,而是一系列的方法。因为Crystal的发明人Alistair Cockburn认为,不同类型的项目需要采用不同的方法。Alistair Cockburn从两个维度来划分项目,一是项目规模,以人数计算;二是产品发生错误的后果,以严重性计算。
Crystal方法集也形成于90年代,当时,Cockburn接受了IBM的任务去写一些关于开发方法的东西。相对而言,Crystal的个人色彩要淡些,因为它不仅来源于Cockburn的个人经验,而且也来源于Cockburn走访的很多不同的项目;而Cockburn本人也较为思想开放,乐于接受“异见”。
在以人为导向上,Crystal和其他敏捷方法有些差异。在Cockburn看来,自由是人之本性,要人遵守纪律总是有难度的;因此,要在工作生产率和流程的纪律性之间作一权衡。流程要易于遵照执行,而这是以牺牲生产率为代价的。Cockburn认为,XP的流程规范仍太复杂和难于执行,而采用Crystal虽然生产率不如XP,但开发人员更乐于采用。Cystal也强调在每个迭代后的Review,并以此进行Cystal方法的自身改进。
此文章共有3页 上一页 1 2 3 下一页
文章来源:共创软件
|