https://www.cnblogs.com/spec-dog/p/11161744.html
转自:https://www.cnblogs.com/spec-dog/p/11161744.html
在软件项目研发管理过程中,是否经常出现这样的场景:开发人员不知道什么时候转测;项目经理拿个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
https://www.cnblogs.com/spec-dog/p/11161744.html的更多相关文章
- 访问路径:https://i.cnblogs.com/posts?categoryid=925678
https://i.cnblogs.com/posts?categoryid=925678
- URL https://i.cnblogs.com/EditPosts.aspx?opt=1
URL url = new URL("https://i.cnblogs.com");URL url1 = new URL(url, "EditPosts.aspx?op ...
- 随笔二-https://www.cnblogs.com/shang1680/p/9657994.html
作业要求来自https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 GitHub远程仓库的地址:https://github.com/ ...
- 211806189杨昊辰 https://www.cnblogs.com/honey1433223/
211806189杨昊辰 https://www.cnblogs.com/honey1433223/
- https://www.cnblogs.com/h2zZhou/p/5440271.html
https://www.cnblogs.com/h2zZhou/p/5440271.html
- https://www.cnblogs.com/soundcode/p/4174410.html
https://www.cnblogs.com/soundcode/p/4174410.html 1.首先要在服务器端新建一个网站axpx页 然后再网站的后台写代码获取winform传过来的文件名. ...
- https://www.cnblogs.com/yudanqu/p/9467803.html
https://www.cnblogs.com/yudanqu/p/9467803.html
- 转发自:一像素 十大经典排序算法(动图演示)原链接:https://www.cnblogs.com/onepixel/articles/7674659.html 个人收藏所用 侵删
原链接:https://www.cnblogs.com/onepixel/articles/7674659.html 个人收藏所用 侵删 0.算法概述 0.1 算法分类 十种常见排序算法可 ...
- @无痕客 https://www.cnblogs.com/wuhenke/archive/2012/12/24/2830530.html 通篇引用
无痕客 https://www.cnblogs.com/wuhenke/archive/2012/12/24/2830530.html 关于Async与Await的FAQ 关于Async与Await的 ...
随机推荐
- Bugku-login1(SKCTF)(SQL约束攻击)
原因 sql语句中insert和select对长度和空格的处理方式差异造成漏洞. select对参数后面的空格的处理方式是删除,insert只是取规定的最大长度的字符串. 逻辑 1.用 select ...
- Bugku-域名解析
做题之前了解一下域名解析,域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程.一个域名对应一个IP地址 ...
- 并发编程——synchronized关键字的使用
前言 我们一般对共享数据操作的时候,为了达到线程安全我们会使用synchronized关键字去修饰方法或者代码块.那么今天我们就来讲一讲synchronized关键字的使用. 专栏推荐: 并发编程专栏 ...
- Python包安装过程
以下是paramiko-1.7.7.1的安装过程,可以看到整个过程分为步,第一步是build,就是拷贝源文件到build文件夹里, F:\VMFiles\tmpFiles\paramiko-1.7.7 ...
- MyBatis学习01(初识MyBatis和CRUD操作实现)
1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...
- DVWA靶场之SQL injection(blind)通关
盲注,顾名思义,无法从界面上直接查看到执行结果,一般的SQL注入基本绝迹,最多的就是盲注 基本步骤:(由于没有回显了,相比一般的SQL注入,也就不需要确定查询字段数.判断回显位置了) 判断注入类型 破 ...
- GitLabRunner命令
启动命令 gitlab-runner --debug <command> #调试模式排查错误特别有用. gitlab-runner <command> --help #获取帮助 ...
- 判断N是否是质数,为什么判断到根号N就可以了
N=根号N*根号NN的因数除了根号N,其他都是成对存在的, 且必定一个大于根号N一个小于根号N假设N不是质数,有个因数大于根号N(不是N本身) 则N必定有一个与之对应的小于根号N的因数也就是说,如果2 ...
- 十六:使用JDBC对数据库进行CRUD
一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...
- 队列(Queue)\双端队列(Deque)
队列(Queue)\双端队列(Deque) 队列(Queue) 双端队列(Deque) 算法应用 队列(Queue) 特点: 和栈不同,队列的最大特点是先进先出(FIFO),就好像按顺序排队一样.对于 ...