技术预研(Technical Pre-Research, TPR)是指在立项之后到开发工作完成之前的时间内,对项目将采用的关键技术提前学习和研究,以便尽可能早地发现并解决开发过程中将会遇到的技术障碍。
技术预研过程域是SPP模型的重要组成部分。本规范阐述了技术预研的规程,该规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。
本规范适用于国内IT企业的软件研发项目。建议用户根据自身情况(如商业目标、研发实力等)适当地修改本规范,然后推广使用。
10.1 介绍
在产品开发过程中,技术问题可能会层出不穷。如果一点技术障碍都没有遇到,要么是开发人员的技术水平实在太高了,要么是项目的技术含量实在太低了,这类情况比较少见。
一般说来,在设计或实现阶段遇到了技术障碍,才去攻克问题,其代价通常比较高。因为其他人的工作可能会被阻塞,已经投入的不少资源将被闲置。最糟糕的是,如果此技术障碍无法攻克,不得已要改变技术方案、重新设计系统,那么不仅浪费了人力、财力、时间,处理不好还会使开发队伍陷入混乱状态。
所以开展技术预研工作至少有两大好处:
- 帮助开发人员更好地进行需求开发、系统设计和程序设计。
- 防止开发进程被技术障碍打断,导致大量的相关工作被阻塞。
技术预研的流程如图10-1所示。
技术预研过程中产生的主要文档有:
- 《技术预研计划》,模板见 [SPP-TEMP-TPR-PLAN]。
- 《技术预研报告》,模板见 [SPP-TEMP-TPR-REPORT]。
10.2 技术预研规程
10.2.1 目的
- 提前发现并解决开发过程中将会遇到的技术障碍。
10.2.2 角色与职责
- 项目经理或技术负责人识别项目中的技术难题,指定技术预研人员攻克该问题。
10.2.3 启动准则
- 项目中的技术难题已经识别。
- 技术预研人员已经指定。
10.2.4 输入
- 一些用户需求文档和技术方案文档
10.2.5 主要步骤
[Step1] 制定计划
- 技术预研人员制定《技术预研计划》,主要内容包括:
- 确定技术预研的内容和目标。
- 确定应递交的工作成果。
- 分配任务,制定进度表。
- 项目经理或技术负责人审批该计划,如果该计划被批准,则转向 [Step2]。
[Step2] 开展技术预研
- 技术预研人员按照计划开展技术预研工作。
[Step3] 撰写技术预研报告
- 在预研任务结束时,技术预研人员撰写《技术预研报告》。
[后续活动]
- 技术预研人员向相关人员介绍工作成果。
- 项目经理或技术负责人视具体情况决定是否对该预研成果进行技术评审。
10.2.6 输出
- 《技术预研报告》
10.2.7 结束准则
- 指定的预研任务已经完成,《技术预研报告》已经产生。
10.2.8 度量
- 技术预研人员统计工作量和工作成果的规模,汇报给项目经理。
10.3 实施建议
- 技术预研不同于真正地开发产品,投入人员与时间相对比较少。一个项目可以有多次技术预研,由项目经理或技术负责人视具体情况而定。
- 对技术预研过程中产生的所有有价值的文档进行配置管理。