敏捷发展简史

提到敏捷(Agile)大多数人会想到2001年敏捷宣言的发表,但是实际上敏捷软件开发运动并不是起源于敏捷宣言的发表,它可以追溯到更早的时候。今天我们一起了解一下敏捷的产生历史,了解一下敏捷产生的时空背景以便于更好的理解与使用敏捷。

1970年至1990年是软件工程的基础理论和实践的爆发时期,当时的基本思路是将软件工程等同于物理工程,并尽可能在设计和构建过程中借鉴物理工程项目的管理理论与方法,最终产生了大家都熟悉的瀑布模型。

瀑布模型完整定义了软件全生命周期的各个阶段,与交付可用软件相比,瀑布模型强调文档的作用,并要求每个阶段都要仔细验证,它的优点是各个阶段划分比较清晰,检查点比较明确,但是对于变化的响应能力较差,评审过程和质量比较难控制,一旦出现评审没有发现的问题就可能影响到整个系统,因此它只适合那些需求可以完整定义且不易变更的软件系统。其过程如下图所示。

敏捷发展简史

这种方法给管理者带来了可以像控制制造业项目一样控制软件项目的错觉,认为每个阶段都是可以精准计划并可以得到有效控制,然而问题的关键是在十年或更长时间里,机械或土木工程项目很少发生大的变化,例如您今天设计的桥梁很少会在一两年内发生大的变更,而软件项目则完全不一样。软件项目很少能具有和传统工程项目一样的稳定性,业务需求可能在一夜间发生很大变化,而我们完成一个软件的周期至少需要几个月甚至几年的时间,如何面对随时可能出现的变化呢?很明显软件工程需要一种不同以往的管理方法。

软件交付危机

到90年代初期,随着PC在企业中的逐渐普及,市场对定制化软件开发的需求越来越大,软件项目管理方法也遇到了前所未有的挑战,这种危机经常被称为”软件开发危机“,表现为软件系统交付的严重滞后。据当时的行业专家估计,一个软件项目从需求确定到软件交付需要经历大概三年左右的时间,这已经很难满足当时企业的快速发展需求,在三年里可能整个业务都发生了根本性变化,这意味着很多项目都不得不因为市场和业务的变化而被取消或延期,即使勉强交付了也可能已经无法满足企业的现实需求。这种情况在某些行业中表现的更为极端,比如在航空航天和国防领域,一个复杂系统可能需要经过20年才能投入实际使用,例如1982年开始服役的航天飞机中还在使用1960年代的信息和处理技术,高度复杂的软硬件系统通常需要数十年的时间进行设计、开发和部署。

敏捷宣言

随后越来越多的行业领导者尝试寻找更好的软件构建方法来改变这一切,他们期望能更快速构建可以工作的软件并将其交付最终用户,这个过程中出现了各种各样的被称作轻量级软件开发方法的实践。

2000年秋Kent Beck、Robert C.Martin、Martin Fowler三个人在ThoughtWokrs附近的一家咖啡厅见面商量组织各种轻量级流程倡导者聚集在一起,形成一个统一的宣言,并给这个峰会起了个名字 “轻量级过程峰会”,并拟定了邀请参会名单。2001年2月在犹他州的Snowbird召开了那次重要的会议。

敏捷发展简史

会议小组成员包括极限编程先驱Kent Beck和Ward Cunningham,Arie van Bennekum,Alistair Cockburn以及其他十二个人,这些人在敏捷社区中是众所周知的明星。下面是Robert C. Martin对参会人的回忆: 人数最多的是极限编程团队,包括Kent Beck,Robert C.Martin , James Grenning ,Ward Cunningham ,Ron Jeffries, 其次是Scrum团队,包括Ken Schwaber, Mike Beedle ,Jeff Sutherland,另外还有一些其它代表,他们是:

◦Jon Kern:特性驱动开发 FDD

◦Arie van Bennekum 动态系统开发方法 DSDM

◦Alistair Cockburn 水晶方法 Crystal

◦Andrew Hunt 和 Dave Thomas 务实的程序员组合

◦Brian Marick 是测试顾问

◦Jim Highsmith是 软件管理顾问

◦Stephen Mellor 在那是为了让我们保持诚实:代表模型驱动的哲学,从这个哲学看起来 每个方法都很可疑

◦Martin Fowler :对所有过程都持怀疑态度 但又都表示理解

这次会议后他们发表了著名的敏捷宣言,并在会后两周时间内总结出了12个原则作为对宣言的细化和补充。随着敏捷宣言的发表,Agile这个词开始在全世界传播,其中最为大家熟知的敏捷实践应该就是Scrum和XP了,大多数声称实践敏捷的团队都说他们正在使用Scrum。

下面我们重点介绍一下SCRUM

SCRUM的诞生

