首页>参考读物>工商管理>公司治理

微软规划:领先之道
作者 : 爱德.沙利文
译者 : 周乐平
丛书名 : 网络经济
出版日期 : 2002-04-24
ISBN : 7-111-09769-6
定价 : 29.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 412
开本 : 16开
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书比其他工程管理书籍更加深入地探讨了来自于实践经验的行动战略和坚韧不拔的精神。这些战略和精神将帮助您创建一个优秀的小组,并指导他们推出世界级的软件。您将从下面的主题中获得您所需要的任何东西。
1.人才与组织;揭示了招聘、面试和保留合适的人才及创建正确的企业组织结构的方法,以及为优秀软件的开发工作创建良好的企业文化方法。2.工具与方法;揭示了获得最好的开发工具的方法;并确定了质量保证和发行工程中正确的处理方法。3.定义与计划;揭示了管理需求、可用性模型、技术基础和进度计划之间主要关系的方法。4.工程的执行;揭示了通过及早发现和解决问题以保持工程进度的方法,还指出了执行一个合理的测试版本计划已获得有利产品测试的实际反馈的方法。5.发行与结束;揭示了管理工程结尾阶段、确保产品做好发行准备、奖励和表扬小组成员贡献以及为下一个工程做准备的方法。

图书特色

作为一个在软件行业工作了18年之久的资深人士,爱德·沙利文曾获得梅里马克大学计算机科学学士学位。后来,他又获得波士顿大学计算机科学硕士学位。
爱德曾在新罕布什尔州纳舒厄市运用Spitbrook企业软件工程工具为数字设备公司(Digital Equipment Corporation)工作了11年。他参加了大量的工程开发工作,其中包括开发基于VAX/VMS操作系统的软件工具,并多次担任管理角色。最终,他加入了数字设备公司的咨询部门,并主管为一种客户参与管理系统开发的自定义软件产品的开发和任命工作。这种管理系统用于便携式电脑,其成本为600万美元。
1994年,爱德加入了一个叫NuMega技术公司的新兴企业。最初,他的职责是BoundsChecker C/C++错误检测产品的开发主管和产品营销主管。作为开发主管,爱德在NuMega公司经历了发行产品的四个重要时期。作为第一个产品营销主管,他在产品的开发、沟通、广告和形象策略等方面都发挥了重要作用。
后来,作为NuMega公司的工程主管,爱德带领公司进入了当时刚刚出现的Visual Basic、Java和Web开发等技术市场。他制定了产品战略,同时向四个不同的市场领域提供八种不同产品。在他的任期里,NuMega公司的产品赢得了许多行业奖项,其中包括《个人计算机杂志》颁发的“优秀技术”奖和“编者的选择”奖,六次“乔特·科勒”奖,以及几次“读者的选择”奖。
1999年,计算机器件公司兼并了NuMega公司。作为计算机器件公司NuMega实验室的现任开发中心主管,爱德管理着160多人,并且由他主管生产的产品年销售额达到4000万美元。

图书前言

我于1994年夏加入NuMega公司,身兼公司为微软视窗系统制作的纠错软件Bounds Checker开发小组主管以及产品-市场部门主管二职。当时,NuMega的员工只有14人。除了两个创立者之外,还有三个软件工程师、一个首席运营官、四个销售人员、一个办公室主管、一个货运人员、三个技术支持人员以及一个市场联络代表。我们的公司是一个小公司,也就是说是一个新兴企业。每个人都是身兼数职。但是,虽然我们的公司是一个小公司,我们的未来计划却定得很高,并且我们对未来也充满期望。我们团结一致就为了创造出优秀的软件产品,我们还期望网罗软件工程的精英到我们这个小组来,以创造出世界上最优秀的开发工具。

四年后,由于有公司创建者的苦心经营和一个优秀的管理小组,公司人员增长至150多人。我也随着公司的成长而成长,并最终成为公司的工程主管。在最初的四年里,我们研制出六个主要的商业软件产品,即BoundsChecker和SoftICE,还得到了两个新产品的订单,并自主开发出四个新产品。几乎所有这些产品都在规定期限内交送到用户手上,大大地增加了利润,我们也从中获得非常大的利益。实际上,我们的产品得到用户非常好的评价,其所获得的荣誉也可以列入到以下行业奖项当中去:

2000年

