Dave的致谢

我要从感谢那些给我第一次机会让我成为软件工程师的人开始。Irv Shapiro,Edventions公司的CEO,2000年4月在我们面谈结束时,他雇佣了我。那一年晚些时候,他把我介绍给了Steve Bunes(Edventions公司的CTO)和Risetime Technologies公司的CEO,他们两位都在我开始兴奋地步入Perl和程序设计的过程中指导了我。2001年4月,当Edventions跟许多其他的"dot-com"创业公司一样死去时,Steve在美国医学会(American Medical Association,AMA)为我说了好多美言,在那里我度过了接下来的三年,从互联网炸弹(dot-bomb)的灾难中挺了过来[1]。我要重复一下在Irv雇佣我的那个晚上,我向他敬酒时说过的话:“感谢你,Irv,感谢你愿意在我这个异教徒身上冒险一试。”

在美国医学会有两个人给了我第一次超越入门语言的机会。John Dynkowski从我身上发现了一些潜力,让我去做医学会最初的几个J2EE项目。他为这事费了不少的政治成本,我在他的部门工作的18个月里,他不断地鼓励我。Doug Fedorchak,我的直属上司,给我充分的自主权,让我向上层管理者推销极限编程(Extreme Programming)方法,并让我启动了医学会里的第一个极限编程项目。感谢你们,John和Doug,是你们允许像我这样经验不足却又热情洋溢的程序员来尝试自己的思想,并在你们的组织里“兴风作浪”。

如果要我说出一个对我和我的职业旅程产生了最大影响的人,那他就是Wyatt Sutherland。2002年我在芝加哥敏捷开发者团体(Chicago Agile Developers group,ChAD)中遇见Wyatt,那时他是团体的负责人。我向Wyatt提议让我做他的“学徒”,他同意定期跟我会面,共进早餐和午餐。他是一名四处奔波的敏捷开发顾问、一所本地大学的乐队指挥,还是四个孩子的父亲。尽管如此,他还是做到了与我的定期会面。谢谢你,Wyatt,谢谢你那些年对我的指导。这是一份无价的礼物,让我有信心离开美国医学会,并立志到Object Mentor或ThoughtWorks这样的公司去工作。

我还要感谢我的前雇主ThoughtWorks,是她让我接触了一大群有兴趣为本书献计献策的人,尤其是我的合著者Adewale Oshineye。感谢你,ThoughtWorks的首席科学家Martin Fowler[2],感谢你抽时间和我在一起分享你关于写作的见解。2005年,Obie Fernandez邀请我参加亚特兰大敏捷开发会议并作关于学徒模式的报告,ThoughtWorks慷慨地为我支付了路费。感谢你,Obie,感谢你在奥本冈时在我们共同的项目中给予我的支持与鼓励,感谢你邀请我参加亚特兰大敏捷开发会议,感谢你在我错过了回家的航班时让我睡在你的住所。感谢你,我的朋友Laurent Bossavit,你在2005年法国极限编程会议上介绍了我们的模式,并帮我把会议抄本翻译成英语。感谢你,Daragh Farrell,感谢你在2005年悉尼Geeknight会议上介绍了我们的模式,并将讨论的视频发给了我。感谢你,Linda Rising,感谢你邀请我和Ade参加了2005年的“程序的模式语言”研讨会,在那里我们收到了大量重要的反馈,而且第一次(迄今为止也是唯一一次)有机会见了面(再一次感谢ThoughtWorks让Ade从伦敦飞到芝加哥来参加这次研讨会)。

在我刚开始研究这些模式时,我接触了很多软件开发社区的知名人士。他们付出宝贵的时间通过电话或电子邮件与我交流,基于他们数十年的经验提供反馈和建议。我非常感激Ken Auer、Jerry Weinberg、Norm Kerth、Ron Jeffries、Linda Rising、Dave Astels,还有Pete McBreen,感谢他们付出宝贵的时间在我写作过程中给予指导。同时,我(还有后来的Ade)也接触了数十名经验并不那么丰富的人(就像我一样),从他们那里寻求一些关于模式的输入,并从他们的故事中挖掘具有普适价值的主题。

非常感谢以下人士:Adam Williams、Chris McMahon、Daragh Farrell、Desi McAdam、Elizabeth Keogh、Emerson Clarke、Jake Scruggs、Kragen Sitaker、Ivan Moore、Joe Walnes、Jonathan Weiss、Kent Schnaith、Marten Gustafson、Matt Savage、Micah Martin、Michael Hale、Michelle Pace、Patrick Kua、Patrick Morrison、Ravi Mohan、Steven Baker、Steve Tooke、Tim Bacon、Paul Pagel、Enrique Comba Riepenhausen、Nuno Marques、Steve Smith、Daniel Sebban、Brian Brazil、Matthew Russell、Russ Miles,还有Raph Cohn,感谢他们与我通信,并把他们的思想和故事讲给我们,供我们使用。

