理顺软件开发各个环节-16(开发管理-问题诊断分析与修复)
5.9问题诊断分析与修复
在联调测试、测试团队测试或上线阶段,发生或发现的问题或缺陷,需要诊断分析和修复。
问题发生了,不仅要分析问题发生的原因,并寻求解决问题的方法,更重要的是分析产生问题背后的原因,并寻找解决之道,从而避免同样的问题重复发生。
用数学语言比喻,分析问题,是求一阶导数;分析问题发生背后的原因,是求二阶导数。
责任人:开发项目组长。
执行人:开发人员(软件工程师)。
关键行为:诊断分析和修复问题。
- 诊断分析问题原因(视需要可能多人/多子系统/多部门协同):
- 文档质量问题:
- 用户故事;
- 软件需求分析文档;
- 总体设计文档;
- 概要设计文档;
- 详细设计文档;
- 接口设计文档;
- 单元测试checklist文档;
- ......
- 需求场景缺少问题:
- 用户故事;
- 软件需求规格书;
- .....
- 设计思路问题:
- 总体设计文档;
- 概要设计文档;
- 详细设计文档;
- 接口设计文档;
- 单元测试checklist文档;
- .....
- 代码质量问题:
- 代码实现;
- .....
- 接口匹配问题:
- 接口设计文档;
- 代码实现;
- 设计文档;
- .....
- 配置管理问题:
- 代码提交merge问题;
- 代码基线及分支管理问题;
- ......
- 软件环境和配置问题:
- 软件系统及版本问题;
- 配置数据;
- ......
- 硬件限制问题:
- 内存;
- CPU;
- 网络带宽;
- 网络抖动;
- 物理可靠性;
- ......
- ......
- 文档质量问题:
- 问题修复:
- 需求分析阶段:
- 修改相关需求分析文档;
- 设计阶段:
- 修改相关设计文档;
- 编码实现阶段:
- 修改代码;
- 修改相关设计文档;
- 修改相关需求分析文档;
- 联调阶段:
- 修改代码;
- 修改相关设计文档;
- 修改相关需求分析文档;
- 提测阶段:
- 修改代码;
- 修改相关设计文档;
- 修改相关需求分析文档;
- 上线阶段:
- 修改代码;
- 修改相关设计文档;
- 修改相关需求分析文档;
- 修改服务器及硬件、系统配置
- ......
- 需求分析阶段:
输入:
- 问题及故障现象描述;
- 日志信息;
- 数据库记录相关信息;
- 软件需求规格书(SRS);
- 数据字典(DD);
- UI&UE交互设计原型(如果有);
- 用户故事;
- 总体设计文档(视需要);
- 概要设计文档;
- 详细设计文档(如果有);
- 接口设计文档;
- 输入项视问题的发生阶段及问题的复杂度而定。
输出:
- 问题诊断分析及修复报告:
- 当前问题分析:
- 问题描述;
- 表面原因;
- 解决方案;
- 深度分析:
- 是否发生过类似原因的问题;
- 深层次原因分析;
- 未来发生类似问题的可能性;
- 改善方案;
- 针对上线阶段问题应都需要做,其它类型,1-2周做一次review
- 当前问题分析:
- 修复后的文档或/及代码。
职责要求:
- 找出问题的表面原因;
- 修复当前问题;
- 分析问题背后的深层次原因;
- 寻找避免同类问题再次发生的改善方案。