点击标题下「蓝字」可快速关注
上一篇介绍了看板站会,它是管理价值流的实践之一,对应价值流动过程的管理。本篇介绍管理价值流动的另一个实践——就绪队列填充会议。如上图所示,它对应价值输入的管理,是看板方法中最重要的计划活动。
一、什么是就绪队列和就绪队列填充
就绪队列是开发团队的输入
如上图所示,就绪队列一般在需求池之后,团队正式开始设计和实现之前。它是开发团队[1]的输入列,用以放置就绪(准备好的,随时可以开始实现的)需求。不同的文献中,对就绪队列的叫法不同,强调了不同方面,但大致意义相同,如:
已承诺(Committed)队列:强调团队承诺开发这些需求
已计划(Planned)队列:强调进入就绪队列意味着计划完毕
已选择(Selected)队列:强调从众多机会中选择当前时刻最重要的需求
就绪(Ready)队列:强调进入该列的需求要达到就绪的标准
就绪队列是开发团队的源头,必须被管理好。否则,其后的环节就不会顺畅,最终的输出结果也无法保障。
就绪队列填充是团队的计划活动,也是开发和业务的共同承诺
理解了就绪队列是什么,就绪队列填充的含义就很明显了,它是指:业务方与开发团队从需求池中选择接下来要做的需求,充分澄清和做出承诺后,将需求放入就绪队列的过程。如上图所示,需求进入就绪队列,意味着业务方和开发团队双方的承诺:
业务方:这是我要的需求,原则上不会再变
开发团队:我们理解这些需求了,会尽快开发完成
既然是双方的承诺,就绪队列填充就是双方共同责任,参加会议的通常包含业务方(如产品经理)和开团队(如开发和测试人员)。他们一起准备好足够下一次填充会议前团队去实现的需求。
就绪队列是开发团队的输入列,就绪队列填充是一个计划活动,意味着业务方和开发团队的共同承诺
二、建立就绪队列填充的节奏充
为了团队运作有序,建立合适的就绪队列填充节奏十分必要,那什么样的节奏(频率)才合适呢?
2.1 填充频率过低会损害决策的质量和团队的敏捷性
填充频率低,则两次填充之间的间隔长,必须一次填充更多需求,填充的需求需要很长时间才能交付完成。这带来一系列问题:
降低决策的质量:一次要准备很多需求,其中包含当前还不清晰的需求。缺乏足够的信息,却不得不做出决策,决策的质量很难保证。
导致范围蔓延:填充间隔过长时,业务方会倾向将那些只是”可能有用“的需求也计划进来,因为此时不计划,下一次就要等到很久以后了。这样就会产生很多猜测的需求,导致需求范围蔓延。
降低需求澄清的关注度和效果:填充的需求要等很久之后才做,团队关注度就会大打折扣,难以保证需求澄清的效果。
不能很好地支持有效学习和创新:计划时做出假设,交付后得到反馈,验证假设并作出调整,这是互联网产品试错和创新的重要模式。一次填充过多需求,反馈速度慢,极大降低学习和创新的机会。
降低团队灵活响应市场变化的能力(敏捷性):一次填入很多需求,发生变化或出现新需求时,就只能等很久以后的下一次填充了,这对组织响应变化的能力显然是不利的,损害了组织的敏捷性。
2.2 填充频率过高带来额外的成本
填充的频率越高,则敏捷性越好,并决策时信息越充分,决策质量也越高。但是频繁填充也带来额外的成本。相关的人在一起进行会议,业务人员要提前准备好需求,这都带来协调成本。
除了成本外,还要考虑频繁填充的必要性。两次填充之间产生了足够多的支持更好决策的新信息,分开进行需求填充才是有意义的。否则,必要性就很低。例如,业务方完全可以确定一个月的需求,那为什么不一次计划好呢?
新信息可能和业务相关,如:用户、市场的反馈,以及竞争对手和技术环境的变化等;也可能来自开发团队内部,如:团队对产品理解的变化,或者是开发的进展情况等。市场、技术和开发的不确定性越高,越需要频繁的填充。
2.3 二级填充是一个可选的方案
对于某些团队,外部信息变化并不频繁,也就是业务需求相对稳定;但开发团队内部,则不断有新信息产生,需要更灵活的调整。我曾经一起工作过的某电信产品团队,就属于上述情况。业务方与团队每个月做一次业务需求的填充,已足够响应业务需求的变化要求。但开发团队感觉每月一次确定一大批需求,在内部操作上缺乏灵活性,应该每周一次根据实际情况,调整和安排接下来的需求开发更合适。经过分析发现,更频繁填充的诉求来自开发团队内部,而开发团队内部也有足够的信息做出调整。为此他们引入了二级填充机制。
某电信团队的二级需求填充机制,平衡了团队的要求和业务方的成本
如上图所示,所谓二级填充就是:按高低两个频率进行填充。具体到上面的团队就是:
第一级填充:每月进行一次。由业务方和开发团队的代表参加,共同计划和确认接下来的一个月要做的需求,初步的沟通和确认后,放入计划队列。
第二级填充:每周进行一次。在开发团队内部进行,团队从计划队列中选择接下来要做的需求,详细澄清后,放入就绪队列。团队决定填充什么需求时,一方面会考虑需求的优先级,也会结合上一周开发实际完成情况做调整。
两级填充带来了以下好处:
小批量的需求澄清,让团队的需求沟通更加专注和高效。需求澄清后基本会很快开始开发,参与澄清的人会更投入,澄清的效果更有保障;
避免小瀑布带来的质量危害。小瀑布是指在一个迭代中需求集中开始,并集中完成,它导致问题在迭代末期集中爆发,而影响长期质量,这也是很多敏捷团队失败的原因。两级填充保证了需求的分批开始和持续完成,从而避免了小瀑布带来的问题;
开发团队内部能根据实际开发情况,即时调整和安排工作,增加了操作上的灵活性,同时也没有增加与业务方的协调成本。
团队专注短期工作(如本周工作)的同时,也能兼顾更长期的目标(如月度里程碑)。
两级填充同样适用于互联网产品。我一起工作过的一个电商平台团队采取了类似的模式。他们每个月规划一个里程碑——一级填充;每周在这个里程碑之内再做一次小的计划——二级填充,计划更短期的发布目标。
业务方(运营的代表和产品经理)除了参与每月填充会议外,也会参与每周的填充会议,一方面是为了进一步澄清需求,另一方面在需要时,也会根据获得的反馈和最新的业务信息,适当调整里程碑内尚未开始内容。这样除了上面已经提到的好处,二级填充还为业务方提供了额外的灵活性,每周可以有一个小的调整机会。
2.4 团队级别的每周填充是适合大部分产品开发组织的节奏
总结以上的分析,我们得到确定就绪队列填充频率三个原则:
原则1. 越频繁地填充,带来越高的敏捷性,也有助于提高决策的质量和团队关注度;
原则2. 合理的填充频率还取决于填充带来的成本和其必要性——往往取决于新信息系的到达频度;
原则3. 在特定场景下,二级填充可以更好的平衡前面两点。
基于这些原则,我辅导过的组织,在团队级别最后大都选择了每周填充,其中既包括互联网产品团队,也包括传统的电信或金融产品团队。每周填充可以满足大部分产品开发团队响应内部和外部变化的要求,而它形成的节奏感,也可以降低填充会议的协调成本。只不过,对外部响应要求较低的团队,一般会采取二级填充机制,与业务方的计划按更低频率进行。
这样就有了两个推荐的填充频率方案。方案一:开发团队与业务方,每周填充业务需求;方案二:二级填充————在团队内按周填充,与业务方按更低频率填充。这两种方案可以涵盖绝大部分产品开发团队[2]的要求。
三、就绪队列填充要做什么
就绪队列填充的目标和主要活动
如上图所示,就绪队列填充会议要达成的目标是:选择和准备好适当数量的满足标准的需求。就绪队列填充会议的过程中也要服务于这以目标。这里面的两个关键词是”适当数量“和”满足标准“。
3.1 多少是适当数量的需求?
所谓适当数量是指:保证在下一次填充前,团队有足够的需求做,但也不应该过多,填入的需求数量,比下一次填充前能做完的需求略多就可以。
如果填充频率是一周,预估接下来一周的工作还是容易做到的,并不需要什么特别的方法学支持。看板方法追求的的是持续流动,本次填充的内容,并不一定在下一次填充前就全部完成交付,这也进一步降低了对预估准确度的要求。与其在精确的工作量估计上花费时间,不如更详细的澄清需求,团队自然就会更好的把握填充多少需求。
3.2 填充需求要满足什么标准?
进入就绪队列的需求所要满足的标准,被称为就绪标准(Definition of Ready,DOR)。就绪队列是开发团队的输入环节,就绪标准也是整个开发团队的入口标准,它的定义和执行,对后续环节的顺畅十分关键。
定义就绪标准,首先要考虑的是否对需求做了充分澄清,做到“以终为始”,也就是在开始需求开发之前,明确最终的结果要求——验收标准。“实例化需求”是我实践过的澄清需求最有效的方法,它帮助团队和业务方充分沟通,1)要解决的问题是什么;2)用户会与系统的交互流程是什么样的;3) 涉及到哪些业务规则,并生成具体的验收标准,保证开发、测试和业务对以上问题的一致理解。我后面会用专门的文章介绍实例化需求实践。
实例化需求解决的是需求的业务风险。团队在做需求填充时,还应该关注:1)技术风险:评估重大潜在技术风险,必要时做出应对。2)关联风险:评估需求对外的依赖,需要时并做出安排。例如,确认依赖外部服务的接口标准和交付时间。
除此之外,我们还需要保证需求足够小,从而避免问题被隐藏其中。我一般会按预期交付时长来评估需求是否足够小,比如:团队自己评估这个需求能否在1周内完成,如果超过一周,则这个需求就要拆分,至于这个需求可以由几个人一起做,则由团队自己决定。
用时长而不是工作量评估,更符合快速交付和反馈的目标,在操作上也更简单,而且事后验证也更客观。在讨论看板方法度量的文章中,我还会深入介绍,基于前置时间(时长)而不是工作量的度量体系。
具体多长时间可以交付的需求就算足够小了,这要因团队的具体情况而定。我工作过的一个做企业网设备的团队定义的标准是:两周内交付系统测试;而另一个电商团队则是,一周内做到可以发布。超过这个标准时,则需求需要进一步拆分需求。这都是适合他们各自团队的标准,运行的效果也都不错。
定义需求就绪标准是应该考虑的方面
综上所述,就绪队列填充会议上:
业务方和开发团队选择略多于下一次填充前可以完成的需求,澄清这些需求,处理好相关的业务风险、技术风险和关联风险,并确保需求已经拆分得足够小。
总结
本篇讨论了就绪队列填充会议,它是看板方法中最重要的计划活动。以下总结了关键点:
就绪队列填充的目标是为开发团队准备在下一次填充前,足够数量的满足标准的需求;
设置恰当的填充频率,形成节奏。频率越高则敏捷性越好,但过高的填充频率也带来协调成本, 所以确定合适的填充频率还应该考虑必要性和成本;
实践上,团队级别按周填充适合大部产品开发团队,当业务侧因成本、必要性或协作的原因还做不到或无需每周填充时,可以考虑引入二级填充机制;
填充需求所要达到的标准,被称为就绪标准(Definition of Ready),就绪标准的定义应该考虑业务风险、关联风险和技术风险并保证需求足够小。
下篇预告:
下一篇将介绍管理工作流动的最后一个分实践——发布机会会议。我们还将讨论,如何综合利用,就绪队列填充会议、每日站会和发布计划会议,最大化团队的响应能力,打造真正的敏捷团队和敏捷开发模式。
相关文章:
精益看板方法从理论到实战 (1)—— 看板方法和看板实践体系
...
精益看板方法从理论到实战 (8)—— 看板站会
在公众号中点击“精益看板”相关菜单,获取看板方法全部文章
精彩推荐:
精益产品设计和精益数据分析
精益产品开发、精益设计和精益创业图书推荐
了解,更多精益产品开发和设计相关知识,请关注本公众号,每周发布精品内容。
文中注释
此处开发团队是相对业务而言,它是包含设计、实现、验证等在内的广义的开发,下同 ↩
之所以强调产品开发团队,是因为这不一定适合其它形态的组织,如:对于响应要求高的运维或维护部门,按需填充很可能是更好的选择 ↩