在软件项目研发管理过程中, 是否经常出现这样的场景: 开发人员不知道什么时候转测; 项目经理拿个 Excel 文档群里一发, 某任务前天就应该完成的, 怎么现在还没开始搞; 前端问这部分 UI 是谁在做, 什么时候能做完; 测试说线上这个 bug 又是谁改出来的, 这次没转测这模块...... 等等. 整个协作感觉一团乱麻, 团队内部充满了甩锅与抱怨的氛围. 软件项目的研发流程该怎么规范, 让团队成员都能目标明确, 步调一致, 让产品迭代充满节奏感. 本文基于笔者项目研发管理经验整理, 希望起到抛砖引玉的作用, 探讨高效团队的协作流程模式.
1. 协作流程图
基本原则:
所有问题可跟踪 (需求, Bug, 优化)
所有工作透明化 (工作量, 进展, Block 因素)
2. 各阶段内容详解
2.1. 需求收集确认
本阶段主要是与产品经理相关的活动内容:
产品经理在每次版本开始之前定期收集各方需求, 包括客户反馈, 领导意见(对很多中小企业来说, 老板就是最大的 "用户"), 市场调研及技术团队需求等来源, 输出需求列表
在版本开始之前召开版本计划会议, 参与者包括项目经理, 产品经理, 及项目核心成员, 按优先级梳理需求列表, 输出下次版本的初步任务列表(之所以说初步, 是因为该列表后面可能根据评审情况进行调整)
产品经理基于初步任务列表完成详细需求文档, 组织团队成员 -- 包括相关 UI, 开发, 测试, 召开 需求评审会议, 输出评审意见及修正完成时间
产品经理针对需求评审会议中团队提出的意见建议, 在修正完成时间内及时修正需求文档, 并及时通知团队相关成员, 输出确定的需求文档
注: 可在需求评审会议后, 进行任务的初步认领分配与时间估算, 初步确定转测, 上线时间节点
2.2. 设计开发
项目经理根据需求文档完成任务拆解, 并在任务管理系统中创建对应任务单, 指定经办人
各经办人认领任务后, 根据自身任务的期限, 及时与依赖方沟通, 确定依赖任务的完成时间, 以免影响自身任务进度, 存在问题及时向项目经理反馈.
UI 设计完成后, 相关开发人员与产品经理需对 UI 设计进行确认, 如果涉及内容较多, 可组织 UI 评审会议(由产品经理或项目经理权衡组织)
涉及流程的开发任务需要有必要的设计, 技术相关负责人负责对设计 review, 没有 review 的设计不能开发; 任务开发完成需要进行代码 review
项目经理定期组织项目例会(紧急版本建议每天一次, 较长期版本建议一周一次或两次), 持续跟进任务进度与问题, 并及时协调处理, 以保障进度预期
在预定转测时间节点前一天, 开发人员编写转测文档, 描述本次版本调整内容 (附上任务列表) 及注意事项, 并通知项目相关人员(钉钉群或邮件)
2.3. 测试
需求评审会议后, 测试人员需对各功能模块编写测试用例文档, 并在转测前组织测试评审会议, 对各功能各环节进行复核与查漏补缺
一次版本任务可根据情况分批测试, 并确定每轮转测的内容与时间节点; 分批测试完成后, 需在上线前进行集成测试, 注意预留一定的时间用于问题修复
测试完成, 需要将测试结论通报项目相关人员(钉钉群或邮件), 包括遗留问题与是否达到上线要求结论
注: 产品经理可在转测后对开发实现进行验收, 以确定开发是否符合需求实际, 以便及时进行调整
2.4. 上线
上线人员需在上线前编写上线方案文档, 记录此次上线内容, 并对此次上线操作进行推演, 对所涉及的所有操作按步骤进行记录, 如数据库操作, 代码 merge,jenkins 构建等; 对可能存在的问题进行备注及对应的处理方案, 并提交技术相关负责人 review
项目经理结合测试结论及其它各方面情况, 决策是否上线, 并将意见通知到项目相关人员(钉钉群或邮件)
上线人员按照上线方案文档记录的步骤, 依次完成上线操作(上线操作最好至少由两人完成, 一人操作, 一人检视, 避免出错)
上线完成后, 测试人员与产品经理对此次上线进行线上验证, 确保线上功能流程无问题
验证无误后, 由项目经理或其他指定负责人将上线通知发布至利益相关者, 包括项目团队所有成员及相关合作方, 说明上线时间, 上线内容, 影响因素, 注意事项等(即时通讯群或邮件)
2.5. 复盘
版本结束后, 项目经理根据情况对上个周期组织复盘总结会, 总结存在的问题与原因, 及后续规避的办法, 总结积累的经验等
以上各阶段并不是完全串行推进的, 相互之间存在一些穿插, 比如下一版本需求的收集整理与当前版本的开发是并行推进的, 开发与测试也可以以分阶段转测的形式并行推进, 等等.
3. 一些常用工具
jira 用于项目任务管理, 其中 Agile 插件可方便查看整体任务面板, 对任务状态一目了然, 需要求团队成员养成及时更新状态的习惯
confluence 文档管理, 用于各类文档的集中化维护, 以上所述的如需求文档, 开发设计文档, 转测文档, 上线文档等均可使用 confluence 以项目空间的形式集中化管理.
GitLab 代码管理
jenkins 项目部署构建工具
nexus 搭建 maven 私有库
4. 总结
团队工作讲求步调与节奏, 好的流程与规范可以让一个水平一般的人也能充分发挥其作用, 从而让团队整体稳步前进, 高效产出. 而不好的流程, 或根本不重视流程的团队, 却往往一盘散沙, 甩锅与抱怨充斥, 战斗力低下. 本文以相对较粗粒度对软件项目的基本流程管理做了介绍, 更细节的内容可能需要团队根据内部具体情况进行相应处理与对待. 链接: https://pan.baidu.com/s/1WBHsIWoquKTQHJ6IaSql3Q 是笔者基于以前团队敏捷项目管理及一些具体问题的思考分享 PPT, 供参考. 提取码: awya
我的个人博客地址: http://blog.jboost.cn/
来源: http://www.bubuko.com/infodetail-3119004.html