序言 Crystal Clear——小型项目安全开发的重要原则 1
第1章 阐释(旁观者之见) 1
第2章 应用(七大体系特征) 21
体系特征一:经常交付 22
体系特征二:反思改进 24
体系特征三:渗透式交流 26
体系特征四:个人安全 31
体系特征五:焦点 34
体系特征六:与专家用户建立方便的联系 36
体系特征七:配有自动测试、配置管理和经常集成功能的技术环境 38
实证:不同机构间的协作 43
对体系特征的反思 44
第3章 实践(策略与方法) 47
策略 47
策略一:360度全方位考察 48
策略二:早期胜利 49
策略三:灵活程序框架 50
策略四:增量重建 52
策略五:信息传播器 55
方法 59
方法一:方法体系建成法 60
方法二:反思研讨会 64
方法三:闪电式计划 67
方法四:利用专门排列技术的特尔菲估计 75
方法五:每日起立会议 77
方法六:实质性交互设计 78
方法七:流程微观模型 89
方法八:肩并肩编程 90
方法九:燃烧图表 92
对策略以及方法的反思 106
第4章 探究(流程) 109
项目周期 115
交付周期 120
迭代周期 123
集成周期 126
开发部曲 127
工作周与工作日 127
关于流程的反思 128
第5章 检验(工作产品) 129
角色以及他们的工作产品 131
角色:主办方、专家用户、总设计师、设计师兼编程员、商务专家、协调者、测试员、书写人员 132
关于项目样本的一些注释 135
主办方:具有取舍优先的任务综述 136
团队:团队结构和工作惯例 138
团队:反思研讨会成果 141
协调者:项目规划图、发布计划、项目状况、迭代计划和状况、评审进度表、风险列表 143
协调者:项目规划图 144
协调者:发布计划 145
协调者:项目状况 148
协调者:风险列表 152
协调者:迭代计划→迭代状况 153
协调者:评审进度表 156
商务专家与专家用户:角色目标列表 157
商务专家:需求档案 158
商务专家和专家用户:用例 162
专家用户:用户角色模型 164
设计师兼编程员:屏幕草图、系统架构、源代码、公共领域模型、设计草图与注解 165
设计师兼编程员:屏幕草图 167
总设计师:系统架构 169
设计师兼编程员:公共领域模型 172
设计师兼编程员:源代码和交付包 174
设计师兼编程员:设计注解 174
设计师兼编程员:测试 177
测试员:漏洞报告 180
书写人员:帮助文本文件、用户手册以及培训手册 181
对工作产品的反思 182
第6章 误解(常见错误) 185
“我们扎根在一个地方并在此进行了为时两个星期的迭代——但是为什么我们还是失败了?” 185
“两名开发人员被一条走廊以及一扇锁上的门给分开了。” 187
“我们用这个大型基础结构进行初次交付。” 188
“我们的第一次交付是关于数据表的一场演示。” 189
“无可用用户,但一名测试工程师下周即将加入我们团队。” 189
“一名开发人员拒绝对他的设计进行讨论或者拒绝向其他成员展示他的代码。” 190
“用户希望我们一次就能将所有功能都交付到他们桌上……” 190
“我们写下了一个基本概念和系统的设计方案。我们都坐到了一起,这样应该就可以了吧。” 191
“我们有一些小于用例的里程碑事件,还有一些大于用例的里程碑事件。” 191
“谁拥有这些代码?” 192
“能否让测试工程师编写测试?如何对图形用户界面(GUI)进行回归测试?” 193
“最佳迭代周期为多长?” 193
第7章 疑问(常见问题) 197
问题1:水晶项目管理体系的基础是什么? 198
问题2:什么是水晶家族? 206
问题3:这是一种什么样的方法体系描述? 209
问题4:水晶项目管理体系的概要表是怎样的? 213
问题5:为什么要有不同的篇章形式? 214
问题6:水晶项目管理体系处于方法体系万神殿的哪个位置? 215
问题7:CMM(I)怎么样? 223
问题8:什么是UML,什么是结构? 226
问题9:为什么目的只为安全区域?难道我们就不能做得更好吗? 227
问题10:分布式的团队怎么样? 228
问题11:较大型的团队又怎样? 230
问题12:固定价格以及固定范围的项目怎样? 231
问题13:我该如何评价我们究竟有多“敏捷”或有多“水晶”? 232
问题14:我该如何开始? 234
第8章 测试(案例研究) 235
现场报告 236
审核员报告 258
领域内的反思和审核报告 263
第9章 集萃(精简版) 267