敏捷宣言十年:它是否提供了更好的编程方法
2010-11-09 软件在线 编辑:Ruby 译
导读:时至今日,敏捷宣言都要发表十年了。在敏捷宣言发布十年以后的今天,迭代和协同软件开始发展起来了。
11月8日国际报道 时至今日,“敏捷软件开发宣言”已经发布十年了,该宣言的发布推动了利用变更需求帮助客户获得竞争优势的发展,而且可以让开发人员用更短的周期向客户交付可用的软件。
敏捷宣言于2001年1月发布,一些开发人员集合在犹他州寻找一个文档驱动的、“重量级的”软件开发方式,这就像当时的黄金标准瀑布法则。
尽管实际的敏捷开发实践遭遇犹他州的会议,但是那次会议室一个分水岭,这次会议有助于推动敏捷开发的发展。快进十年,敏捷软件开发变得越来越普遍,软件公司采用敏捷方法论 像:Scrum和XP(极限编程)。尽管存在潜在缺点,但是敏捷领域的专家依然认为,从总体来看,实施敏捷开发对软件开发是有益的。
敏捷宣言的创始人之一,当时任职于Tektronix的Ward Cunningham表示,我必须说,我们已经改变了整个行业。对计算机编程的失败和编程危机的探讨已经死在了敏捷脚下,我已经不再听到别人谈论这个问题了。
IBM首席敏捷开发专家Scott Ambler表示,敏捷宣言实现的目标远远超过了其预期。这对整个行业具有相当重要的意义。现在你很难找到不愿意使用敏捷开发的人了。对敏捷和迭代开发成功的预期似乎远远高于传统开发。
但是,敏捷宣言的另一位创始人Kent Beck,也是XP的创始人,就很少谈论敏捷开发这十年的效益问题。他说,我没办法言简意赅地在这个方面回答你的问题。
Beck表示,敏捷已经让人们更仔细地思考如何开发软件,但是并不是每个人都会使用敏捷,依然有人为一个项目寻找告诫列表,这也不是敏捷的内容。
敏捷开发的成功需要什么?
Cunningham表示,敏捷是需要努力学习的。在你开始做敏捷开发之前,你必须熟练掌握所有的技术。
Cunningham强调说,对于敏捷开发来说,扎实的编程技术是非常必要的。很多人进入这个领域是因为他们发现编程是这么枯燥,而不想再做这个。如果你喜欢编程,并想做编程,这将会对你的项目会有很大的帮助。
组织性的障碍也会在实施敏捷理念中出现。BigVisible解决方案的敏捷开发指导Skip Angel表示,只要能够频繁地思考寻找交付软件,敏捷就是行之有效的,因为可以在一个较小模块中思考而非要从整个项目中思考。我所思考的是对组织的挑战,他们没有自己的组织设置方式,可以提供更快的交付。
Angel补充到,项目可能会陷入费时的流程中,开发者需要是使用不断的集成来避免瓶颈。
软件公司SmartBear的副执行总裁Ian McLeod表示,敏捷开发也不是万能的良药。你还是需要把它做好,你可能做不好敏捷。
Bech表示,1997年曾经成功使用了敏捷开发。开发团队使用了短迭代,大量的单元测试,并于客户进行了密切的沟通。开发统一通信系统的AttainResponse公司的首席执行官Wade Weston表示,这帮助我们发展得更快,并让我们保持在需要的轨道上。AttainResponse每周都要进行开发冲刺。Weston表示,我们做短期冲刺,我们会高度集中在我们在那周需要完成的项目中。
Weston表示,但是让每个人都使用敏捷开发依然是个问题。但是我们团队中的一员不断地告诉我,他想要更多的指定条件。我也不断地告诉他,我们已经很快了,因为我们没有指定条件了。底层的需求文档是浪费时间的。
敏捷编程的方法
Scrum和XP脱颖而出,也许是最主要的敏捷方法论。Beck认为XP是注重工程方面开发的方法。XP更多地提到程序员实际做什么,而Scrum是项目管理方法论。
Cunningham表示,可以区分XP的是,它是一个系统而不是一个解决方案。它是利用系统的方法来编程。
Angel表示,Scrum注重如何管理和交付工作,而XP注重如何来工作。
Polle指出,Scrum和XP绝对是两个主要方法论。你经常会看到Scrum团队采用了XP,而XP团队采用了Scrum。
Poole表示,另一种方法论是Kanban,该方法论来源于制造生产过程和瘦软件开发概念。Kanban具有极少的限制,并且它关注客户价值流。Angel补充到,瘦软件编程关注组织效率、优化价值、减少浪费,并努力确保好流程运行良好。
McLeod表示,RUP(Rational统一编程)也是一种被称为敏捷的方法。RUP的特点是有很多文档。RUP可以是一种敏捷方法论。它是一种过程框架。完全由你研究的方法而定。
Ambler还引用了DSDM,也就是动态系统开发方法,DSDM是有点像RAD(快速应用程序开发),一个额外的进程。RAD与敏捷的区别在于,它注重迭代开发但是不加强协作。
McLeod把敏捷方法论看作是是和迭代开发相似的方法。它们之间没有太大的区别。
Cunnigham表示,所谓“灵活”是在犹他州上特意挑选出来的词语。人们认为它是一种轻量级方法。但是也有人认为“轻量级”这个词有其负面的含义,也是肤浅的。