基本信息
- 原书名:I. M. Wright’s“Hard Code”:A Decade of Hard-Won Lessons from Microsoft,Second Edition
- 原出版社: Microsoft Press

【插图】

编辑推荐
《代码大全》姊妹篇,资深软件开发专家30余年工作经验结晶,微软公司软件工程师必读之书,被誉为“软件行业的财富”
从软件开发流程、技术、方法、项目管理、团队管理、人际沟通等多角度总结出90余个具有代表性的问题并给出了解决方案,值得所有软件工程师研读
内容简介
计算机书籍
《代码之殇(原书第2版)》是《代码大全》的姊妹篇,资深软件开发专家30余年工作经验结晶,被誉为“软件行业的财富”,微软公司软件工程师必读之书。它从软件开发流程、技术、方法、项目管理、团队管理、人际沟通等多角度总结出90余个具有代表性的问题(大多数问题可能会给公司或软件项目带来毁灭性灾难),并给出了问题的解决方案和最佳实践,值得所有软件工程师和项目管理者研读。
《代码之殇(原书第2版)》将这90余个问题分为10章:第1章讨论如何通过管理风险、范围和沟通来保障项目按时完成;第2章介绍消除经验主义的大量过程改进的方法与技巧;第3章讨论消除低效率的策略;第4章主要讨论开发者与其他工种之间的关系;第5章重点阐释软件质量问题;第6章解析软件设计的基本原理和错综复杂的本性;第7章探讨如何规划职业生涯;第8章分析工作与生活中存在的缺点的原因与纠正措施;第9章讨论如何进行有效管理;第10章分析如何成功应对一个软件业务所面临的挑战。
目录
《代码之殇(原书第2版)》赞誉
译者序
序
前言
第1版前言
第1章项目管理失当1
2001年6月1日:“开发时间表、飞猪和其他幻想”2
2001年10月1日:“竭尽所能,再论开发时间表”4
2002年5月1日:“我们还开心吗?分诊的乐趣”7
2004年12月1日:“向死亡进军”11
2005年10月1日:“揭露真相”14
2008年9月1日:“我得估算一下”18
2009年5月1日:“一切从产品开始”21
2009年9月1日:“按计划行事”25
2010年5月1日:“敏捷的团队合作”28
第2章过程改进,没有灵丹妙药31
2002年9月2日:“六西格玛?饶了我吧!”32
2004年10月1日:“精益:比五香熏牛肉还好”33
2005年4月1日:“客户不满”39
译者序
IT一词,通常让人联想到的是那些技术极客——一群苦大仇深的码农形象,就像《代码之殇(原书第2版)》的书名一样被人误解。其实,软件开发更体现的是一种团队合作、企业文化乃至一人为人处世的态度。《代码之殇(原书第2版)》不是高屋建瓴、看不见摸不着的软件工程理论教科书。作者是微软的一名资深项目经理,《代码之殇(原书第2版)》内容是他从日常工作生活的点滴体会中总结出来的。他不仅把软件工程的一些原理技巧在实践中加以诠释,同时阐述了如何处理团队成员之间的关系,如何面对职业生涯规划,如何树立正确的工作生活态度。
感谢我的挚友,曾晋瑞。他是一个乐于工作,享受生活,激情四射的人;凡事严谨,追求完美,理想主义的人。当大家都在追问中国如何才能出个乔布斯的时候,我只感叹中国没这土壤,否则曾晋瑞就是。当我还未正式翻译此书的时候,他就对我说:“林锋,你翻译到哪了,你这书可要好好翻译,起码得从头到尾修改十遍。”我只能表示!!!_。他在《代码之殇(原书第2版)》的翻译过程中给予我莫大帮助,一旦我遇到晦涩难懂的内容,只要我求助于他,他就能从亢奋的工作状态中抽出时间,聊上好长时间;也会跑到我家,花上半天的时间,为的只是讨论某段文字的确切意思,甚至用哪个词更为精妙。这里再次表示感谢!
这是本人翻译的第一《代码之殇(原书第2版)》,且原书很多专业术语出自微软内部,译文中可能存在不少错误,误漏之处,请不吝指正,想必,这样的积累日后定能为读者带来更高质量的译本。
最后,分享一句译完《代码之殇(原书第2版)》的个人感悟:你的理想不用很具体,只要你有那份热忱,即使你看不清未来是什么,你也会像我一样,向最初我的景仰人物侯捷先生迈进一步。
如愿与《代码之殇(原书第2版)》译者进一步沟通,请Email:xlfg@yeahnet,或新浪微博:@大黄蜂的思索。
林锋
前言
献给当初对我说“好的,我帮你编辑一下”的人我的妻子。
你手上拿着的是一本关于最佳实务的书,它会比较乏味,但也许会有点吸引力,你能从中得到知识,读后甚至对你产生些许影响,但读起来肯定是干巴巴而无趣的。为什么这么说呢?
最佳实务的书是乏味的,因为这个“最佳”是跟具体的项目、具体的人、他们的目标以及偏好紧密相关的。一个实务是不是“最佳”,大家可能看法不一。作者必须把实务列举出来让读者自己选,并分析在什么时候、什么原因选择哪个方案作为“最佳”。但是这种做法是现实的、是非分明的,它会让人感到乏味和厌烦。通过多个案例的研究使原本模棱两可的概念泾渭分明,从而会使文字有味一些,但作者仍必须把选择的机会留给读者,否则作者就会显得傲慢、教条并且死板。
然而,人们喜欢看到傲慢、教条、死板的学者之间的针锋相对。大家喜欢引用学者们的观点片段,与朋友和同事一起讨论。为什么不将对这些最佳实务的争论作为观点栏目来发表呢?唯一的条件就是只要有人愿意将自己扮演成一个思想保守的傻瓜。
《代码之殇(原书第2版)》的由来
2001年4月,在历经了Bank Leumi、Jet Propulsion Laboratory、GRAFTEK、Silicon Graphics及Boeing等公司总共16年的职业程序员生涯,并在微软做了6年的程序员和经理之后,我转而加入了微软内部的一个以在公司范围内传播最佳实务为职责的团队。当时这个组正在运作发行一个名叫《Interface》的月刊网络杂志的项目。它很有意义且富有知识性,但同样也是干巴巴而无趣的。我那时建议增加一个观点栏目。
我的上司Bill Bowlus建议由我来写。我拒绝了。作为一个半大孩子,我努力使自己成为一个协调员,撮合多方产生成果,而成为一个爱唠叨的实务学者会毁掉我的名誉和效力。因此,我当时的想法是说服一个大家公认的偏执的工程师来写,他可能是我在微软6年工作经历中接触过的一位特别固执的开发经理。
但Bill指出,我有22年的开发经验,4年的开发管理经验,写作技巧也还行,而且有足够的态度来做这件事,我只需要放下自身的心理包袱。另外,其他的开发经理都忙于常规的工作,不可能每个月来为我们写一些个人观点。最后Bill和我想出了一个用笔名撰稿的点子,于是“代码之殇”(Hard Code)栏目诞生了。
从2001年6月开始,我使用“I.M.Wright,微软逍遥的开发经理”(I.M.Wright,Microsoft development manager at large)这个署名为微软的开发者和他们的经理写了91个“代码之殇”观点栏目。这些栏目的标签行都打上了“绝对诚实,直言不讳”(Brutally honest,no pulled punches)的标语。每个月,有成千上万的微软工程师和经理会阅读这些栏目。
前16个栏目在内部网络杂志《Interface》上发表了。这些栏目都是编辑(Mark Ashley和Liza White)给我分配的。我和《Interface》的美工Todd Timmcke还一起制作了作者的很多搞怪照片。当网络杂志停刊的时候,我才得以有喘息的机会,但也停止了写作。
14个月之后,在我们组的编辑Amy Hamilton(Blair)、Dia Reeves、Linda Caputo、Shannon Evans和Marc Wilson的帮助下,我又开始在内部站点上发表我的栏目。2006年11月,我将所有的栏目转移到一个内部的SharePoint博客上。
2007年春天,正当我打算度过几年前奖励给我的假期的时候,我现在的经理Cedric Coco给了我在休假期间将《代码之殇》出版成书的授权。而微软出版社的Ben Ryan也同意了。同年,《代码之殇(原书第2版)》第1版出版。
除了我已经提及的人,我还想感谢《Interface》的其他成员(Susan Fario、Bruce Fenske、Ann Hoegemeier、John Spilker和John Swenson),其他帮助《代码之殇(原书第2版)》出版的人(Suzanne Sowinska、Alex Blanton、Scott Berkun、Devon Musgrave和Valerie Wolley),支持我的管理层(Cedric Coco、Scott Charney和John Devaan),曾审核过我的栏目并提出过很多主题的团队成员(William Adams、Alan Auerbach、Adam Barr、Eric Bush、Scott Cheney、Jennifer Hamilton、Corey Ladas、David Norris、Bernie Thompson、James Waletzky、Don Willits和Mitch Wyle),以及写下第1版“前言”的Mike Zintel。关于第2版,我想重点提下《代码之殇(原书第2版)》的审核人员及长期读者(Adam Barr、Bill Hanlon、Bulent Elmaci, Clemens Szyperski、Curt Carpenter、David Anson、David Berg、David Norris、Eric Bush、Irada Sadykhova、James Waletzky、JDMeier、Jan Nelson、Jennifer Hamilton、Josh Lindquist、Kent Sullivan、Matt Ruhlen、Michael Hunter、Mitchell Wyle、Philip Su、Rahim Sidi、Robert Deupree(Jr)、William Adams和William Lees);还有James Waletzky,他在我休假的时候为我的读者写了两篇专栏文章;Adam Barr和Robert Deupree(Jr),他们发动我为专栏记录了一段播客并发布出去;Devon Musgrave和Valerie Woolley,是他们让第2版顺利出版;我的上司(Peter Loforte和Curt Steeb)对我的努力给予了莫大的支持;Mitch为我写了第2版的“序”;以及我的妻子Karen,当我让编辑加入Xboxcom工作时,她接手了我的专栏编辑工作。
最后,我要感谢我才华出众的中学英语老师(Alan Shapiro),以及那些慷慨给予我反馈的读者们。尤其是,我还要感谢妻子Karen和儿子Alex和Peter,他们让我做任何事情都充满信心。
《代码之殇(原书第2版)》的读者对象
组成《代码之殇(原书第2版)》的 91个观点栏目最初是写给微软的开发者及其经理看的,尽管它们也是我过去在软件行业6个不同的公司、32年的工作经验中提炼出来的。编辑和我一起修改了语言表达,注解了那些微软内部的特殊用语,使得《代码之殇(原书第2版)》适合于所有软件工程师和工程经理阅读。
我在这些栏目中表达的观点是我个人的,不代表我现在和以前任职过的任何一家公司,包括微软。我在栏目中的注解以及本简介中的言论同样都是我个人的,与任何公司无关。
《代码之殇(原书第2版)》的结构
根据主题的不同,我把所有栏目分成10章。前6章剖析了软件开发流程,接下来3章重点讨论人的问题,最后1章批判软件业务运转方式。解决这些问题的工具、技巧和建议遍布全书。《代码之殇(原书第2版)》的最后还附有术语表方便大家参考。
序言
软件开发是项颇具挑战性的工作。我已经把它当成一种开创性的团队运动,这项工作不仅需要你记住之前做过什么,同时要记住没干过什么。我在微软工作的那段时间,Eric是我的知音。每当我受挫或失意的时候,通常不用我主动向他诉求,他似乎总知道该跟我讲些什么来帮助我;当我遇到难题需要帮助的时候,一个I.M.Wright专栏就会出现,它正是我所关心的问题之所需,这些问题在微软及其他软件开发机构都很常见。
一本《代码之殇》(Hard Code)在手就好比你办公室四周角落都呆着个Eric。在应对变化时你遇到麻烦了吗?Eric就是答案;你的团队缺乏斗志了吗?我笃定Eric对你总有好建议;质量问题困扰着你的代码吗?我知道Eric可以帮助你。通过使用笔名I.M.Wright,Eric以一种轻松愉快的方式为你解决软件开发问题,他在促使你思考的同时让你笑逐颜开。
但Eric并不只写一些你可能遇到的问题,他也萃取一些他所见到的公司的成功经验作为教程,这些公司开发并发布的产品及服务由全球数百万用户所使用。第2版囊括了丰富的最新建议及成功案例——它们很有价值,我经常将其作为我客户的必读之物。《代码之殇》是种珍宝,为人人书架之必备。
Mitch Lacey
《代码之殇(原书第2版)》顾问,微软前雇员,现供职于麦切.莱西联合有限公司
2011年5月
媒体评论
——Chad Dellinger,微软公司企业架构师
软件工程师很容易就会迷失在代码中,更糟糕的是,甚至会迷失在过程中。因此迫切需要Eric在本书中提出的实用建议。
——David Greenspoon,微软公司技术战略总经理
“I.M.Wright'’写的关于开发时间表的文章真是太棒了!它在我所参与的基础项目上同样适用。
——lanPunergill项目经理
我们真的很喜欢这些栏目。它们不仅实用,而且很全面!我喜欢它们的另外一个原因是,当我在指导初级开发人员的时候,我可以把这些栏目推荐给他们;他们也会记住这些栏目,因为它们都是那么有趣。
——Malia Ansberw,高级软件工程师
Eric,干得好!我觉得你在这个专栏中说得非常中肯。我想,该向管理者传递这样的信息: “不要害怕尝试”。事情的真实情况跟理想化的理论之间差别是非常大的。
——Bob Fries,合作伙伴开发经理
Eric,你那篇关于死亡行军的栏目来得正是时候,我们正打算在未来几周内开会讨论功能削减的事情呢!我们以前付出很大代价才学到的那些教训,不知怎么回事,总是很容易就忘记了;Eric的栏目对大家起到了很好的提醒作用:
——Bruce Morgan,首席开发经理