《软件工艺师:专业、务实、自豪》一3.7 软件工艺的历史

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月出版。它们可能是软件工艺领域里影响力最大的两本书。

时间: 2024-11-01 08:15:21

《软件工艺师:专业、务实、自豪》一3.7 软件工艺的历史的相关文章

《软件工艺师:专业、务实、自豪》一导读

前 言 那是20世纪90年代中期,我的职业生涯刚刚开始两年,巴西圣保罗有家大型国际公司宣布要一次招纳60名开发者.选拔过程分四个阶段,共需数周时间.第一阶段是三小时技术测试:第二阶段是两周的公司专有技术培训,培训结束后考试:第三阶段是一整天团队互动:第四阶段是最终一轮面试.该公司在一家大报纸上刊登了这一消息,大约有900名开发者应聘.那时我正在一家小软件公司上班,工作非常开心,但我觉得自己已经准备好干一番大事.因为第一阶段安排在周六,所以我决定去试试.不到300名开发者进入第二阶段,我也在其中.

《软件工艺师:专业、务实、自豪》一3.7.6 《软件工艺宣言》及讲解

3.7.6 <软件工艺宣言>及讲解 我们是有理想的软件工艺师,立志践行软件工艺并帮助他人学习软件工艺,以提升软件开发的专业水准.在此过程中,我们形成如下理念:不仅要开发出可行的软件,还要做工精良.不仅要应对变化,还要持续提升软件价值.不仅要注重个体与交互,还要打造专业的社团.不仅要注重客户协作,还要培养高效的伙伴关系.也就是说,在追求左侧价值的同时,我们也认为右侧那些价值是不容忽视的.软件工艺的实质就体现在宣言里"提升专业水准"这一表述之中.有一群经验丰富且才华卓越的开发者

《软件工艺师:专业、务实、自豪》一3.6 软件开发是手艺、生意、工程、科学,还是艺术

3.6 软件开发是手艺.生意.工程.科学,还是艺术 刚参与软件工艺活动时,笔者记得自己总在讨论什么是软件开发.一开始笔者觉得它是门艺术,过了好些年,又感觉它像是一门手艺.但笔者认识的许多人,包括自己所崇敬的一些人在内,却根本不赞同这种看法.有人觉得软件开发是生意,也有人认为它是工程.但很少有人把软件开发当成科学.无论是把软件开发看作艺术.手艺.生意.工程,还是把它看成科学,主张不同的开发者都觉得自己的理由非常充分.只要去听一听这些支持各自论点的理由,你就会发现,其中许多理由都能说得通,虽然某些理

《软件工艺师:专业、务实、自豪》一3.7.2 软件工艺概念走向全球

3.7.2 软件工艺概念走向全球 2009年2月26日,首次国际性的软件工艺大会在伦敦举办.2009年5月,也是在伦敦,Adewale Oshineye为渴望成为软件工艺师的开发者举办了一场研讨会,而Enrique Comba Riepenhausen则开始编写并传阅一本名叫<The Wandering Book>的书,这本书会由一位软件工艺师传给另一位,收集当时大家对软件工艺活动的整体看法和构想.世界各地的软件工艺师把自己对该职业的理解写到书中,并把书寄给另一位软件工艺师.在写下自己的想法时

《软件工艺师:专业、务实、自豪》一3.5 不要拘泥于定义

3.5 不要拘泥于定义 笔者更喜欢把软件工艺当成一种理念或思路,可以用来概括笔者所推崇的每一种具体做法.其实,包括笔者在内的许多开发者都可以说自己正在做着软件工艺所提倡的很多事情,例如认真对待自己的工作,力求上进,保持专业水准,通过帮助客户达成目标使客户满意,向其他开发者学习,分享自己的心得,以及帮助经验较少的开发者等. 只要你也看重上面这些事就好,即便不使用这个称谓,笔者也依然觉得你是软件工艺师.有些人不喜欢贴上这样的标签,甚至并不赞同软件工艺所采用的这套比喻.但是没关系,重要之处在于,我们身

《软件工艺师:专业、务实、自豪》一3.2 维基百科对软件工艺的定义

3.2 维基百科对软件工艺的定义 (软件工艺)"是一种强调软件开发者自身编码技能的软件开发方式.软件开发者发现主流软件业有诸多弊病,如过于关注经济事务而疏于培养开发者的责任心等,于是,他们通过软件工艺来扭转这种局面."笔者不喜欢这个定义.它非常呆板,而且没有抓住软件工艺师(software craftsman)这一身份对于软件开发者的真正意义.

《软件工艺师:专业、务实、自豪》一3.4 更为简洁的定义

3.4 更为简洁的定义 软件工艺就是软件开发的专业精神.这也许是软件工艺之中最重要的部分了,假如你读完本书之后只记住了一件事,那笔者希望被记住的就是上面这句话.

《软件工艺师:专业、务实、自豪》一3.7.5 《软件工艺宣言》的制定过程

3.7.5 <软件工艺宣言>的制定过程 为了使软件工艺峰会不像2002年的软件学徒峰会那样虎头蛇尾,Micah Martin觉得这次应该有一些成果才对.他想要得到一些可以落在纸面上的东西,也就是说,他在这次峰会上的主要目标是编订某种形式的文档.与会者讨论了很多问题,其中包括软件工艺师和软件学徒的含义.他们也讨论了这份决议文是否尚无先例,到底应不应该产生这样一份决议文,若是应该,那这份文件又是针对谁而写,其中需要写哪些内容.大家都把各自的想法画在了白板上面,虽然收集到不少好点子,但白板上面的内容

《软件工艺师:专业、务实、自豪》一2.7 敏捷软件开发与软件工艺的关系

2.7 敏捷软件开发与软件工艺的关系 经常有人误解软件工艺,认为它与敏捷开发是互斥的,是用来取代敏捷开发的.事实完全不是这样,它们能相互补充.时下的敏捷开发可以给软件组织及软件行业提供一套新思路.敏捷开发方式关注软件产品的价值.提倡根据价值排定优先级.简化繁琐的规章制度.减少浪费.扩大开发人员的参与范围,并提供快速反馈.这使得公司能够更迅速地应对变化,从而变得更加敏捷.敏捷开发方式帮助软件公司做正确的事.而软件工艺则涉及软件开发的专业技术层面.软件工艺是一种理念,许多开发者采用这种理念来激励自己