3.7 软件工艺的历史
早在1992年,Jack W.Reeves就提出,软件开发更像手艺而非工程。虽说如此,但笔者依然认为软件工艺的真正发端是Andy Hunt与Dave Thomas在1999年写的《The Pragmatic Programmer:From Journeyman to Master》。2001年,Pete McBreen出版了《Software Craftsmanship:The New Imperative》,这本书中的大部分理念后来都体现在了软件工艺活动之中。
2002年春天,Ken Auer在北卡罗来纳州主持了软件学徒峰会(Software Apprenticeship
Summit),受邀参会的专业人士包括Pete McBreen、Ron Jeffries以及Robert Martin(Bob大叔)。那个时候,Auer已经开展了学徒制的培训工作。这次峰会的结论是呼吁创立软件学徒社团,虽说这项呼吁并没有引起多大关注,但它却转变了Object Mentor公司的态度,这家公司是由Bob大叔创立的。从那时起,Object Mentor就开始招收学徒。虽说没有严格的制度,但Object Mentor把很多软件学徒都培养成了胜任的开发者。
2006年秋,Micah Martin和Paul Pagel创立了8th Light公司,以体现软件工艺理念。创立者从一开始就把公司定位成软件工艺公司,旨在雇用学徒,并将其培养为训练有素的人才。8th Light公司招的是软件工艺师,而不是单纯的开发者,他们的这一举措受到了业界关注。
8th Light公司成立的时候,Dave Hoover加入了Obtiva公司(Obtiva公司后来于2011年8月被Groupon公司所收购)。8th Light公司刚启动学徒计划,Obtiva公司就开始提供学徒培训课程。两者之间展开了良性竞争。
虽说芝加哥仍有几家公司在推进软件工艺,但从2001年开始,这一领域就没有出现太大变化(直到2008年,Pete McBreen的那本书出版之后,才有了巨大改观)。敏捷软件开发在当时是个全新的概念,里面有很多原则、方式及技术,它们都在动摇着传统软件开发行业的基础。那时,业界对软件工艺并没有真正的需求,因为很多人都觉得业界所表现出来的那些大问题,只需要采取一种或几种敏捷开发方式就可以解决。
2008年8月,Bob大叔在“敏捷2008大会”(Agile 2008 conference)上面发表了主题演说,他在原有的四项原则之外提出了第五项原则,叫作“精品胜于次品”(craftsmanship over crap)。后来,他把这种说法改成“工艺重于执行”(craftsmanship over execution)。同年同月,他写的《Clean Code:A Handbook of Agile Software Craftsmanship》也出版了,另一本《The Clean Coder:A Code of Conduct for Professional Programmers》于2011年5月出版。它们可能是软件工艺领域里影响力最大的两本书。