Jeff Sutherland和Ken Schwaber在90年代初构想了Scrum管理过程,在1995年对Scrum框架进行了梳理并发表了文章“ Scrum Software Development Process”,并在美国德克萨斯州奥斯汀举行的OOPSLA会议上完整介绍了这一框架。

Ken Schwaber和Jeff Sutherland从两位公认的管理思想家Takeuchi和Nonaka于1986年发表的突破性论文“ The New New Product Development Game”中继承了“ Scrum”的叫法。Nonaka和Takeuchi用“ Scrum”一词强调团队的重要性以及橄榄球等团队运动与成功开发新产品之间的一些类比。他们的论文中描述的研究表明,当小型的,自组织的团队作为团队来满足目标而不是任务时,就可以在开发复杂的新产品方面取得出色的成功。最好的团队是那些有方向的团队,他们有自己的空间来制定自己的策略,以寻找最佳的方法来实现自己的共同目标。团队需要自治才能实现卓越。而Scrum软件开发框架正是实现了文中描述的用于开发和维护复杂软件产品的原理和方法。

Scrum基于以下理念:对于新的复杂产品的开发,只有为小型且自组织的团队指定目标而不是特定任务,才能达到最佳效果。团队可以自由决定实现这些目标的最佳方法。Scrum还定义了有时间限制的迭代开发周期,其目标是交付有效的软件。

Scrum是一个Empirical Process(与Defined Process相对),它通过两个InspectAndAdapt周期来管理产品开发。Scrum非常适合软件项目。Scrum不仅是敏捷世界中最伟大的发明之一,还是当今最流行的框架之一。在开发和使用早期版本的Scrum的过程中,Ken Schwaber曾请求著名的过程控制研究工程师Babatunde A. Ogunnaike Tunde教授研究软件开发过程。Tunde研究了几种商业软件开发方法,得出的结论是瀑布式和预测性过程并不适合软件开发工作。他证实了Scrum的经验方法是首选的过程。经验主义用于复杂的工作,其中未知的事情多于已知的事情,并且鉴于变化和不确定性很高,预测能产生的价值很小。

SCRUM的流行

自1995年首次发行至今,Scrum已被全球众多软件公司所采用。今天,它被认为是敏捷软件开发中应用最广泛的框架。针对Scrum已经出版了1000多本书,该方法也已经成功地应用于其他领域,例如:制造,营销,运营和教育。

引用《人月神话》作者弗雷德·布鲁克斯(Fred Brooks)在“ No Silver Bullet—Essence and Accidents of Software Engineering”的文章中的观点:没有任何单一的技术或过程可以带来软件开发效率的显着提高。这句话对敏捷同样适用,并不是实践了Scrum或者XP就可以解决你的所有问题,先定义清楚你面临的问题,然后去找到适合你的那些实践。

Scrum专注于项目管理而不关注软件开发实践,它可以非常成功地与ExtremeProgramming结合使用。Jeff Sutherland认为Scrum是一个框架,其中包含了过去五十多年人们所发明的各种最佳实践,能找到最适合你的那种实践才是最关键的,Ken在接受采访时曾经说过:“不加调整地盲目应用任何技术都是有害的”,并将Scrum与下棋做了一个很好的类比:

“框架”一词的含义是没有指定太多细节,必须由使用框架的人员来决定如何做,我把Scrum等同于象棋游戏,您可以阅读国际象棋的官方规则手册,学习他们,然后您可以下棋,但是你离成为一个国际象棋大师还有很长的路要走。

 

附 SCRUM的发展脉络:

  • Scrum首先在Individual,Inc.,Fidelity Investments和IDX(现为GE Medical)中进行了尝试和完善。
  • 在2001年2月,Jeff和Ken在创建敏捷软件开发宣言的17位软件开发领导者中。
  • 发表敏捷宣言后,肯·施瓦伯(Ken Schwaber)担任第一任主席,成立了敏捷联盟。
  • 2001年,受肯特·贝克(Kent Beck)的启发,肯·施瓦伯(Ken Schwaber)与迈克·比德尔(Mike Beedle)合着了第一本关于Scrum的书《Agile Software Development with Scrum》。
  • 2002年,Ken Schwaber与Mike Cohn和Esther Derby共同创立了Scrum联盟,由Ken主持该组织,在随后的几年中,创建并发布了非常成功的ScrumMaster认证体系及其衍生产品。
  • 2006年,Jeff Sutherland创立了自己的公司Scrum.inc,同时继续提供和教授Scrum认证课程。
  • Ken在2009年秋天离开了Scrum联盟,并创立了Scrum.org,主要是通过Professional Scrum系列进一步提高了Scrum的质量和有效性。
  • Jeff和Ken在2010年首次发布《 Scrum指南》,并在2011年、2013年、2017年对其进行了逐步更新,从而建立了全球认可的Scrum知识体系。

来源:敏捷工坊,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/128450

侵权联系 投诉举报
返回顶部