2008年,我们启动了http://apprenticeship.oreilly.com,在上面公布了这些模式内容,以期获得来自社会的反馈。感谢所有为此作出贡献的人们,包括Julie Baumler、Bob Beany、Antony Marcano、Ken McNamara、Tom Novotny、Vikki Read、Michael Rolf、Joseph Taylor,特别要感谢Michael Hunger,他是论坛上的活跃分子,在多次手稿复审中为我们提供了极好的反馈。

我还要对联合太平洋捷运西线(Metra Union Pacific West Line)列车上每天的乘客们表示感激,这条线路从芝加哥洛普区(Chicago's Loop)开到西部郊区。本书的绝大部分内容都是在这列像图书馆一样安静的列车上写就的。感谢你们,在我撰写本书时,你们都静静地读着你们的书。明天见!

2006年,我加入了Obtiva公司,当时Kevin Taylor说服了我,他说我应该成为公司的第四名雇员,而不是转包商。这绝对是个好建议,而且我从许多方面得到了回报。我要感谢Kevin,感谢他支持我未经验证的想法,将公司的一部分交由我支配,并且收拾那些不断被我制造出来的麻烦,照应公司业务中那么多乏味透顶却又至关重要的方面。我为公司的未来感到振奋。Kevin允许我实施的未经验证的想法之一就是建立Obtiva公司的软件工作室,来带领那些我们可以培养成高级开发者的软件学徒。自从2007年4月启动这个工作室,我们带出了六名学徒,我必须向前三名软件学徒(Brian Tatnall、Joseph Leddy和Nate Jackson)致以诚挚的谢意,他们忍受了我太多的缺点和缺乏经验的表现。这些小伙子们所经历的试验和错误使我们逐渐改善了最近三名学徒(Colin Harris、Leah Welty-Rieger和Turner King)的训练过程。感谢所有六位学徒,感谢你们的奉献、热情,以及常常在一个并不理想的环境中学习成长的意愿。

Mary Treseler就是那个鼓励我们发布这一项目的人。自从2005年她第一次读到我们最初的几个模式,就在心中产生了共鸣,虽然她自己并不是一名程序员。感谢你,Mary,虽然我们并没有写作的经验,你仍然愿意倾听我们的意图,而且这些年一直坚持耐心地同我们交流。

我很幸运,成长在一个非常和睦的家庭中。尽管我们搬了好几次家,但我的爸爸妈妈作为孩子的父母、彼此的爱人和基督信徒,处处给我们树立榜样。有了他们的行为榜样,我从成人、结婚到为人父母的过程都很顺利。从很早的时候,Marcia Hoover和Rick Hoover就成了鼓励我写作的持续动力。感谢你们,妈妈,爸爸,感谢你们开发了我喜欢写作的天性。

尽管我直到26岁才开始编程,但我并没有浪费组建家庭的时间,女儿出生时我24岁,在我研究生毕业的几个月前。尽管在那种情况下组建家庭颇具挑战性,但我的孩子们带给他们父亲的一样东西就是让我有了对自身责任的高度关注。自从1999年Rose出生以后,我不敢一天不工作,对一个正开启一条新的职业道路的人来说,这是极大的动力。随着孩子们从婴儿长大成学龄的孩子,我从观察他们克服学习过程中的障碍当中得到了启示。这提醒了我,让我谨记活到老学到老,像他们那样顽强地探求知识。Rose、Ricky,还有Charlie,感谢你们无条件地爱着老爸,并能忍受你们的第四个“兄弟”:老爸的笔记本电脑。现在这本书已经写完了,你们以后见到它的时间应该会少一些了。

我的妻子,Staci,嫁给了大学足球队的队长。11年之后,嫁给了一个带着黑色厚框眼镜的小伙子,这个家伙喜欢学习编程语言,并在闲暇时间发起新的编程用户组。这两个人都是我,Staci就这样跟着我一路走来,看着我同自己骨子里的那个奇客(geek)打交道。她忍受了我为所欲为地钻入了无休止的书籍、博客、开源项目、写作项目和雇主老板当中。没有人比Staci更了解我,也没有人比她更能拴住我的心。谢谢你,Staci Sampson Hoover,谢谢你使我能关注那些真正重要的事情。我会永远爱你。

最后,我要感谢上帝,感谢您无条件地爱着我,并在我很多次将要失落的时候把我救起。我希望我写的这本书能在某种意义上为您赞美。

[1]当年dot-com泡沫破裂被人戏称为dot-bombs。注意在英语中,com和bomb的发音仅仅开口时的辅音不同,一个是b,一个是c,再考虑到"bomb"是炸弹的意思,就会觉得这是很有意思的双关语。

[2]Martin Fowler,企业级软件领域的著名作者、演讲人和咨询师,著有《Refactoring》、《UML Distilled》及《Analysis Patterns》等软件领域的名著,几乎每本都是畅销书。