DevPartner for Visual Basic获得由Vbxtras杂志颁发的“软件质量保证最佳组件或工具”奖。

BoundsChecker VC++ Edition获得由《程序员天堂》(Programmer's Paradise)杂志颁发的“最畅销测试和调试工具”类的“登峰造极”奖。

CodeReviewTM 6.1获得由《Visual Basic程序员杂志》(Visual Basic Programmer's Journal)颁发的“读者的选择”奖。

FailSafeTM 5.21获得由《Visual Basic程序员杂志》颁发的“读者的选择”奖。

1999年

DevPartner Studio获得由《软件开发杂志》(Software Development Magazine)颁发的乔特·科勒(Jolt Cola)“优秀产品”奖。

DevPartner Studio获得软件开发业的五星级认证。

DevPartner for JavaTM获得由《Java程序员杂志》(Java Developer's Journal)颁发的“Java程序员杂志世界级大奖”。

SmartCheck .01获得由《Visual Basic程序员杂志》颁发的“读者的选择”奖。

CodeReview .1获得由《Visual Basic程序员杂志》颁发的“读者的选择”奖。

DevPartner 6.1 for Visual Basic获得由《Visual Basic程序员杂志》颁发的“读者的选择”奖。

TrueTimeɑ竦糜伞禫isual Basic程序员杂志》颁发的“读者的选择”奖。

1998年

DevPartner for Visual Basic获得由Vbxtras颁发的“霹雳”奖。

SmartCheck和TrueTime获得由《Visual Basic程序员杂志》颁发的“读者的选择”奖。

DevPartner for Visual Basic获得由《软件开发杂志》颁发的乔特·科勒“生产力”奖。

1997年
BoundsCheckerㄊ堑谝桓黾尤氲健度砑⒃又尽贰扒翘孛颂谩保↗olt Hall of Fame)的软件产品,原因是它通过稳定的性能获得过数次奖项。

TrueTime╒isual Basic Edition获得由《比特》(BYTE)杂志举办的计算机分销商展览上的“最佳表现”奖。

SmartCheckɑ竦糜伞都扑慊芸罚≒C Week)颁发的“分析家的选择”奖。

BoundsChecker于1997年连续两年获得由《Visual Basic程序员杂志》颁发的“读者的选择”奖。

1996年

CodeReviewTM作为1996年度最重要的软件开发工具之一而获得由《视窗技术杂志》(Windows Tech Journal)颁发的“技术之星”奖。

BoundsChecker在《个人计算机杂志》(PC Magazine)里的一篇关于激烈竞争的回顾性文章里获得“编者的选择”奖。

BoundsChecker for Windows NT获得由《个人计算机杂志》颁发的1996年度“最佳开发工具技术优秀奖”。

BoundsChecker在“1996年软件开发西部会议”上获得“优秀产品生产力大奖”。

BoundsChecker获得1996年度由《Visual Basic程序员杂志》颁发的“读者的选择”奖。

1995年

BoundsChecker作为1995年度最重要的软件开发工具之一而获得由《视窗技术杂志》颁发的“技术之星”奖。

BoundsChecker for Windows NT在“1995年软件开发西部会议”上获得乔特·科勒“优秀产品”奖。

1994年

BoundsChecker for Windows在“1994年软件开发会议”上获得乔特·科勒“优秀产品”奖。

看起来是不是很厉害?但是,我们遇到了和其他开发小组一样的问题:目标的冲突、计划上的压力、资源的短缺、一筹莫展以及联络问题等等,这还只是一小部分。但我们必须按时将合格的软件产品拿出来,否则我们将要面对的是关门歇业。

我们的开发小组克服的最大障碍,也是如今软件业最普遍遇到的问题—软件开发小组和软件工程在管理上的效率低下。特别是新兴企业,它们几乎每天都会遇到这样的问题;它们必须解决它,否则只有倒闭走人。对于NuMega公司来讲,我们解决这个问题的能力,是我们能够胜出的最重要原因之一。

这本书的目的之一,是与你共享这个来之不易的、为在增长的新兴环境中开发出能盈利的商业软件所必须具备的原则、方法和技术。我将揭示出我们在向市场推出优秀产品时所使用的最关键的和最基本的方法。我不是要和你纸上谈兵,也不是要给你罗列你可能永远也不会涉足的琐碎事务。我将告诉你我在NuMega公司的亲身经历—我们如何壮大我们的软件开发小组,以及我们如何在一个新兴公司里开发软件产品。

我认为,对绝大多数中小型软件开发工程(30人或者更少些)来讲,新兴的环境没有什么差别。不管是小企业还是大企业,也不管是独立软件开发商还是IT工作室,更不管是汇编程序专家还是网络开发人员,你都必须按时将合格的软件产品交送出来。你会遇到同样的问题,你期望获取同样的成功。可是,你和你的企业没有遇到目标上的冲突、计划上的问题、物力上的短缺以及所有其他典型的软件开发生命周期过程中会遇到的问题,这种情况最近出现在什么时间?

请注意,这本书并没有把大量的笔墨放在某一个内容上面。你可以在其他书中详细学习如何处理诸如招聘、软件发行工程、质量保证、人力因素等等各方面的问题。但我相信你已发现,在软件开发周期中,你不可能将大量的时间花费在某一步上,因此你需要知道你必须具有的资源和你可以不必具有就可以完成任务的资源之间的区别。你想把握问题的关键,并且你不期望浪费资源。如果有什么捷径,那就走那条捷径。如果除了一条漫长的道路以外别无他路可走,那也就只好走这条漫长的道路了。

另一方面,这本书不是对如何处理问题的不同观点的调查。你不可能在这本书中找到完成某项特别任务时不同处理方法的评价标准。相反,我将与你一起分享我们已经证实了的一套解决方法,并向你展示,我们如何通过一个软件开发周期,把这套方法紧密运用到迅捷而有效的开发道路上去。虽然也有些很好的建议可以采用,但在这里,我只将注意力集中在我们实际运用了的技术和方法上。

如何使用本书

虽然我并不认为这本书里的内容适合于所有的软件公司或者对所有的软件公司有用,但我仍然相信这本书里的大部分内容会对大多数软件公司或者软件工程有帮助。

谁适合于阅读此书

如果你是(或者有希望是)一个软件工程项目的主管,你就应该阅读此书。这包括你是一位:

◆ 高级软件工程管理人员(副主管、主管、部门经理等)

◆ 软件开发管理人员

◆ 软件工程主管

◆ 软件开发主管

◆ 框架设计师

◆ 程序管理人员

◆ 技术编写管理人员

◆ 技术编写主管

◆ 质量保证管理人员

◆ 质量保证主管

◆ 软件可用性管理人员

◆ 软件可用性主管

◆ 软件发行管理人员

◆ 软件发行工程主管

如果你是某个软件开发小组的成员之一,你也应该阅读此书。这本书里讲述了整个软件开发小组,而不仅仅是管理人员或者主管,应该如何对待软件开发。整个软件开发小组像一个整体,具有同样的产品观念、态度、信念和文化,这是非常重要的。

文章的结构

这本书可以分成三篇。每一篇都描述了软件工程管理中的一个关键内容。

第一篇:人才、组织和方法

在你开始设计软件工程或者开始编写软件之前,必须确保自己已经具备了必要的基础。你需要合适的人选、合理的组织结构以及正确而有效的处理方法。没有这些基础,你的计划和努力就会在软件工程逐渐加速进展和压力增加时遇到挫折,并最终以失败告终。在第一篇里,我说明了任何高速进展的软件工程都应该具备的基础,这包括:

◆ 人才  你需要什么样的人才,又怎样留住他们。

◆ 组织  每个开发小组成员的基本角色和责任。

◆ 工具  关键的开发工具是什么,怎样使用它们。

◆ 质量  在软件开发的同时怎样进行质量保证。

◆ 软件发行工程  如何使你的软件工程在整个软件开发周期中保持完整和统一。

第二篇:工程定义和工程计划

如果你真的想按时推出软件产品,就必须在创造它之前弄清楚你想创造的是什么产品以及你准备如何去创造它。即使是最有天赋的人,也需要对他们准备做的事情的内容、将要使用到的技术和软件产品完成时的形象有一个基本的了解和概念。

◆ 软件工程的基本要求;

◆ 软件工程中所使用的技术;

◆ 软件工程的产品使用方法。

当具备了这些基础之后,你可以制定一个能够平衡软件工程目标和人力资源两者的计划。这样,在某种程度上,你就可以认为自己已经具有了一个为将要创造的软件产品制定的符合实际的计划。

基本要求、所使用的技术、产品的使用方法和计划这四项内容是紧密相联的,并且,如果你想成功地管理一个软件工程,就必须同时处理好它们之间的关系。没有这四项内容,你就会陷入对软件工程的猜测、假设之中,甚至忽视软件工程中的基本因素,从而将无法接受的风险带入软件工程中去,并常常导致问题的产生和计划上的大的、不可预测的滑坡。记住,许多最主要的错误是在软件工程的最初几个星期,亦即在软件工程计划时期犯下的。

第三篇:工程的完成

一旦计划完成了,你就可以着手创造软件产品了。有了优秀的人才、可靠的处理方法和良好的计划,你就可能完全按自己的计划完成任务。但是,你必须确保在创造过程中没有偏离计划而迷失了方向。

第三篇集中讨论决策模型,这种模型将确保软件产品每一天的开发工作。其中包括以下内容:

◆ 决策  如何通过及早寻找和解决问题,使软件工程的进展与计划一致。

◆ 软件测试  如何从测试版的程序中得到真正的用户反馈,并同时增加测试力度。

◆ 待发行版本  如何管理软件工程的最终阶段,并确保其能够随时推出。

◆ 软件工程的后期工作  什么是软件工程的后期工作,它需要什么,如何去做。

其他特点

在每一章的结尾,我提出了在运用本书中所提到的方法和技术时会遇到的普遍问题和困难。几乎所有这些问题和困难都来自真实的经历,因此,我期望这些解决方法能够对你的实际问题有所帮助。

同时,本书通篇都有一个叫“案例回放”的附加内容,这部分内容说明了我们在NuMega公司时如何运用特定的方法或概念。这些附加内容,还使我可以与你共享更多的、使软件开发变得乐趣多多的有趣的故事、言论和逸事。

反馈

我很愿意倾听你对本书所提到的方法和技术的意见和建议。我也期望倾听你自己的努力奋斗并最终获得胜利以及如何按期交送合格的软件产品的故事。请和我联系:eds_books@hotmail.com。

图书序言

就在1999年4月初,IDC发布对世界各主要国家和地区关于1998年信息社会指数ISI(Information Society Index)所做的研究报告结果。这份报告指出,美国的信息国力仍保持世界第一的地位,而中国的排名则居于世界第53名。

事实上,IDC对于信息国力的评比指针主要分为计算机基础建设、信息/通信基础建设及社会基础建设三大项。换句话说,信息国力的重点不在于一个国家的信息产值有多少,而在于一个国家于信息应用的投入到达何种程度。

比尔·盖茨在其《数字神经系统》一书中,一开始就强调,过去20世纪80年代、90年代,企业成功的因素是品质、是企业再造;而展望未来,企业胜出的关键则是“速度”,这一点从它的书名以《与思考等快的明日世界》(Business @ The Speed Of Thought)为副标题即可看出。

数字神经系统并不是一项新的科技架构或是新的软件代号,它所强调的是一种数字基础建设,除了在硬件方面,将个人计算机透过网络连结起来之外,更重要的是利用目前已经成熟的网络技术来建造企业的管理模式。

未来,企业的成长与淘汰都取决于速度,企业中的每一个工作者都要能够适度地“决策”,如果所有的决策都还要经由层层的关卡才能决定,这样的企业岂能取得速度上的优势?因此企业的工作者必须能在正确的时间、正确的位置撷取正确的信息,以帮助他们做出正确及关键的决策。这就是建立数字神经系统的重点所在。

既然企业建立数字神经系统是如此重要,面对21世纪数字时代的来临,企业该如何适应整体经济环境的冲击?企业若仍因循过去的管理经验及技术,在面临未来以信息为管理基础的竞争时,这样的方式将无法满足企业的需求,企业需要的是以未来竞争为根本的数字神经系统。

软件与硬件其实只是实现数字神经系统的材料,真正实现数字神经系统的是企业里的管理团队及信息部门。如何驱动和改变企业内部这些重要成员的动力,发挥其效率将会是数字神经系统能否成功的关键。

除了需要具备信息技术相关知识之外,信息团队的领导者或管理者更需要好的方法与经验。就像企管系的学生在学校中学习管理知识之外,案例研读除了可以帮助学习者更了解这些知识的实质内涵,还可以在未来多变的环境中,拥有更强的应变能力。而这些具典范价值的经验与方法何处可寻呢?在《微软团队:成功秘诀》、《微软研发:致胜策略》、《微软项目:求生法则》以及《微软规划:领先之道》这四本书中,经由微软自己企业发展过程中的经验与法则,可以获得最佳的解答。虽然这些内容是架构在微软软件开发的特质之上,但却都是“放之四海而皆准”的知识与原则。

当你的企业正彷徨于未来信息时代的挑战,而没有胜算的把握时,相信这几本书将会是帮助你前进的最佳材料。




微软公司副总裁


李开复 博士于1998年7月加盟微软公司,并于11月出任微软中国研究院院长,现任微软公司副总裁。李博士在语音识别、人工智能及国际互联网多媒体等领域享有很高声誉。加盟微软公司前,李博士曾担任SGI公司的Cosmo Software公司总裁。此前他曾在苹果公司工作六年,主管该公司的多媒体部门。

李博士在Cosmo任职期间,负责多平台互联网三维图形和多媒体软件的工作。在此之前,他曾担任SGI公司网络产品部门的副总裁和总经理,负责多个产品系列的发展方向和公司网络产品策略的制定。李博士在苹果公司任职六年中的最后一个职务是公司交互式多媒体部门的副总裁,开发QuickTime, QuickDraw 3D,QuickTime VR等产品。

在加入苹果公司之前,李博士曾就读于卡内基梅隆大学,获计算机学博士学位。后担任副教授,并开发出了世界上第一个非特定人连续语音识别系统。1988年,《商业周刊》授予该系统“最重要科学创新奖”。在校期间,李博士还开发了奥赛罗棋的世界冠军计算机系统,该系统于1988年击败了人类的世界冠军。李博士曾以最高荣誉毕业于哥伦比亚大学,获计算机学士学位。

推 荐 序 二

首先,我必须提示你这本书是与众不同的。虽然有大量的书籍都是有关软件工程管理的,但只有这本书才是真正的专门从新兴企业的立场出发谈论如何创造软件产品的。创造软件产品是这本书所惟一关心的事情,而这也正是它的核心。使这本书区别于其他书籍的地方,是本书的作者不是一个靠运气推出一两个软件产品的人。爱德·沙利文创造了几个伟大的软件产品,但更重要的是,由他培训出来的软件工程管理者也同样创造出更多伟大的软件产品,这是其他公司梦寐以求却难以实现的。软件工程管理人员的数目在逐渐增加,但他们想在软件行业中获得成功却变得越来越困难,爱德数次做到了这一点。这本书就是要将爱德传授给其软件工程管理人员的技术完全展示给你。

软件工程管理在软件行业中变得前所未有的重要,因为所有在这个行业中工作的人都是在按“互联网时间”来开发他们软件的,这使得他们期望通过捷径(即使得软件比以前任何时期都要更简洁而调试错误更少)来管理他们的软件工程。软件工程管理在那些致力于开拓小市场的小软件公司中显得尤为重要。为了克服即将推出的产品中难以发现的错误,那些从事着庞大软件开发项目的大型软件企业也越来越流行使用软件工程管理的方法了。

虽然你可能会认为软件工程管理赶不上时间的变化,但是问题的严重性可能还远远不止于此。不管你在世界的哪个角落,计算机程序并不能教会你真正的或者正确的软件管理技巧;更有甚者,这些程序不能教会你任何东西。所以,大部分程序员还是通过自己来学习,或者从管理者的各部分指点中来学习。编写代码在几乎所有的软件工程中只占20%的工作量,但许多公司仍然不得不花大量的时间来完成它。好在你现在所完成的工作,到底还是能够给你的软件工程小组提供一些帮助,而这是你在其他地方所完全不可能获得的。在这本书中没有关于软件工程管理的理论;这本书里有的,只是在一个获得极大成功的新兴企业里,什么是行得通的,而什么又是行不通的。

你将看到,这本书反复强调的是“小组”。许多公司的软件工程结构,被分解成一个个独立的程序编写工程、质量保证工程,以及可能还会有的文本说明等等。独立的个人为了一个工作目标而被集合在一起,可是因为处于不同的行政管理组织,他们又必须向不同的组织进行汇报(很明显,我不能将它们称为“产品小组”)。因此,许多公司从一开始就因松散的组织结构而导致失败。爱德将真正的产品小组引进到NuMega公司里去:在那里,代码编写人员、质量保证人员、人力因素管理人员以及用户培训人员,都只向一个工程管理人员进行汇报。即使当NuMega已经发展成为一个大公司而必须对传统的组织模式进行管理的时候,爱德仍将产品小组的理念保留了下来,即便是在必须花大力气努力维护产品小组这一理念的时候,他也没有放弃它。由于参与软件产品创造的每一个人都只需要对他们所开发的那个产品负责,NuMega避免了许多其他公司通常会遇到的人为问题。这样做还有一个好处,就是该产品团队中的每一个人都可以看到,在创造可以成功地推向市场的产品过程中自己的工作多么重要。这明显区别于传统的“从我们(开发者)到他们(用户)”的开发模式,特别是在代码编写人员和质量保证人员这两个软件开发阶段占主要工作量的环节当中。

当然,将各个小组集合在一起也会存在困难。现今,几乎所有关于软件业的新闻都不得不报道说,所有的公司都处于缺人的状态。如果你不能找到合适的人手,要建立一个成功的小组所需要的人选将会是难以预计的。有一件事情NuMega做得很好,这就是它能够找到“非传统”的软件开发人员来一起壮大企业。爱德关于寻找和聘用优秀人才的建议,是NuMega成功的最大秘密之一;该建议使得NuMega公司时刻处于刻不容缓的状态,并能及时将合适的产品推向市场。爱德做的另外一件事情是作为软件业的卓越的管理人员,一旦找到了优秀的人才,他就会将自己的位置让给那些人,以便他们顺利完成胜任的工作。有时,工程管理人员会连续四五天见不到爱德或者不能与他进行交谈。爱德所做的,就是让他们从错误中吸取教训而不断进步,最为重要的是,对他们的每一次进步都会给予奖励。

一旦具备了良好的组织结构和优秀的人才,要实现软件工程管理“最基本的部分”就变得相对容易了。正如爱德在这本书中所指出的,重要的是维持一个精确的平衡—管理恰恰到位,不太多,也不太少。他关于软件工程计划和工程决策的见解,就包括他向工程管理人员教授的、有关如何才能取得巨大成功的内容。记住,要及时创造出成功的产品并不是一件容易的事情。在他的那些见解中,那些经验教训是通过艰苦的努力、一次次失败和错误、许许多多的咬牙挺过以及无数次的真正令人心痛的磨难得来的。

由于曾经历过这些令人心痛的磨难,我的经验告诉我,这本书的价值远远高于你为购买这本书所付出的金钱的价值。我经历了书中的每一件事情。开始时,我是BoundsChecker 3.0开发小组的一名编程人员,而当时爱德是该项目的工程主管。到最后,我是TrueTime和TrueCoverage产品开发小组的工程管理人员,而当时爱德则是NuMega公司软件工程部门的主管。没有爱德在这本书中所展现的那些技术和技巧,TrueTime和TrueCoverage产品开发小组就不可能创造出那样成功的产品。

从很多方面来讲,我很羡慕读者,因为你们不需要任何时间限制,就可以学到作者的全部技术和技巧。然而,很幸运的是,我能够直接从爱德那里学习。爱德帮助我从一个编程新手成长为一个熟练的编程人员和熟练的软件工程管理人员(这是我以前想都没有想过的)。现在,我已经能够帮助公司完成在世界范围内的软件调试和工程管理任务。爱德经常和我们开玩笑说,他知道如何使我们这些程序开发人员保持忠诚。不管怎么样,我仍然清楚我所学到的大部分关于成功地进行软件工程管理的知识都是来自于爱德。

当爱德最初请我为这本书写序的时候,我感到非常惊讶。这是何等的荣耀!他告诉我说,这本书全都是因我而起的,是我劝他着手写这本书的,又是我不断鼓励他继续完成它的。我内心愉悦地为自己的“过错”辩护。当工作在NuMega公司的时候,人们问的最多的一个问题就是,“你们NuMega公司的人是怎么创造出这么多优秀的软件产品的?”现在,我只需要指着爱德的书就可以回答这个问题。我很激动,本书的每一位读者都有机会看清楚,软件业最好的工程管理者如何一次又一次在软件开发领域创造出最为重要的软件产品。


约翰·罗宾斯

新罕布什尔州霍利斯

2001年1月

作者简介

爱德.沙利文:暂无简介

译者简介

周乐平:暂无简介

译者序

如何创造出软件产品?如何创造出大量优秀的软件产品?

如何管理一个软件工程?如何管理一个新兴的软件企业?

如何完成软件工程?如何在压力之下按期完成软件工程?……

曾几何时,在中国人的脑海里,提起软件就会令人想起中关村。曾有一批优秀的软件企业崛起过,可是真正能够傲立于软件世界的又有几个?是什么使得中国的软件业始终不能像美国或者印度那样,在一个国家的经济中成为一种支柱产业,难道只是模式和管理上的问题?

从我们能够得到的教科书里,软件产品和软件工程似乎也只能停留在定义里;能给人留下印象的,只剩下一个个漂亮的流程图了。可是,软件岂只是if和else语句那么简单!本书的独特之处,就在于它没有刻板地去描述如何创建和管理一个软件工程。作者爱德·沙利文先生用其18年的软件开发和管理经验,向你生动展现了软件工程的方方面面,其中包括你可能不曾想到过的许多东西。

从这本书里,你将看到,一个优秀的软件企业是属于创建软件、管理软件工程以及参与软件工程的人的。“人”这个概念相信你不会陌生。但什么才是人才?谁才能成为优秀的人才?作为一个新兴企业,你应当如何招聘、面试和保留优秀的人才?又应该如何合理使用人才?是不是企业内的每一个职位都应该聘用优秀的人才?应该为优秀的人才创建一个什么样的企业文化?你是否也考虑过类似于“内核级”这样的概念?有了“人”之后,“武装”他们的“装备”又该如何?也就是说,怎样寻找适合于软件工程的工具? 一个软件工程,除了开发任务之外,质量保证、发行工程、用户培训、人力因素等等充当的是什么角色?又该如何完成?工程需求、工程模型、用户界面和进度计划之间的关系如何?在执行这些任务时,应该注意什么问题?如何制定合理的工程需求?如何创建一个合理的工程模型?如何对其进行评价?用户界面应该考虑哪些因素?进度的规划又如何进行?如何管理软件工程的进度和方向?当一个软件工程开发完毕的时候,是否就意味着工程已经完成了?还需要注意些什么?如何为下一个软件工程做准备?在这本书里,你将获取这些秘密。

本书的特色,不仅仅在于它是出自一个优秀的软件工程管理人员之手,而是它背后一个个生动的实例。NuMega是一个什么样的公司?它和微软公司有什么关系?为什么微软公司会找它来制作Windows操作系统的调试软件?它在软件调试方面有什么独到之处?在书中的许多地方,都有“案例回放”。这是作者在NuMega公司工作时,亲身经历的一个个故事。这些小故事告诉你,在软件开发过程中遇到问题和困难时,他们是怎样解决的。每一章后面,还有“普遍存在的问题及其解决方法”。它告诉你,软件工程中有哪些容易被人们忽略的细节,以及妥善解决这些细节问题的方法。软件工程的结尾往往也是人们容易忽略的部分。正如书中所做的飞机着陆的比喻一样,软件工程的结尾也需要保证安全性。这个时期举行的“行动会议”与进度会议有什么区别?你是否听说过巡视管理法?是否也曾将其运用于你的软件工程?如何进行信息的共享?待发行版本阶段有哪些工作要求?你是如何对工程人员进行表扬和奖励的?你曾经计划过采取什么样的庆祝活动?你的员工是否也感觉到了你对他们的认可和感激?这个时期可以为下一个工程做些什么准备?你又是如何对刚刚完成的软件工程做出总结的?对于这些问题,本书都做了精彩的描述。

还有一点是我必须提示你的,即关注本书中出现的问题,而不仅仅是方法。NuMega公司和中国的许多企业一样,也是从一个小企业发展起来的。它遇到的问题,在如今中国的软件企业中几乎同样会遇到。你可以从NuMega公司处理问题的每一个细节里学到很多思考问题的方法,这也是一面你必须引以为鉴的镜子。因此,这本书最大的作用,就是它能够引发你对自己遇到的事情的思考。这是一本关于思想的书籍,而其中思想或许正是你目前所急需的。

这本书是任何想取得成功的年轻企业家都必须阅读的经验参考。这也正是翻译此书的初衷,即让更多的企业,尤其是新兴企业,了解软件工程的真正含义,并在学习和借鉴过程中,摸索出符合自己企业的管理模式,早日让中国更多的软件企业成为软件行业的佼佼者。

对于作品本身,我应该感谢原著作者爱德·沙利文,是他精炼的文笔以及简洁的语言,使得本书的翻译工作得以顺利进行。

对于作品的翻译,我应当向三方表示感谢。感谢出版社的李文静和杨雯编辑把这样重要的翻译任务交给我们,并在必要的时候给予我信心和指导。感谢出版社的协助和赞许,他们以自己的务实精神和公正态度,为像我这样默默无闻的求索者开辟了崭新的领域。感谢同事、友人和家人的鼓励,他们对我的无私帮助令人难以忘怀,他们的谆谆教导与无私关怀至今仍历历在目。

本书在翻译过程中得益于杨芳和张英两位教授的指导,特别是对译文的组织和用词的指导。文章的翻译工作有一些是在与同事们的商榷和修改中进行的,特别是一些较为口语化的词语。这些同事是孟召运、张世帅、焦绪凤、黄敏捷和余小英。朱正茂、吕亮、王馨和张静几位同事完成了大部分校对工作。另外,我要感谢我的友人陈兰兰以及我的家人。可以说,没有他们的关心和支持,就没有今天译文的完成。


周乐平

2001年9月

于北京

图书目录

目 录
推荐序一 
推荐序二
出版者的话
译者序
作者简介
前言

第1章  优秀的人才,以及如何寻找到他们 …3
 “优秀”的定义 …5
  发现并吸引优秀人才 …17
  普遍存在的问题及其解决方法 …29
第2章  简历、面试和聘用 …33
  查阅简历 …34
  面试应聘者 …41
 人才的保留 …55
  普遍存在的问题及其解决方法 …58
第3章  软件工程的组织 …63
  NuMega公司的组织结构 …64
  角色与职责 …70
  普遍存在的问题及其解决方法 …90
第4章  人员分类和企业文化 …95
人员分类 …96
企业文化 …104
普遍存在的问题及其解决方法 …114
第5章  软件工具 …119
源代码管理系统 …120
问题的管理 …135
高级工具 …149
普遍存在的问题及其解决方法 …151
第6章  质量保证的基本方法 …159
原理 …160
测试内容、测试时间和测试方法 …170
测试人员 …185
其他有关质量保证的问题 …190
普遍存在的问题及其解决方法 …195
第7章  发行工程的基本方法 …201
软件发行工程师 …202
编译 …204
安装过程 …212
编译和安装功能的集成 …217
普遍存在的问题及其解决方法 …219

第8章  需求 …225
确定预计的需求 …227
需求的定义 …230
需求的评估 …238
需求的等级划分 …243
需求的确认 …245
对需求变化进行管理 …246
普遍存在的问题及其解决方法 …248
第9章  研究、评估和模型的创建 …251
优点 …253
研究 …254
技术评估 …261
模型 …263
普遍存在的问题及其解决方法 …269
第10章  用户界面 …273
  什么是用户界面模型 …275
  人力因素工程人员的角色 …287
  普遍存在的问题及其解决方法 …292
第11章  进度计划 …295
  先决条件 …296
  进度计划概念和问题 …297
  创建一个合理的进度计划 …310
  普遍存在的问题及其解决方法 …321

第12章  保持进度 …327
飞机飞行的类比 …328
衡量和监督进度 …330
做出调整 …340
普遍存在的问题及其解决方法 …351
第13章  测试版本的测试工作 …355
测试版本计划的意义 …356
测试版本计划中最普遍存在的错误 …359
测试版本计划的类型 …360
测试版本计划中的要素 …363
测试版本管理人员 …374
普遍存在的问题及其解决方法 …377
第14章  待发行版本 …381
准备原则 …382
待发行版本的测试工作 …384
普遍存在的问题及其解决方法 …393
第15章  软件工程的结尾阶段 …397
为什么软件工程结尾阶段如此重要 …398
如何进行软件工程的结尾工作 …399
下一步是什么 …406
普遍存在的问题及其解决方法 …409

教学资源推荐
作者: 贾国柱,张人千
作者: 邓金堂 胡树林 主编
参考读物推荐
作者: 彭剑锋 主编 彭剑锋 朱宁宁 著
作者: 白洁 薛佳 著
作者: 斯蒂芬妮·卡培尔(Stephanie Capparell)