项目管理修炼之道.pdf

项目管理修炼之道.pdf
 

书籍描述

编辑推荐
《项目管理修炼之道》基于作者多年项目管理的实践经验,融会贯通地讲解了成功管理软件项目的各个要素。书中内容涉及软件项目管理的整个流程:项目启动、项目章程、项目计划、项目日程安排、项目估算、明确的角色和职责、明确的开发流程、恰到好处的度量标准、发布条件、参与beta测试的客户……所有成功项目管理的必备元素一应俱全。贯穿全书的提示和生动的案例,更能加深读者对项目管理的领悟。
《项目管理修炼之道》是一本项目经理的实战手册,项目开发人员、软件经理等项目相关人员也能从中获得有益的指导。

媒体推荐
“她从多年的一线工作经验中萃取出精华,以深入浅出的方式展现给读者。……就我来说,即使已经有了这么多年的项目和工程管理经验,还是可以在书中发现新东西。当我面临全新挑战,需要一块坚固的甲板帮我渡过激流险滩时,Johanna一定是我要找的人。”.
  ——艾伦·R.索尔兹伯里,Yahoo伯克利研究中心前总监
“作为一个软件工程及项目管理的老兵,我认为这是项目管理领域中最佳的实践书,尤其是作者在项目管理上积累了多年的丰富经验,肯定能帮助项目经理解决相当多的疑难杂症。……好东西要分享,在此我诚挚地向大家推荐这本好书,分享我在其中得到的共鸣与喜悦。”
  ——胡百师,微软项目管理MVP

作者简介
作者:(美国)罗斯曼(Johanna Rothman) 译者:郑柯 合著者:胡百师

