书籍详情
平衡敏捷与规范
作者:(美)鲍伊姆,(美)特纳 著,邓辉,孙鸣 译;邓辉译
出版社:清华大学出版社
出版时间:2005-09-01
ISBN:9787302115045
定价:¥28.00
购买这本书可以去
内容简介
如何取得敏捷方法与规范方法的平衡,这是一个困扰着无数软件从业人员的大问题。本书针对这一现状,直接切入有效的核心概念,为定义平衡的软件开发策略提出了建设性方案。书中陈述了敏捷方法和规范方法各自擅长的领域及其各自的劣势,展示了敏捷方法和规范方法实际上是相辅相成的。本书通过介绍出两个开发组一天的项目活动以及富有新意的案例分析,演老婆子了如何平衡敏捷方法与规范方法。这对处于困惑中的软件从业人员而言,具有重要的指导意义。通过本书客观而务实的分析,读者可针对自己的项目,找到最佳的敏捷-规范平衡点。
作者简介
鲍伊姆,美国国家工程院院士,AIAA、IEEE、ACM会员。从1955年开始,他一直致力于为软件开发的敏捷和规范找到平衡点。目前,他担任TRW公司软件教授级工程师和南加州大学软件工程中心主任。过去,他曾担任过DARPA信息科学与技术中心主管和TRW公司首席科学家。他对软件领域做出了杰出贡献,其中包括COCOMO模型、软件过程中的螺旋模型、适用于软件管理和需求决定的W理论,以及经典著作《软件工程经济学》特纳,乔治·华盛顿大学工程管理以及系统工程研究专家,致力于平衡软件开发的研究,具有广泛的工业及政府服务工作经验。在美国国防部工作期间,他负责评估新的软件技术并将其应用到软件防御系统的开发中。他是CMMI作者群的创始人员,参与编著了CMMIDistilled,SecondEdition。
目录
第1章 规范、敏捷和困惑 1
1.1 困惑之源 4
1.1.1 多重定义 4
1.1.2 区分方法的正确使用和误用 4
1.1.3 从最为突出的实例引出过度一般化 5
1.1.4 普遍适用的承诺 5
1.1.5 初期的成功事例 5
1.1.6 纯粹主义论断 6
1.1.7 澄清困惑 6
1.2 两种方法 6
1.2.1 计划驱动方法 7
1.2.2 敏捷方法 11
1.3 找出中间方法 15
参考文献 17
第2章 方法的对比及各自的擅长领域 19
2.1 应用特征 20
2.1.1 主要目标 20
2.1.2 规模 21
2.1.3 环境 22
2.2 管理特征 23
2.2.1 客户关系 23
2.2.2 计划和控制 25
2.2.3 项目沟通 26
2.3 技术特征 27
2.3.1 需求 27
2.3.2 开发 29
2.3.3 测试 30
2.4 人员特征 31
2.4.1 客户 32
2.4.2 开发人员 33
2.4.3 文化 35
2.5 总结 36
2.5.1 擅长领域 36
2.5.2 误解 38
2.5.3 5个关键要素 39
参考文献 41
第3章 项目开发中的一天 43
3.1 典型的一天 43
3.2 使用PSP/TSP的典型的一天* 44
3.2.1 培训 44
3.2.2 工具和环境 45
3.2.3 项目计划 45
3.2.4 状态 46
3.2.5 当天的活动 47
3.3 使用极限编程的典型的一天* 50
3.3.1 培训 50
3.3.2 工具和环境 51
3.3.3 项目计划 51
3.3.4 状态 52
3.3.5 当天的活动 52
3.4 危机时期 54
3.4.1 PSP/TSP对危机的处理 55
3.4.2 XP对危机的处理 56
3.5 总结 56
3.5.1 不同点 57
3.5.2 相似点 57
3.5.3 观察结果 58
参考文献 58
第4章 拓展擅长领域:两个案例分析 59
4.1 使用计划来扩大敏捷方法的应用规模:出租管理的例子 59
4.1.1 假设1:开发或修改一个素材所需的工作量不会随时间和
素材数的增加而增长 60
4.1.2 假设2:在固定时间表和规模不经济的情况下,同样可以
相信人能够按时完成一切事情 61
4.1.3 假设3:简单设计和YAGNI可以轻松扩展到大型项目 62
4.1.4 扩大敏捷方法的使用规模:总结 63
4.2 利用敏捷来简化计划驱动方法: USAF/TRW CCPDS-R 示例 63
4.2.1 个体和交互胜过过程和工具:CCPDS-R 64
4.2.2 可以工作的软件胜过面面俱到的文档:CCPDS-R 65
4.2.3 客户协作胜过合同谈判:CCPDS-R 65
4.2.4 响应变更胜过遵循计划:CCPDS-R 66
4.3 总结 67
参考文献 69
第5章 使用风险平衡敏捷和规范 70
5.1 方法概述 70
5.2 应用实例系列:基于代理的计划系统 74
5.3 中型应用:供应链管理 75
5.3.1 步骤1:SupplyChain.com项目风险评估 76
5.3.2 步骤2:对比敏捷和计划驱动风险 77
5.3.3 步骤4a:单独的风险解决策略 79
5.3.4 步骤4b:SupplyChain.com基于风险的系统开发策略 82
5.4 小型应用:活动计划 85
5.4.1 步骤1:活动计划项目风险评估 85
5.4.2 步骤2:比较敏捷风险和计划驱动风险 85
5.4.3 步骤4a、4b:Event Managers基于风险的系统开发策略 88
5.5 超大型应用:国家危机管理信息系统(NISCM) 89
5.5.1 步骤1:NISCM项目风险评估 90
5.5.2 步骤2:比较敏捷风险和计划驱动风险 92
5.5.3 步骤3和4:基于风险的NISCM系统开发策略 94
5.6 结论 99
参考文献 101
第6章 结论 103
6.1 最重要的六条结论 103
6.1.1 敏捷方法和计划驱动方法都不是银弹 104
6.1.2 敏捷方法和计划驱动方法的擅长领域 105
6.1.3 未来的应用既需要敏捷又需要规范 105
6.1.4 平衡敏捷和规范的方法正在出现 106
6.1.5 逐步建立你的方法——不要自上而下裁剪 106
6.1.6 少关注方法——多关注人、价值观、沟通和期望管理 106
6.2 关于敏捷和规范的平衡,下一步怎么做 109
6.3 软件开发中平衡敏捷和规范的步骤 110
参考文献 112
后记 114
附录A 方法之间的比较 115
A.1 Scrum方法 117
A.1.1 简要描述 117
A.1.2 评注 117
参考文献 118
A.2 自适应软件开发 118
A.2.1 简要描述 118
A.2.2 评注 119
参考文献 119
A.3 简约开发 119
A.3.1 简要描述 119
A.3.2 评注 120
参考文献 120
A.4 Crystal 120
A.4.1 简要描述 121
A.4.2 评注 121
参考文献 121
A.5 极限编程 122
A.5.1 简要描述 122
A.5.2 评注 123
参考文献 123
A.6 动态系统开发方法 123
A.6.1 简要描述 123
A.6.2 评注 124
参考文献 124
A.7 Rational统一过程 125
A.7.1 简要描述 125
A.7.2 评注 125
参考文献 126
A.8 团队软件过程(TSP) 126
A.8.1 简要描述 126
A.8.2 评注 127
参考文献 128
A.9 特征驱动开发 128
A.9.1 简要描述 128
A.9.2 评注 129
参考文献 129
A.10 能力成熟度模型集成 130
A.10.1 简要描述 130
A.10.2 评注 131
参考文献 131
A.11 软件能力成熟度模型 131
A.11.1 简要描述 131
A.11.2 评注 132
参考文献 132
A.12 个体软件过程 133
A.12.1 简要描述 133
A.12.2 评注 134
参考文献 134
A.13 净室 134
A.13.1 简要描述 134
A.13.2 评注 135
参考文献 135
A.14 方法对比表 135
附录B 敏捷软件开发宣言 137
B.1 敏捷宣言遵循的原则 137
附录C 能力成熟度模型 139
C.1 CMM发展简史 139
C.2 CMM的概念 140
C.3 使用模型改进过程 142
注释 143
附录D 平衡敏捷与规范的工具 144
D.1 螺旋模型锚点里程碑 144
D.2 利益实现分析和DMR效果链 147
D.2.1 利益实现 147
D.2.2 效果链 147
D.3 进度自变量 148
D.3.1 共同愿景和期望管理 149
D.3.2 特性优先级化 149
D.3.3 时间表范围估算 150
D.3.4 确定架构和核心功能 150
D.3.5 增量开发 150
D.3.6 变更和进度监控 151
参考文献 151
附录E 经验信息 153
E.1 变更的成本:经验结果 153
E.2 做多少架构工作才够?一次COCOMOII分析 155
E.3 敏捷方法和计划驱动方法的试验与研究 158
E.3.1 项目规模的大体分布 159
E.3.2 过程改进 159
E.3.3 团队软件过程和敏捷方法 161
E.3.4 结对编程 163
E.3.5 敏捷/计划驱动混和方法 164
参考文献 164
平衡是成熟的开始 167
1.1 困惑之源 4
1.1.1 多重定义 4
1.1.2 区分方法的正确使用和误用 4
1.1.3 从最为突出的实例引出过度一般化 5
1.1.4 普遍适用的承诺 5
1.1.5 初期的成功事例 5
1.1.6 纯粹主义论断 6
1.1.7 澄清困惑 6
1.2 两种方法 6
1.2.1 计划驱动方法 7
1.2.2 敏捷方法 11
1.3 找出中间方法 15
参考文献 17
第2章 方法的对比及各自的擅长领域 19
2.1 应用特征 20
2.1.1 主要目标 20
2.1.2 规模 21
2.1.3 环境 22
2.2 管理特征 23
2.2.1 客户关系 23
2.2.2 计划和控制 25
2.2.3 项目沟通 26
2.3 技术特征 27
2.3.1 需求 27
2.3.2 开发 29
2.3.3 测试 30
2.4 人员特征 31
2.4.1 客户 32
2.4.2 开发人员 33
2.4.3 文化 35
2.5 总结 36
2.5.1 擅长领域 36
2.5.2 误解 38
2.5.3 5个关键要素 39
参考文献 41
第3章 项目开发中的一天 43
3.1 典型的一天 43
3.2 使用PSP/TSP的典型的一天* 44
3.2.1 培训 44
3.2.2 工具和环境 45
3.2.3 项目计划 45
3.2.4 状态 46
3.2.5 当天的活动 47
3.3 使用极限编程的典型的一天* 50
3.3.1 培训 50
3.3.2 工具和环境 51
3.3.3 项目计划 51
3.3.4 状态 52
3.3.5 当天的活动 52
3.4 危机时期 54
3.4.1 PSP/TSP对危机的处理 55
3.4.2 XP对危机的处理 56
3.5 总结 56
3.5.1 不同点 57
3.5.2 相似点 57
3.5.3 观察结果 58
参考文献 58
第4章 拓展擅长领域:两个案例分析 59
4.1 使用计划来扩大敏捷方法的应用规模:出租管理的例子 59
4.1.1 假设1:开发或修改一个素材所需的工作量不会随时间和
素材数的增加而增长 60
4.1.2 假设2:在固定时间表和规模不经济的情况下,同样可以
相信人能够按时完成一切事情 61
4.1.3 假设3:简单设计和YAGNI可以轻松扩展到大型项目 62
4.1.4 扩大敏捷方法的使用规模:总结 63
4.2 利用敏捷来简化计划驱动方法: USAF/TRW CCPDS-R 示例 63
4.2.1 个体和交互胜过过程和工具:CCPDS-R 64
4.2.2 可以工作的软件胜过面面俱到的文档:CCPDS-R 65
4.2.3 客户协作胜过合同谈判:CCPDS-R 65
4.2.4 响应变更胜过遵循计划:CCPDS-R 66
4.3 总结 67
参考文献 69
第5章 使用风险平衡敏捷和规范 70
5.1 方法概述 70
5.2 应用实例系列:基于代理的计划系统 74
5.3 中型应用:供应链管理 75
5.3.1 步骤1:SupplyChain.com项目风险评估 76
5.3.2 步骤2:对比敏捷和计划驱动风险 77
5.3.3 步骤4a:单独的风险解决策略 79
5.3.4 步骤4b:SupplyChain.com基于风险的系统开发策略 82
5.4 小型应用:活动计划 85
5.4.1 步骤1:活动计划项目风险评估 85
5.4.2 步骤2:比较敏捷风险和计划驱动风险 85
5.4.3 步骤4a、4b:Event Managers基于风险的系统开发策略 88
5.5 超大型应用:国家危机管理信息系统(NISCM) 89
5.5.1 步骤1:NISCM项目风险评估 90
5.5.2 步骤2:比较敏捷风险和计划驱动风险 92
5.5.3 步骤3和4:基于风险的NISCM系统开发策略 94
5.6 结论 99
参考文献 101
第6章 结论 103
6.1 最重要的六条结论 103
6.1.1 敏捷方法和计划驱动方法都不是银弹 104
6.1.2 敏捷方法和计划驱动方法的擅长领域 105
6.1.3 未来的应用既需要敏捷又需要规范 105
6.1.4 平衡敏捷和规范的方法正在出现 106
6.1.5 逐步建立你的方法——不要自上而下裁剪 106
6.1.6 少关注方法——多关注人、价值观、沟通和期望管理 106
6.2 关于敏捷和规范的平衡,下一步怎么做 109
6.3 软件开发中平衡敏捷和规范的步骤 110
参考文献 112
后记 114
附录A 方法之间的比较 115
A.1 Scrum方法 117
A.1.1 简要描述 117
A.1.2 评注 117
参考文献 118
A.2 自适应软件开发 118
A.2.1 简要描述 118
A.2.2 评注 119
参考文献 119
A.3 简约开发 119
A.3.1 简要描述 119
A.3.2 评注 120
参考文献 120
A.4 Crystal 120
A.4.1 简要描述 121
A.4.2 评注 121
参考文献 121
A.5 极限编程 122
A.5.1 简要描述 122
A.5.2 评注 123
参考文献 123
A.6 动态系统开发方法 123
A.6.1 简要描述 123
A.6.2 评注 124
参考文献 124
A.7 Rational统一过程 125
A.7.1 简要描述 125
A.7.2 评注 125
参考文献 126
A.8 团队软件过程(TSP) 126
A.8.1 简要描述 126
A.8.2 评注 127
参考文献 128
A.9 特征驱动开发 128
A.9.1 简要描述 128
A.9.2 评注 129
参考文献 129
A.10 能力成熟度模型集成 130
A.10.1 简要描述 130
A.10.2 评注 131
参考文献 131
A.11 软件能力成熟度模型 131
A.11.1 简要描述 131
A.11.2 评注 132
参考文献 132
A.12 个体软件过程 133
A.12.1 简要描述 133
A.12.2 评注 134
参考文献 134
A.13 净室 134
A.13.1 简要描述 134
A.13.2 评注 135
参考文献 135
A.14 方法对比表 135
附录B 敏捷软件开发宣言 137
B.1 敏捷宣言遵循的原则 137
附录C 能力成熟度模型 139
C.1 CMM发展简史 139
C.2 CMM的概念 140
C.3 使用模型改进过程 142
注释 143
附录D 平衡敏捷与规范的工具 144
D.1 螺旋模型锚点里程碑 144
D.2 利益实现分析和DMR效果链 147
D.2.1 利益实现 147
D.2.2 效果链 147
D.3 进度自变量 148
D.3.1 共同愿景和期望管理 149
D.3.2 特性优先级化 149
D.3.3 时间表范围估算 150
D.3.4 确定架构和核心功能 150
D.3.5 增量开发 150
D.3.6 变更和进度监控 151
参考文献 151
附录E 经验信息 153
E.1 变更的成本:经验结果 153
E.2 做多少架构工作才够?一次COCOMOII分析 155
E.3 敏捷方法和计划驱动方法的试验与研究 158
E.3.1 项目规模的大体分布 159
E.3.2 过程改进 159
E.3.3 团队软件过程和敏捷方法 161
E.3.4 结对编程 163
E.3.5 敏捷/计划驱动混和方法 164
参考文献 164
平衡是成熟的开始 167
猜您喜欢