转自:https://www.cnblogs.com/spec-dog/p/11161744.html

在软件项目研发管理过程中,是否经常出现这样的场景:开发人员不知道什么时候转测;项目经理拿个Excel文档群里一发,某任务前天就应该完成的,怎么现在还没开始搞;前端问这部分UI是谁在做,什么时候能做完;测试说线上这个bug又是谁改出来的,这次没转测这模块……等等。整个协作感觉一团乱麻,团队内部充满了甩锅与抱怨的氛围。软件项目的研发流程该怎么规范,让团队成员都能目标明确,步调一致,让产品迭代充满节奏感。本文基于笔者项目研发管理经验整理,希望起到抛砖引玉的作用,探讨高效团队的协作流程模式。

1. 协作流程图

基本原则:

  1. 所有问题可跟踪 (需求、Bug、优化)
  2. 所有工作透明化 (工作量、进展、Block因素)

2. 各阶段内容详解

2.1. 需求收集确认

本阶段主要是与产品经理相关的活动内容:

  1. 产品经理在每次版本开始之前定期收集各方需求,包括客户反馈、领导意见(对很多中小企业来说,老板就是最大的“用户”)、市场调研及技术团队需求等来源,输出需求列表
  2. 在版本开始之前召开版本计划会议,参与者包括项目经理、产品经理,及项目核心成员,按优先级梳理需求列表,输出下次版本的初步任务列表(之所以说初步,是因为该列表后面可能根据评审情况进行调整)
  3. 产品经理基于初步任务列表完成详细需求文档,组织团队成员——包括相关UI、开发、测试,召开 需求评审会议,输出评审意见及修正完成时间
  4. 产品经理针对需求评审会议中团队提出的意见建议,在修正完成时间内及时修正需求文档,并及时通知团队相关成员,输出确定的需求文档

注:可在需求评审会议后,进行任务的初步认领分配与时间估算,初步确定转测、上线时间节点

2.2. 设计开发

  1. 项目经理根据需求文档完成任务拆解,并在任务管理系统中创建对应任务单,指定经办人
  2. 各经办人认领任务后,根据自身任务的期限,及时与依赖方沟通,确定依赖任务的完成时间,以免影响自身任务进度,存在问题及时向项目经理反馈。
  3. UI设计完成后,相关开发人员与产品经理需对UI设计进行确认,如果涉及内容较多,可组织UI评审会议(由产品经理或项目经理权衡组织)
  4. 涉及流程的开发任务需要有必要的设计,技术相关负责人负责对设计review,没有review的设计不能开发;任务开发完成需要进行代码review
  5. 项目经理定期组织项目例会(紧急版本建议每天一次,较长期版本建议一周一次或两次),持续跟进任务进度与问题,并及时协调处理,以保障进度预期
  6. 在预定转测时间节点前一天,开发人员编写转测文档,描述本次版本调整内容(附上任务列表)及注意事项,并通知项目相关人员(钉钉群或邮件)

2.3. 测试

  1. 需求评审会议后,测试人员需对各功能模块编写测试用例文档,并在转测前组织测试评审会议,对各功能各环节进行复核与查漏补缺
  2. 一次版本任务可根据情况分批测试,并确定每轮转测的内容与时间节点;分批测试完成后,需在上线前进行集成测试,注意预留一定的时间用于问题修复
  3. 测试完成,需要将测试结论通报项目相关人员(钉钉群或邮件),包括遗留问题与是否达到上线要求结论

注:产品经理可在转测后对开发实现进行验收,以确定开发是否符合需求实际,以便及时进行调整

2.4. 上线

  1. 上线人员需在上线前编写上线方案文档,记录此次上线内容,并对此次上线操作进行推演,对所涉及的所有操作按步骤进行记录,如数据库操作,代码merge,jenkins构建等;对可能存在的问题进行备注及对应的处理方案,并提交技术相关负责人review
  2. 项目经理结合测试结论及其它各方面情况,决策是否上线,并将意见通知到项目相关人员(钉钉群或邮件)
  3. 上线人员按照上线方案文档记录的步骤,依次完成上线操作(上线操作最好至少由两人完成,一人操作,一人检视,避免出错)
  4. 上线完成后,测试人员与产品经理对此次上线进行线上验证,确保线上功能流程无问题
  5. 验证无误后,由项目经理或其他指定负责人将上线通知发布至利益相关者,包括项目团队所有成员及相关合作方,说明上线时间、上线内容、影响因素、注意事项等(即时通讯群或邮件)

2.5. 复盘

  1. 版本结束后,项目经理根据情况对上个周期组织复盘总结会,总结存在的问题与原因,及后续规避的办法,总结积累的经验等

以上各阶段并不是完全串行推进的,相互之间存在一些穿插,比如下一版本需求的收集整理与当前版本的开发是并行推进的,开发与测试也可以以分阶段转测的形式并行推进,等等。

