如何开一场高效的迭代排期会
作 者 | 洪永潮、李田莉
来 源 | 阿里巴巴云效团队
作为团队的负责人,你希望将研发模式从瀑布式转为敏捷,并进行持续改进,但却不知道从哪里开始?
作为项目管理人员,你希望负责建立迭代机制,并进行规模化的推广和度量,但却不知道如何快速建立机制?
作为产品经理,需求排期后,你希望能方便地跟进需求进展,及时发现问题,但却不知道怎么跟进方便?
接下来,我们将通过 3 篇文章,带领大家逐步了解敏捷开发的全过程及高效落地指南。
敏捷开发之 Scrum 方法介绍
在敏捷开发落地的过程中,通常采用 Scrum 的方式,所以我们以 Scrum 为例来介绍敏捷开发的流程和场景(如上图),在这个过程中:
1.首先产品经理会进行:
○ 需求的收集、调研和分析,形成按优先级排序的产品待办列表;
○ 对高优先级的需求,进行详细设计和澄清;
○ 通过迭代排期会,形成按优先级排序的迭代待办列表;
○ 排期完成后,需求从产品经理侧流向技术同学侧。
2.在需求澄清的情况下,研发团队来会:
○ 以 1~4 周的迭代周期进行持续开发和交付迭代待办列表中的内容
○ 采用每日站会来跟进计划和发现问题,并在迭代过程中持续或间歇性地交付可工作的软件。
与此同时,产品经理会在这个阶段,进行下一迭代的需求设计和澄清。
3.迭代待办列表开发完成后,产品经理和研发团队一起进行迭代演示,交付可工作的软件。
4.最后,通过迭代复盘会活动驱动团队持续改进。
在落地 Scrum 方法时,无论是阿里内部还是云效的企业客户,通常采用双周迭代的运作机制,下面我们以「双周迭代」为例进行介绍。
双周迭代的运作机制
双周迭代时序图
上图是双周迭代的运作流程:
在 N-2 和 N-1 周,业务和产品会持续做需求的分析和设计,会把要排入迭代的需求按优先级高低准备好,包括需求的分析、设计和澄清;
随后开发和测试同学在排期后的两周内( N 周和 N+1周),按优先级对需求进行开发、测试、验收和发布上线。注:排入迭代的需求在迭代排期前要已澄清清楚,并明确验收标准。
迭代排期在双周迭代中起着前后衔接的作用,每两周进行一次,一般每次 1~2 小时。排期前,业务和产品同学需要准备好待排期的需求,排期后,开发和测试同学需要按照计划对需求进行开发、验证和发布。
迭代节奏和发布频率是要解耦的,迭代节奏可以是两周或一周,而发布频率可以是每两周一次、一周一次、或一周多次等。有的企业或团队会按照每个迭代进行一次发布来落地,也有可能按照一个迭代进行多次发布来落地。
明确的迭代目标:迭代需要有比较明确的目标,没有目标容易出现需求范围蔓延的情况,导致团队成员无法聚焦
需求唯一优先级:很多产品经理在提迭代需求时,会出现需求的优先级都是“紧急”的情况,其实这反映了需求的真正优先级是不明确的。我们需要明确出唯一优先级排序,这个过程不但能够让团队深入思考、对优先级提出积极挑战,也能梳理出优先级高、真正对业务有价值的需求;
需求已澄清且技术方案已确认:需求已澄清是排入迭代的基本要求,有些团队会把未经过分析、设计和澄清的需求排入迭代,导致排期时无法给出准确的工作量预估,也无法快速进入开发,这会影响其他需求的进展和整个迭代的节奏;
需求已拆分:通常情况下,需求要拆分到在一个迭代内可以完成交付,方便快速验证业务假设,缩短业务的响应周期;
明确需求负责人:需求进入开发时,一般会需要多位技术同学合作完成,如前端和后端,或多个后端,这时我们建议由其中一位同学担任需求负责人,跟进需求到发布上线为止。这样可以更好地协调开发内部协作,避免过程中的争论或互相推脱,提升整体的协作效率。
明确关键时间点:需求排期时,往往会有 3 个时间点需要明确:
同步下一个迭代的需求:有的研发团队会说不知道接下来要做什么,也有的团队会出现需求断档,这里建议产品经理可以提前把下一迭代要做的需求同步给大家,让大家了解近期规划,以便更好地安排研发节奏。
迭代名称:需要遵循一定的规范,如“迭代+迭代结束日期”;
迭代容量:团队人数相对固定时,一个迭代内的工时容量也是相对固定的,如:双周迭代,是10个工作日,如果团队有 8 位同学,一天的有效工时按照 7 个小时计算,容量就是 560 个小时;
迭代目标:目标需要具体可衡量,且与业务目标有直接或间接的关系。
明确需求工作量:需求工作量是指各需求需要的人力工时数量,可在排期会前或会上进行估算;
确定迭代容量:迭代容量是研发团队一个迭代所能投入到需求完成的工时总量;
明确需求的负责人:这里特指需求的开发负责人,需要负责需求从进入开发到发布上线的全过程;
需求拆分到开发任务:需求的开发负责人需要负责将需求拆解到各个开发任务,Web端、H5 或 客户端的需求,往往需要前端和后端的联合开发,或者一个需求要不同开发同学负责,还会涉及到联调任务,这是便需要对需求进行任务的拆解。不过,对于特别小颗粒度的需求,也可不进行任务拆解。
如果是一个迭代发布一次,相对简单,上一步的关键时间点可以选择不填。
如果是一个迭代发布多次的,需要查看每个窗口发布的具体需求条目和数量,往往发布窗口的时间和需求的计划完成时间是一致的。
如果是持续发布的,那这一条可以忽略。
本次迭代的目标和已排期的需求列表;
已排期的需求用迭代标记,规划入迭代;
各需求的负责人和关键时间点;
本次迭代内的发布窗口和对应的需求列表;
下一次计划排期的需求列表;
输出迭代排期会议纪要,同步给相关人员(包括团队成员、业务方、依赖和被依赖方等)。
迭代工作项概览:统计迭代中排序的需求、任务和缺陷的数量情况;
迭代工时概览:展示迭代容量,统计迭代中需求的预计工时总和;
工作项排名:按照团队成员负责的工作项(包含需求、任务和缺陷)数量进行排名,凸显前5名,方便对工作内容进行重新安排和调整;
迭代工时排名:按照团队成员负责的工作项预计工时数排名,凸显前 5 名,方便对工作内容进行重新安排和调整。
迭代排期会前,产品和研发团队需要把待排期的需求准备好;
迭代排期会时,产品和研发团队需要达成共识,明确排入迭代的需求列表,并做出相应的承诺;
迭代排期会后,需要对排期的计划进行推动和跟进,直到需求完成开发、测试和发布上线为止。