普通软件项目开发过程规范(二)—— 启动和计划阶段
启动阶段
图 3-1 启动阶段的任务和工件
- 产品领域研究
研究产品所在领域的状况,为项目论证提供依据。研究内容包括:
-
- 产品领域的现状和前景
- 产品领域的商业模式和业务流程
- 产品的价值和盈利空间
- 产品的特性和复杂度
- 技术可行性研究
研究产品的实现技术,总结技术可行性。研究内容包括:
-
- 类似产品的当前实现技术和技术趋势
- 实现技术的候选方案
- 各个方案的优点、成本和风险
- 开发团队与实现技术的匹配情况
- 项目论证
基于商业和技术等方面对项目的可行性进行论证,确定项目是否开展。如果开展项目,则进一步论证项目的总体方案。
论证的内容包括:
-
- 商业可行性
- 技术可行性
- 当前产品与类似产品的比较
- 项目收益和前景
- 项目的成本和风险
- 项目的总体方案
- 确定项目目标和范围
项目开始时,所有相关人员必须对项目的目标和范围达成共识,形成共同的项目愿景。并把愿景叙述为《项目开发大纲》向相关人员传达。
《项目开发大纲》的内容包括:
概 述 |
用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责 |
高级功能 |
用一个段落来综述产品,再用一个段落来描述每个重要的功能 |
不实现的功能 |
用一个段落来描述每个对产品有用的但本项目不实现的功能 |
涉 众 |
用一个段落来明确每个重要的涉众群体和他们的风险股本 |
项目需求 |
用一个段落来讲述每个重要的项目需求 |
项目风险 |
按风险暴露量对每个重要的项目风险都用一个段落来讨论 |
项目回报 |
用一个段落综述产品的回报,其后再对每个重要的项目回报都用一个段落来讨论 |
结 论 |
用一到三个段落将上述所有部分联系起来,明确项目的需求和风险,再用论点和论据来总结为什么这个项目会成功 |
表 3-1 项目开发大纲
计划阶段
图 4-1 计划阶段的任务和工件
- 规模、工作量评估
围绕各项计划的制定工作对项目的规模、工作量等进行评估,评估的内容包括:
-
- 模块数量与复杂度
- 输入、输出和对外接口等数量与复杂度
- SLOC和功能点
- 非生产性的支持工作量
- 开发工作量(人月)
- 进度与里程碑
- 进度风险
- 定制项目开发计划
项目开发计划体现了项目组对整个开发周期的预期,指定了项目开发的总体方针。与其他计划一样,项目开发计划不是固定不变的,在执行过程中要对计划进行监控,可能会根据实际情况修改计划并重新发布。
《项目开发计划》的内容包括:
概 述 |
用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责。 (《项目开发计划》的概述部分应该是《项目开发大纲》中概述部分的拷贝。当项目计划改变时,修订《项目开发计划》的概述部分而不是修订《项目开发大纲》。这样,以后在进行项目评价时,通过比较《项目开发大纲》和《项目开发计划》的概述,就能看出项目是如何改变的) |
高级功能 |
用一到五页的篇幅来概述产品的功能,其中,要包括这些功能的附加信息(开发者需要这样的信息来了解实现需求)。 |
项目成员 |
确定软件工程职能角色,以及分配到这些角色的人员数量。 |
软件过程 |
概述这个项目中所应用的软件过程。 (具体内容可在《质量保证计划》中定义) |
软件工程方法 |
概述这个项目中所应用的软件工程方法和技术。 (具体内容可在《质量保证计划》中定义) |
进度和工作量 |
这一部分要表达出整个项目进度和工作量的估计。其中要包括:
(具体进度表内容可在《开发进度表》中定义) |
风险管理计划 |
概述这个项目中风险管理计划。 (具体内容可在《风险管理计划》中定义) |
测 量 |
概述这个项目中要收集的测量。 |
软件工具 |
列出要使用的每一项软件工具,以及该工具所支持的任务。 |
项目支持 |
硬件支持 明确所需的硬件,包括那些需要移动、获取或升级的硬件。 软件支持 明确所需的软件,包括需要获取、安装或升级的软件件。 人力支持 由哪个人、部门或团队为开发组的哪项任务提供支持。 |
表 4-1 项目开发计划
- 定制风险管理计划
风险管理任务包括:风险识别、风险分析、确定风险优先级、定制风险化解方案、风险化解和风险监控【如:图4-2】。
图 4-2 风险管理任务
《风险管理计划》定义这些任务的执行流程和人员分配。
《风险管理计划》的内容包括:
概 述 |
用文字和图表概述风险管理任务的总体执行流程。 |
风险识别 |
详细说明“风险识别”任务的实施细节和各项工作的负责人。 |
风险分析 |
详细说明“风险分析”任务的实施细节和各项工作的负责人。 |
确定风险优先级 |
详细说明“确定风险优先级”任务的实施细节和各项工作的负责人。 |
定制风险化解方案 |
详细说明“定制风险处理方案”任务的实施细节和各项工作的负责人。 |
风险化解 |
当风险发生时,需要采取相应的措施化解风险。 这部分的内容是描述风险化解工作的操作规范和流程。 |
风险监控 |
详细说明风险监控任务的实施细节和各项工作的负责人。 |
表 4-2 风险管理计划
风险管理中通常会用到《Top N 风险列表》,风险列表按照风险暴露量排序列出当前项目中主要的N个风险,《Top N 风险列表》的内容包括:
本周排名 |
本周的排名(如果本周已被完全化解用“---”表示) |
上周排名 |
上周排名(如果是新识别的风险用“---”表示) |
上表周数 |
该风险已上表的周数 |
风 险 |
风险的名称或简述 |
类 型 |
风险类型(只针对进度相关的风险):
|
发生概率 |
风险发生的百分比概率 |
损失程度 |
风险发生时损失的进度(工作日或工作周) |
暴露量 |
发生概率 X 损失程度 |
状 态 |
风险的当前状态:未发生、已发生、已化解 |
化解方案 |
简述风险的化解方案,如果有具体的化解方案文档则链接到相应文档 |
化解进度 |
对已发生的风险,简述化解进度(未发生的风险用“---”表示) |
表 4-3 风险列表
- 定制质量保证计划
保证工作质量的一个重要步骤是制定一套合理的质量保证计划并贯彻执行。
《质量保证计划》的内容包括:
概 述 |
说明编写的目的、适用范围以及对相关人员的要求等 |
软件过程 |
详细说明这个项目中所应用的软件过程。 |
软件工程方法 |
详细说明这个项目中所应用的软件工程方法和技术。 |
工作规范 |
对工程方法中的各种工作任务进行规范,明确执行的时机、流程和准则等。这些工作任务包括:
常规开发活动 (需求分析、架构设计、详细设计、编码和测试、发布和实施等) 会议 (工作例会、进度会议、审查会议等) 评审 (方案评审、技术评审、质量评审等) 测量 (产品规模测量、进度测量、缺陷率测量、测试覆盖率测量等) 其他活动 (技能培训、资料收集、内部流、客户沟通等) |
表 4-4 工作规范
- 定制开发进度计划
基于当前对项目的规模和工作量评估,定制初步的开发进度表,作为项目开发计划的组成部分。
《开发进度表》的内容包括:
-
- 项目的开始和结束时间
- 项目各个阶段的开始和结束时间
- 每个阶段的工作任务及其开始和结束时间
- 每个工作任务的子任务的及其开始和结束时间
- 里程碑和同步点
- 角色的定义和任务分配
作为跟踪项目进度的重要依据,进度表在项目推进过程中需要不断细化。另外,当实际进度与计划进度出现偏差时,需要修改进度表并重新发布。