3. 一些常用工具

  1. jira 用于项目任务管理,其中Agile插件可方便查看整体任务面板,对任务状态一目了然,需要求团队成员养成及时更新状态的习惯
  2. confluence 文档管理,用于各类文档的集中化维护,以上所述的如需求文档、开发设计文档、转测文档、上线文档等均可使用confluence以项目空间的形式集中化管理。
  3. gitlab 代码管理
  4. jenkins 项目部署构建工具
  5. nexus 搭建maven私有库

4. 总结

团队工作讲求步调与节奏,好的流程与规范可以让一个水平一般的人也能充分发挥其作用,从而让团队整体稳步前进,高效产出。而不好的流程,或根本不重视流程的团队,却往往一盘散沙,甩锅与抱怨充斥,战斗力低下。本文以相对较粗粒度对软件项目的基本流程管理做了介绍,更细节的内容可能需要团队根据内部具体情况进行相应处理与对待。链接: https://pan.baidu.com/s/1WBHsIWoquKTQHJ6IaSql3Q 是笔者基于以前团队敏捷项目管理及一些具体问题的思考分享PPT,供参考。提取码:awya

https://www.cnblogs.com/spec-dog/p/11161744.html的更多相关文章

  1. 访问路径:https://i.cnblogs.com/posts?categoryid=925678

    https://i.cnblogs.com/posts?categoryid=925678

  2. 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 ...

  3. 随笔二-https://www.cnblogs.com/shang1680/p/9657994.html

    作业要求来自https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 GitHub远程仓库的地址:https://github.com/ ...

  4. 211806189杨昊辰 https://www.cnblogs.com/honey1433223/

    211806189杨昊辰 https://www.cnblogs.com/honey1433223/

  5. https://www.cnblogs.com/h2zZhou/p/5440271.html

    https://www.cnblogs.com/h2zZhou/p/5440271.html

  6. https://www.cnblogs.com/soundcode/p/4174410.html

    https://www.cnblogs.com/soundcode/p/4174410.html 1.首先要在服务器端新建一个网站axpx页 然后再网站的后台写代码获取winform传过来的文件名. ...

  7. https://www.cnblogs.com/yudanqu/p/9467803.html

    https://www.cnblogs.com/yudanqu/p/9467803.html

  8. 转发自:一像素 十大经典排序算法(动图演示)原链接:https://www.cnblogs.com/onepixel/articles/7674659.html 个人收藏所用 侵删

    原链接:https://www.cnblogs.com/onepixel/articles/7674659.html     个人收藏所用   侵删 0.算法概述 0.1 算法分类 十种常见排序算法可 ...

  9. @无痕客 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的 ...

随机推荐

  1. Bugku-login1(SKCTF)(SQL约束攻击)

    原因 sql语句中insert和select对长度和空格的处理方式差异造成漏洞. select对参数后面的空格的处理方式是删除,insert只是取规定的最大长度的字符串. 逻辑 1.用 select ...

  2. Bugku-域名解析

    做题之前了解一下域名解析,域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程.一个域名对应一个IP地址 ...

  3. 并发编程——synchronized关键字的使用

    前言 我们一般对共享数据操作的时候,为了达到线程安全我们会使用synchronized关键字去修饰方法或者代码块.那么今天我们就来讲一讲synchronized关键字的使用. 专栏推荐: 并发编程专栏 ...

  4. Python包安装过程

    以下是paramiko-1.7.7.1的安装过程,可以看到整个过程分为步,第一步是build,就是拷贝源文件到build文件夹里, F:\VMFiles\tmpFiles\paramiko-1.7.7 ...

  5. MyBatis学习01(初识MyBatis和CRUD操作实现)

    1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...

  6. DVWA靶场之SQL injection(blind)通关

    盲注,顾名思义,无法从界面上直接查看到执行结果,一般的SQL注入基本绝迹,最多的就是盲注 基本步骤:(由于没有回显了,相比一般的SQL注入,也就不需要确定查询字段数.判断回显位置了) 判断注入类型 破 ...

  7. GitLabRunner命令

    启动命令 gitlab-runner --debug <command> #调试模式排查错误特别有用. gitlab-runner <command> --help #获取帮助 ...

  8. 判断N是否是质数,为什么判断到根号N就可以了

    N=根号N*根号NN的因数除了根号N,其他都是成对存在的, 且必定一个大于根号N一个小于根号N假设N不是质数,有个因数大于根号N(不是N本身) 则N必定有一个与之对应的小于根号N的因数也就是说,如果2 ...

  9. 十六:使用JDBC对数据库进行CRUD

    一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...

  10. 队列(Queue)\双端队列(Deque)

    队列(Queue)\双端队列(Deque) 队列(Queue) 双端队列(Deque) 算法应用 队列(Queue) 特点: 和栈不同,队列的最大特点是先进先出(FIFO),就好像按顺序排队一样.对于 ...