Johanna Rothman,世界知名的管理顾问,擅长高科技产品开发管理,经验丰富。1994年创办Rothman咨询公司。她也是活跃的技术作家,长期担任Fast Company和Software Development等业界著名杂志以及Computerworld.com和StickyMinds.com等一流在线媒体的专栏作者。除本书曾获大 奖之外,她的Behind Closed Doors和Hiring the Best Knowledge Workers,Techies&Nerds等著作也都广受好评。她的博客地址http://www.jrothman.com/blogs.html。译者简介:
郑柯,InfoQ中文站敏捷社区(http://www.infoq.com/cn/agile/)首席编辑,《程序员》杂志前副主编。迄今为止翻译了项目管理与敏捷相关的图书、文章、新闻近100万字。与人合译《高效程序员的45个习惯——敏捷开发修炼之道}(人民邮电出版社)。

目录
第1章 启动项目 1
1.1 定义项目和项目经理 1
1.2 管理项目的关键驱动因素、约束和浮动因素 2
1.3 与客户或出资人讨论项目约束 5
1.4 决定项目的关键驱动因素 6
1.5 应对喜欢过多干预项目的出资人 7
1.5.1 预测未来 8
1.5.2 使用与上下文无关的问题识别项目真正的驱动因素 8
1.6 编写项目章程,共享现有决策 9
1.6.1 远景 10
1.6.2 需求 10
1.6.3 目标 10
1.6.4 成功标准 11
1.6.5 ROI 11
1.7 理解质量对于项目的意义 12

第2章 规划项目 14
2.1 踏上征程 14
2.2 使项目足以启动的规划 14
2.3 开发项目规划模板 16
2.3.1 产品意图 16
2.3.2 历史记录 17
2.3.3 发布条件 17
2.3.4 目标 18
2.3.5 项目组织 18
2.3.6 日程总览 19
2.3.7 人员配备 20
2.3.8 建议日程 20
2.3.9 制订项目风险列表 21
2.4 制订发布条件 21
2.4.1 确定当前项目最重要的因素 22
2.4.2 草拟发布条件 23
2.4.3 让发布条件符合SMART原则 24
2.4.4 在发布条件上达成多方共识 25
2.5 使用发布条件 25

第3章 使用生命周期组织项目 27
3.1 理解项目生命周期 27
3.2 生命周期概览 28
3.3 在项目中寻求反馈 31
3.4 大规模项目需要组合使用多种生命周期 33
3.5 管理架构风险 35
3.6 从瀑布中摆脱出来 36
3.7 我最钟爱的生命周期 36

第4章 安排项目日程 38
4.1 注重实效的项目日程安排 38
4.2 可供选择的项目日程安排技术 39
4.2.1 自顶向下式日程安排 40
4.2.2 自底向上式日程安排 40
4.2.3 由内及外式日程安排 40
4.2.4 哈德逊湾式启动 41
4.2.5 短期迭代 41
4.3 用低技术含量的工具安排项目日程 42
4.3.1 使用即时贴安排项目日程的基本技术 43
4.3.2 使用即时贴和箭头安排项目日程 45
4.3.3 为每一个职能组使用即时贴安排项目日程 45
4.3.4 按功能使用即时贴安排项目日程 46
4.3.5 使用即时贴安排项目日程的好处 46
4.3.6 基于可交付物的规划 47

第5章 估算工作 48
5.1 实用的项目估算方式 48
5.1.1 通过对比历史数据进行估算 48
5.1.2 通过Delphi和宽带Delphi方式进行估算 48
5.1.3 何时不应相信团队的估算 49
5.1.4 小心顺序式生命周期的估算陷阱 50
5.1.5 使用自信心范围进行估算 51
5.1.6 使用日期范围进行估算 53
5.1.7 使用三个日期:最佳状况、最有可能、“墨菲”日期 53
5.1.8 在估算时分开考虑任务的大小与持续时间 54
5.1.9 规划扑克 55
5.1.10 在估算前用试探性开发收集数据 56
5.1.11 让估算更容易的提示 56
5.2 用里程碑切分项目 57
5.3 你们能够不做哪些事情 59
5.4 身背多个项目时的估算 59
5.5 主动安排人们进行多任务 60
5.6 使用波浪式规划 60
5.7 决定迭代的持续时间 62
5.8 尽可能使用“小石子”进行估算 63
5.8.1 当任务不清楚时创建并使用“小石子” 63
5.8.2 如何得到“小石子” 63
5.8.3 为什么使用“小石子” 64

第6章 识别和避免日程安排游戏 65
6.1 给我一块石头 65
6.2 “希望”是我们最重要的策略 67
6.3 拒绝女王 69
6.4 把灰扫到地毯下面 71
6.5 幸福日期 72
6.6 屁股着火 74
6.7 分散注意力 76
6.8 日程等于承诺 77
6.9 到了之后,我们会知道身处何方 78
6.10 日程安排工具总是对的,又称为梦幻时间日程 80
6.11 我们必须拥有这个功能,否则就完蛋了 82
6.12 我们不能说“不” 83
6.13 日程小鸡 85
6.14 90%完成状态 86
6.15 我们马上会变得更快 87
6.16 令人恍惚的日程 88

第7章 创建出色的项目团队 90
7.1 招募需要的人 90
7.2 形成团队凝聚力 91
7.2.1 好工具让团队有好的发挥 92
7.2.2 软件配置管理系统应满足的最低要求 93
7.2.3 缺陷跟踪系统应满足的最低要求 93
7.2.4 团队发展的5个阶段 93
7.3 让组织配合你的工作 94
7.3.1 以项目经理的方式管理职能团队 95
7.3.2 管理矩阵式项目团队 95
7.3.3 管理跨职能项目团队 96
7.4 对必需的团队规模了如指掌 96
7.5 知道何时应该加人 97
7.6 成为出色的项目经理 98
7.6.1 提升人际交往技能 98
7.6.2 提升功能性技能 99
7.6.3 提升领域专业知识技能 99
7.6.4 提升工具和技术的专业技能 100
7.7 知道何时该全身而退 101
7.7.1 什么样的组织不适合你 101
7.7.2 什么样的团队不适合你 104
7.7.3 什么样的产品不适合你 105

第8章 掌控项目 106
8.1 掌控项目的节奏 106
8.2 举行中途回顾 107
8.3 为需求排序 108
8.4 用时间盒限定需求相关的工作 111
8.5 将迭代限制在4周或是更少的时间内 112
8.6 使用波浪式的规划和日程安排 113
8.7 创建跨职能团队 116
8.8 根据项目的风险选择生命周期模型 116
8.9 保持合理的工作时间 117
8.10 使用“小石子” 118
8.11 管理干扰 119
8.11.1 应对其他项目干扰 119
8.11.2 应对其他人的干扰 120
8.12 管理缺陷,从项目初就开始 120

第9章 保持项目节奏 124
9.1 在项目中使用持续集成 124
9.2 为构建创建自动化冒烟测试 125
9.3 按功能实现,而不是按架构 126
9.3.1 首先实现具有最高价值的功能 128
9.3.2 按功能调试 129
9.3.3 按功能测试 129
9.4 多几只眼睛盯着产品 130
9.5 准备重构 131
9.6 通过用例、用户故事、角色和场景来定义需求 132
9.7 分离需求与GUI设计 133
9.8 尽可能使用低保真度的原型 134

第10章 管理会议 136
10.1 取消这些会议 136
10.1.1 避免不需要你解决问题的会议 137
10.1.2 绝对不要举行多人参加的顺序式进度报告会议 137
10.1.3 避免这些会议 138
10.2 举行下列会议 139
10.3 项目启动会议 139
10.4 发布版本规划会议 139
10.5 进度报告会议 140
10.5.1 每日站立会议 140
10.5.2 一对一会议 141
10.5.3 通过可见的方式了解进度 142
10.5.4 通过电子邮件,从团队成员那里获取每周进度报告 143
10.5.5 每周向团队报告进度 144
10.6 向管理层报告进度 144
10.7 项目团队会议 144
10.8 迭代审查会议 145
10.9 会议疑难问题解答 146
10.10 管理与远程团队的电话会议 147
10.10.1 通用引导指南 148
10.10.2 准备工作 148
10.10.3 进行事先规划 149
10.10.4 引导会议 149
10.10.5 电话会议后的工作 150

第11章 创建并使用项目仪表板 151
11.1 测量有风险 151
11.2 根据项目完成度来衡量进度 153
11.2.1 使用速度图表跟踪日程安排进度 153
11.2.2 使用迭代内容图跟踪总体进度 155
11.2.3 计算软件项目的挣值并无实际意义 155
11.2.4 用EQF跟踪最初的估算 157
11.2.5 更多的度量能提供更多信息 159
11.2.6 如果只能度量项目日程,那就这么做 160
11.2.7 与项目团队人员分配情况相关的图表 161
11.2.8 判断项目的变化率 163
11.2.9 查看开发人员是在取得进展还是在白费时间 164
11.2.10 测量查找和修复问题的成本 165
11.2.11 了解开发人员和测试人员是否在解决缺陷方面取得进展 166
11.2.12 展示测试过程 167
11.2.13 展示定性数据 168
11.2.14 用图表展示团队同意采用的实践 169
11.2.15 度量敏捷项目 171
11.3 为出资人创建项目仪表板 171
11.3.1 展示风险列表 171
11.3.2 展示在满足发布条件方面取得的进展 171
11.4 使用项目气象报告 173
11.4.1 要小心定义气象报告的图示 174
11.4.2 建立可信的气象报告 176
11.4.3 每周发布气象报告 176

第12章 管理多地点项目 177
12.1 一个问题的成本是多少 177
12.2 识别项目的文化差异 178
12.3 在团队间培养信任 179
12.3.1 确保每个地点都有完整的项目可交付物 179
12.3.2 确保各个团队可以互相协作 181
12.3.3 让人们建立个人接触 181
12.4 在团队间使用互补实践 182
12.4.1 使用互补生命周期 182
12.4.2 详细说明每个团队的里程碑和交接物 183
12.5 寻找潜在的多地点项目和不同文化导致的问题 187
12.6 在外包时要避免下列错误 188

第13章 在项目中集成测试 191
13.1 从一开始,就让人们将“减少技术债务”牢记心间 191
13.2 使用小规模测试降低风险 192
13.3 TDD是在项目中集成测试最简便的方式 193
13.4 使用多种测试技巧 195
13.5 确定每个团队成员在测试工作中的角色 197
13.6 正确的开发人员与测试人员之比应该是多少 201
13.6.1 产品风险对比率的影响 201
13.6.2 项目和流程风险对比率的影响 202
13.6.3 人员及其能力对比率的影响 203
13.7 让测试与开发同步进行 205
13.8 为项目制定测试策略 205
13.9 系统测试策略模板 205
13.10 QA与测试有差别 207

第14章 管理工程 209
14.1 如果项目是工程 209
14.2 将多个相关项目组织到一个发布版本中 210
14.3 随时间推移组织多个相关项目 212
14.3.1 将产品的多个版本组织到发布列车中 212
14.3.2 让发布列车为你服务 213
14.3.3 在不使用发布列车的情况下,将多个版本组织到一个产品中 214
14.4 管理项目经理 214
14.5 创建工程仪表板 215
14.5.1 度量互相依赖的项目 216
14.5.2 度量一系列项目 216

第15章 结束项目 218
15.1 管理发布早期版本的请求 218
15.2 管理beta版本 219
15.3 项目经理何时知道无法按时发布项目 220
15.3.1 “避免小的偏差” 220
15.3.2 承诺一个新日期 220
15.3.3 估算系统测试时间 222
15.3.4 在时间不够的情况下管理系统测试 224
15.4 指导项目走向完成 225
15.4.1 管理“结束游戏” 225
15.4.2 避免“缺陷提升和降级的游戏” 226
15.4.3 规划回顾 227
15.4.4 规划庆祝 228
15.5 取消项目 229

第16章 管理项目组合 231
16.1 构建所有项目的组合 231
16.2 评估项目 232
16.2.1 定性评估项目 232
16.2.2 定量评估项目 233
16.3 决定现在为哪个项目提供资金 233
16.4 对组合中的项目进行排序 233
16.5 尽快启动项目 234
16.6 使用产品待办事项列表管理新功能需求 235
16.6.1 构建产品待办事项列表 235
16.6.2 管理待办事项列表 237
16.7 组合管理答疑 237
16.7.1 管理从事多个项目多个任务的情况 238
16.7.2 说服管理层“切换上下文”是个坏主意 238
16.7.3 如何对多任务说“不” 240

附录A 关于项目生命周期的更多详细信息 242
附录B 术语汇总 252
附录C 参考书目 254

序言
说到项目管理,你一定被不计其数的技巧、实践轰炸得头昏脑胀,时不时地还有各种相关建议迎面袭来。它们全都在说:“瞧我,我是最正确的。”哎,它们很多都是正确的——在特定情况下。每个项目都是独一无二的,你必须要评估项目的情境(项目、团队、所在公司),然后再实事求是地作出判断,看看哪些可行,哪些不可行。你的项目每天都在加快节奏,你的客户变得越来越不耐烦,大家越来越不能容忍无法正常工作的产品。也许你之前的做法还算不错,让你获得不少好评,可将来很可能不太奏效。你必须运用各种的方法和技巧来减少项目的风险,这其中就包括在每个项目中使用敏捷方法。本书从风险角度出发帮助读者规划和指导项目。项目经理、团队成员、软件经理都能通过本书学习成功之道。即使你要构建有形的产品,比如一座房子、某种电路板,或是要管理服务类型的项目,本书中的很多内容仍然适用。本书假设读者负责管理高科技项目,而且项目至少涉及一些软件开发。也许你像我一样,已经拥有了一些项目管理经验:包括纯粹的软件项目以及软、硬件结合的项目。我也管理过一些服务项目,比如规划和主办会议;参与过一些建筑项目(一套新房子、一次小规模的重新装修、一次大规模的重新装修)。可是我主要的项目经验都来自软件或是软、硬件结合的项目。相对于交付实体产品的项目来说,软件项目要更加难以管理。软件很难把握,它没有形状,不需要原材料,也不是由物质构成的,所以看不见、摸不着,也没有办法直接测量。很难看到产品实实在在地在我们眼前发生演变,很难发现和预测风险,因此也就更难以应对风险。而开发软件产品的方式也并非总有助于我们了解项目进度或者把握其方向。如果管理的是开发有形产品的项目,项目经理可以看到产品逐步成型。你可以见到房屋的框架、完工的墙体从框架到墙体,以及所有的建造过程。对于服务型的产品,比如像会议这种会产生具体结果的项目,你可以深入了解一些项目的临时交付物,比如会议报告草稿或是会议日程,等等。所以,在运作项目期间,你可以看到有形产品项目和一些服务项目的具体进度。要是不能直接看到项目进度,那该怎么办呢?当你发现项目有点儿不对劲儿,而且可能濒临险境时,你该怎么办?如果此时有些项目干系人不支持你的决定,你又该怎么办?本书可以让你深入了解你的软件项目,并让你成功管理项目的风险,无论这些风险是伴随着项目开始而存在、还是在项目进行到中间阶段时才出现。从章程制定到产品发布,每一章都讨论了一种能帮助你看清软件项目本质的方式,让你从各个方面度量它、感受它、品味它、体会它。但在本书中,你找不到项目管理的绝对真理,因为没有在所有项目中都颠扑不破的绝对真理。你也看不到普适的最佳实践,我提出的能帮你和你的团队达成目标的实践,都有其针对的特定生命周期。你在书中会发现有很多前后交叉引用的内容。这是因为项目是非线性系统。早先所做的决策会影响到项目如何结束,甚至可能影响到如何启动下一个项目。你管理项目的方法,也会影响你管理产品待办事项列表或项目组合的思路。书中的所有文档模板可以在本书的主页上找到:http://pragmaticprogrammer.com/titles/jrpm。我想感谢所有为我撰写和修改本书提供帮助的人:Tom Ayerst、Jim Bullock、Brian Burke、Piers Cawley、Shanti Chilukuri、Esther Derby、Michael F. Dwyer、Mark Druy、Jenn Greene、Payson Hall、Peter Harris、George Hawthorne、Ron Jeffries、Bil Kleb、Michael Lee、Hal Macomber、Rob McGurrin、Andrew McKinlay、Erik Petersen、Dwayne Phillips、Frederick Ros、Ellen Salisbury、George Stepanek、Andrew Wagner和Jim Ward。我的编辑Daniel Steinberg提供了非比寻常的有益反馈。Kim Wimpsett再次证明他是一个极其出色的文字编辑。我要感谢Steve Peter在排版上的神奇表现。Rotate Graphics的Mark Tatro绘制了日程游戏一章(第6章)中所有的卡通图画。与Andy Hunt和Dave Thomas的再次合作,同样让我深感荣幸。书中任何错误都由我来负责。书中讲述的故事全部源于真人真事,但考虑到保护隐私,相关的人名、公司名和事件细节都已做过修改。我们开始吧。约翰娜·罗丝曼2007年4月

文摘
插图:

项目管理修炼之道
识别和避免日程安排游戏
即使项目经理自己努力做好估算、规划和日程安排工作,你遇到的出资人、管理层和团队成员还是有可能视日程安排为儿戏。项目经理要把这些人带回现实,不过首先要学会识别这些日程安排游戏。
所有的出资人和管理层都会逼你在日程安排上做出一些让步。即使你制定的项目日程已经相当合理了,他们还是会玩这样的游戏。不过他们抗拒的方式很容易识别,很少脱离几种固定的模式。项目经理只要能够识别出他们所玩的游戏,就可以更容易地掌控项目,得到理所应当的产出。
6.1 给我一块石头
克里夫与团队一起,用一周时间制订出了项目日程。他们完成了“哈德逊湾式启动”(见4.2.4节),并且确定已经识别出了主要的技术风险。他将风险和日程安排告诉了他的上司诺姆。“你就不能再早点完成项目了吗?”诺姆的一句话将克里夫送回了团队,步履蹒跚。
克里夫与团队又花了一周时间修改时间表,得到另外一个日期。他走进诺姆的办公室,说道:“如果你能在这里和这里为我提供更多的人手”,他指着几个里程碑,“我就能用一个月时间完成项目。”诺姆皱着眉头说道:“还不够好。我需要这个项目早点儿结束。”克里夫叹了口气,又回到项目团队中去了。
又过了一周,克里夫拿着另一个日程来找诺姆,“好吧,这就是我们力所能及的结果了。”克里夫说。
诺姆几乎连看都没看,就说道:“但是还是不够好。”
克里夫暴怒道:“你到底想要什么?”
“给我一块石头”(见图6-1),这就是诺姆玩的游戏。

编辑推荐
《项目管理修炼之道》基于作者多年项目管理的实践经验,融会贯通地讲解了成功管理软件项目的各个要素。书中内容涉及软件项目管理的整个流程:项目启动、项目章程、项目计划、项目日程安排、项目估算、明确的角色和职责、明确的开发流程、恰到好处的度量标准、发布条件、参与beta测试的客户……所有成功项目管理的必备元素一应俱全。贯穿全书的提示和生动的案例,更能加深读者对项目管理的领悟。
《项目管理修炼之道》是一本项目经理的实战手册,项目开发人员、软件经理等项目相关人员也能从中获得有益的指导。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多