软件工程编年史,一文读懂项目管理发展史。

Sep 20, 2019

软件工程伴随着计算机的发展而发展,可以说从计算机出现的第一天起,围绕软件工程的话题就不断。我们也被各种各样的名词搞的云里雾里:瀑布、全面质量管理、Scrum、XP、DevOps。 终于,本文能把这些名词梳理起来了。

软件工程架构


下面就跟随我们一起回顾这一段历史:

1940s,Taiichi Ohno在为日本丰田汽车设计生产系统时引入看板。

1950年,PDCA(Plan/Do/Check/Action)管理循环的提出。这是由日本高管们在1950年日本科学家和工程师联盟研讨班上学的戴明环改造而成。PDCA最先是由休哈特博士提出来的,由W. Edwards Deming(戴明)把PDCA发扬光大,并且用到质量领域,故称为质量环和戴明环。

1956年,Herbert D. Benington在会议「Symposium on Advanced Programming Methods for Digital Computers」上做了瀑布模型的报告。

1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词。而1960年代中期开始爆发众所周知的软件危机,为了解决问题,在1968、1969年连续召开两次著名的NATO会议,并同时提出软件工程的概念。

1960s,美国的著名专家费根堡姆提出全面质量管理。它是在传统的质量管理基础上,随着科学技术的发展和经营管理上的需要发展起来的现代化质量管理,现已成为一门系统性很强的科学。

1977年,丰田汽车将Ohno System发展为JIT(Just In Time,即时生产)/TPS(Toyota Production System, 丰田生产理论)。

1980年,摩托罗拉工程师Bill Smith提出了一套改进流程的技术和工具,名为Six Sigma (6σ, 六西格玛)

1983年,Benington重新扩展和解释了瀑布模型并发表了论文。

1984年,美国海军邀请几位杰出的咨询顾问来讨论如何提升海军的运作效率。结论吸收了W. Edwards Deming的质量管理理念。1985年,美国海军称其为“全面质量管理”。

1986年“Scrum”一词来自1986年的哈佛商业评论文章,其中作者Hirotaka Takeuchi和Ikujiro Nonaka将高性能,跨职能团队与橄榄球队使用的Scrum形成进行了比较。

1988年,精益原理首次被John Krafcik在他的论文中提出「Triumph of the Lean Production System」,使得这一从日本制造业产生的理念发扬出来。

1991年,V-model作为瀑布模型的扩展被提出。

1991年起的快速应用程序开发 (RAD);

1994年起的统一过程 (UP) 和动态系统开发方法 (DSDM);

1995年的Scrum提出;

1993年,Jeff Sutherland和他在Easel公司的团队把1986年那篇文章中的概念与面向对象开发、基于经验的过程控制、迭代和增量开发、软件过程和生产率研究、复杂适应系统中的概念结合起来,创立了用于指导软件开发工作的Scrum过程。

1995年,Ken Schwaber在OOPSLA 1995(Schwaber 1995)上发表第一篇关于Scrum的论文。

1995年,Jack Welch(杰克·韦尔奇,有“全球第一CEO”之称)将Six Sigma作为其在通用电气的核心理念。

1997年,Jeff De Luca在新加坡一家大型银行实施了一个50人15个月的软件开发项目,并提出了FDD(Feature-Driven Development,特征驱动开发)

1997年,UML被标准化组织OMG(Object Management Group)接受。

1997年,SQA公司研发出SQA流程,后续被Rational Software收购。

1999年,项目管理这个交叉学科出现。第一本描述RUP(统一过程)的书《The Unified Software Development Process》发布。

还有在国内耳熟能详的极限编程 (XP), 也是起始于 1996年。

极限编程是Kent Beck在其负责C3工资项目(Chrysler Comprehensive Compensation System,克莱斯勒综合补偿系统)中创立的。从1996年3月起,Kent开始改善项目中的开发方法,并于1999年发布了《极限编程释义》。2000年,公司被戴姆勒奔驰收购,C3项目终止。

2001年, 17位软件开发大咖在犹他州雪鸟的一个度假村会面, 重点讨论了这些轻量级开发方法,讨论的结果是他们一起发表了《敏捷软件开发宣言》,至此,敏捷领域的“圣经”就诞生了。

Kent Beck, Ward Cunningham, Dave Thomas, Jeff Sutherland, Ken Schwaber, Jim Highsmith, Alistair Cockburn, Robert C. Martin, Mike Beedle, Arie van Bennekum, Martin Fowler, James Grenning, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, and Steve Mellor.

2003年,Mary Poppendieck和Tom Poppendieck在他们的著作「Lean Software Development」中提出精益软件研发。

David J. Anderson于2004年首次将看板应用于IT、软件开发和知识工作行业。

David J. Anderson, Eli Goldratt, Edward Demmings, Peter Drucker等人使用拉动系统、排队论和流程等概念来定义看板方法。他在2010年出版的第一本关于看板的书 - “看板:技术业务的成功进化变革”,是知识工作看板方法最全面的定义。

2005年,UML被ISO(国际标准化组织)批准为ISO标准。

2007年,SAFe(Scaled Agile Framework)正式提出。

2009年,第一届Devops大会(Devops days)在比利时根特举行。会议由比利时顾问、敏捷管理专家Patrick Devois创立。

2012年,Alanna Brown构思和发布了DevOps报告。

2014年,Nicole Forsgren, Gene Kim, Jez Humble等人发布了DevOps年度报告。

2014年,Lisa Crispin和Janet Gregory的著作「More Agile Testing」中加入了DevOps中的测试。

2015年,Nicole Forsgren, Jez Humble和Gene Kim创立了DORA(DevOps Research and Assessment)。