DevOps团队敏捷开发流程
近期根据我们DevOps开发团队敏捷开发项目的实践经验,将完整流程整理如下,这份规程也不完全算是敏捷专属的项目管理规程,主要是在结合我们公司实际的情况下编写出来的,大家在实际过程中可以参考。
1. 目的
规范软件产品开发项目管理过程,指导开展项目研发、管理等活动。
2. 适用范围
本章程的作用范围为软件产品开发立项至结项管理过程。
1.对项目经理开展产品规划及设计活动以及项目管理手段和应遵循的开发流程提供了指导;
2.对项目团队的日常管理活动及内容进行了指导;
3. 角色及职责定义
Scrum Master——项目负责人、项目经理
保护团队不受外界干扰,是团队的领导和推进者,负责提升 Scrum 团队的工作效率,控制 Scrum 中的“检视和适应”周期过程。与 Product Owner 一起将投资产出最大化,他确保所有的利益相关者都可以理解敏捷和尊重敏捷的理念。
Product Owner——产品负责人、产品经理
确定产品的功能,拆分用户故事。
需求功能确定优先级。
接受或拒绝开发团队的工作成果。
参与产品开发过程中的有关会议。
UI
根据用户故事,负责产品的功能交互及界面设计
组织开展人机交互及用户体验,不断跟踪改进,提高产品表现力。
参与产品开发过程中的有关会议。
开发
根据用户故事,负责产品的技术架构设计及功能开发
评估、设计及维护产品相应模块,确保模块的稳定性、易用性、高效性。
参加产品开发过程中的有关会议。
测试
根据用户故事,设计产品测试标准,确保产品品质满足市场需求。
合理分配测试资源,组织产品测试并优化测试流程及测试标准,提高测试效率。
编写产品测试用例,提交测试问题,编写测试总结报告,以测试角度来确定产品版本是否发布。
4. Scrum中的产出物
Product Backlog——Backlog 待开发项,积压的任务。
产品 Backlog 包括了所有需要交付的内容,其内容根据业务需求的价值顺序排列,每个 Backlog 的优先级是可以调整的,需求是可以增减的,因此产品 Backlog 将根据不断增长来持续驱动维护。
Sprint Backlog——Sprint 本意为“冲刺”,指迭代周期,长度通常是一至两周。
在 Sprint 开始前,定义本次 Sprint 要讨论的“Sprint Backlog”,从中产生本次 Sprint 要完成的 “已定 Product Backlog”。
已定 Product Backlog是 Sprint 计划会议的产物,它定义了团队所接受的工作量,在整个 Sprint 过程中它将保持不变。
User Story、Task——用户故事、任务
用 User Story 来描述 Sprint Backlog 里的项目,User Story 是从用户的角度对系统的某个功能模块所作的简短描述。一个 User Story 描述了项目中的一个小功能,以及这个功能完成之后将会产生什么效果,或者说能为客户创造什么价值。一个 User Story 的大小和复杂度应该以能在一个 Sprint 中完成为宜。如果 User Story 太大,可能会导致对它的开发横跨几个Sprint,此时就应该将这个 User Story 分解。为了能够及时,高效地完成每个 Story,Scrum 团队会把每个 Story 分解成若干个 Task。每个Task 的时间最好不要超过8小时,保证在1个工作日内完成,如果 Task 的时间超过了8个小时,就说明Task的划分有问题,需要特别注意。
障碍 Backlog——问题列表,积压的待处理事务。
列举了所有团队内部和团队相关的和阻碍项目的进度的问题,Scrum Master 需要确保所有的障碍 Backlog 中的问题都已分配并可以得到解决。
5. 项目管理过程
按照产品开发过程,可将整个过程分为项目启动、需求设计、开发测试、上线、运营跟进。下面分别阐述在每个阶段过程中该如何进行。
5.1 需求启动
通常是从准备项目启动会到召开会议这个阶段,需要完成项目目标,需求范围的初步确认,项目团队成员,其他资源的安排。
确定本次开发的初步目标并达成共识
对于项目目标,需要和干系人在以下几点上达成共识:
项目的背景、目标用户、核心人员及产品定位是什么
各人员在项目中扮演的角色和对项目的作用是什么
5.2 需求设计
将确定的需求整理并输出WIKI文档及产品原型
召开需求启动会,参加人员包括:项目经理及项目团队、其他干系人代表
主要议题包括:申明本期开发目标范围及对组织目标的贡献。
设定期望,统一思想
文档内容的宣讲。
5.3 开发测试
A、迭代N的需求细化
考虑每个迭代需要完成的用户故事;
用户故事需包含几个部分,工作量评估、功能性需求、非功能性需求。
用户故事编写完成后需要在团队内部进行需求评审,一方面是为了向团队成员解读该需求,另一方面团队成员也可在评审时给出指导性意见。
B、测试用例评审
测试人员根据用户故事要求编写对应的测试用例,并组织项目团队进行测试用例评审。根据评审意见修改测试用例
C、开发
将用户故事的需求开发的过程。
D、开发自测
在开发过程中,每完成一个功能点,都需要及时的进行开发自测并通知产品策划人员进行验收体验。
代码提交可通过更新Jira任务的状态来关联Gitlab中代码的提交及状态更新。
E、验收
开发完成后,产品策划需要对开发完成的成果进行验收,验证其是否符合用户故事的要求,验证通过后方可流到测试环节,否则需与开发详细讨论其不符合性,其验收的checklist可做比较。
F、测试和回归
提交测试时,必须要有正确的版本。测试人员根据测试用例进行测试,在Jira中提交测试bug,并根据测试的角度给出产品是否发布的意见。
G、bug修改
在Jira中获取分配给自己的bug进行修改。
H、预生产发布
迭代一定版本后,在发布生产之前进行预生产测试。
5.4 上线
预生产测试通过后发布生产。
5.5 运营跟进
每日站立会
组织者轮流担任,负责控制节奏,记录问题,以备会后跟踪。
每人讲自己昨天做了什么,有什么问题,今天的计划是什么;
其他人了解别人的工作情况,并发现指出可能存在的问题。
对于发现的问题,鼓励认领,其余由项目经理指定责任人。
时间通常控制在15分钟内。
会议期间,更新任务墙。
周报:(1、反馈项目计划的执行情况,强调本周工作要达成的目标;2、暴露出项目的问题,特别是需要领导或其他团队需要协助的问题。周报可在IT平台中输出。)
迭代回顾:每人讲述本次迭代做的好的地方和不好的地方,回顾上个迭代不好的地方,看看改进情况。
6. 总结阶段
项目经理指导产品经理收集总结项目的产品运营数据(度量指标),同时指导团队成员从自身角色进行总结,包括测试、开发、UI等。
由PM将过程文档和经验教训总结进行归档并制定改进产品计划。