在所有成员领悟到提交合格产品所需要的关键过程元素之前,项目往往陷入某个特定主题的细节的沼泽中。然后,当项目拖后时,大家就会怪罪以前被过分强调的某些活动,或者是怪罪大家不理解其用处的某些活动,“嘿,我早就告诉你需求管理(或者是用例、收集项目度量数据、使用 配置管理、使用缺陷跟踪工具、召开项目状态 会议里面的一个或几个)会放慢我们的进度!你不信!”
有一个“精华或要素”列表让 团队成员采用一种更系统、更全面的方式来思考和执行整个软件开发过程。一旦一个过程框架或“构架”到位了,团队成员就能更有效的面对和处理单个的问题域(大部分时间我得承认,需求管理应该在列表的顶部)。同样,一开始就标识显然的问题以及相关的 风险,并且确定处理他们的优先级,也是很重要的,这样,团队才能在早期就根据需要采取相应的解决或缓解对策。
RUP 的十大要素
那么,在 RUP 的十大要素中应该包括哪些内容呢?下面是我的意见:
1. 开发前景
2. 达成计划
3. 标识和减小风险
4. 分配和跟踪任务
5. 检查商业理由
6. 设计组件构架
7. 对产品进行增量式的构建和测试
8. 验证和评价结果
9. 管理和控制变化
10. 提供用户支持
让我们逐一的审视这些要素,看一看它们什么地方适合 RUP,找出它们能够成为十大要素的理由。
1. 开发一个前景
有一个清晰的前景是开发一个满足涉众真正需求的产品的关键。
前景抓住了 RUP 需求流程的要点:分析问题,理解涉众需求,定义系统,当需求变化时管理需求。
前景给更详细的技术需求提供了一个高层的、有时候是合同式的基础。正像这个术语隐含的那样,它是软件项目的一个清晰的、通常是高层的视图,能被过程中任何决策者或者实施者借用。它捕获了非常高层的需求和设计约束,让前景的读者能理解将要开发的系统。它还提供了项目审批流程的输入,因此就与商业理由密切相关。最后,由于前景构成了“项目是什么?”和“为什么要进行这个项目?”,所以可以把前景作为验证将来决策的方式之一。
对前景的陈述应该能回答以下问题,需要的话这些问题还可以分成更小、更详细的问题:
关键术语是什么?(词汇表)
我们尝试解决的问题是什么?(问题陈述)
涉众是谁?用户是谁?他们各自的需求是什么?
产品的特性是什么?
功能性需求是什么?(用例)
非功能性需求是什么?
设计约束是什么?
2. 达成计划
“产品的质量只会和产品的计划一样好。” (2)
在 RUP 中,软件开发计划(SDP)综合了管理项目所需的各种信息,也许会包括一些在先启阶段开发的ザ赖哪谌荨DP 必须在整个项目中被维护和更新。
SDP 定义了项目时间表(包括项目计划和迭代计划)和 资源需求(资源和工具),可以根据项目进度表来跟踪项目进展。同时也指导了其他过程内容的计划:项目组织、需求管理计划、配置管理计划、问题解决计划、QA 计划、测试计划、评估计划以及产品验收计划。
软件开发计划的格式远远没有计划活动本身以及驱动这些活动的思想重要。正如 Dwight D.Eisenhower 所说:“ plan 什么也不是,planning 才是一切。”
“达成计划”—和列表中第 3、4、5、8 条一起—抓住了 RUP 中项目管理流程的要点。项目管理流程包括以下活动:构思项目、评估项目规模和风险、监测与控制项目、计划和评估每个迭代和阶段。