在敏捷开发中,大家经常会提到看板(kanban)这个名词,故名思义就是可视化的板。看板作为一个敏捷方法,与其他方法相比具有更强的可实施性,也更易让团队理解和执行。
下面将结合猪齿鱼团队的敏捷故事,给大家讲述下如何来使用看板,以及Choerodon猪齿鱼敏捷管理又是怎么辅助项目成员落地看板方法的。
Choerodon猪齿鱼还没有发布第一个版本时,猪齿鱼的总设计师已经非常确定团队一定要使用敏捷的方式,去做一个敏捷开发工具来帮助企业提升系统交付的价值。
在猪齿鱼开发前期,团队需要去整理需求、收集需求、排列哪个故事先做哪个故事后做。那时候整个猪齿鱼开发团队被分成不同的敏捷小组,在办公室摆了4、5块白板。大家对照着看板方法中的图片模样,依葫芦画瓢地在看板上用线条进行分割,绘制出列和泳道,并买来各种颜色的便利贴和磁贴,猪齿鱼各个敏捷开发小组就这样用起来了看板。
首先需要让任务在板上呈现出来。
团队定好一个开发周期时,产品负责人(PO)会将这个周期内的所有需求都整理出并分别写在一张张大号便利贴上,按照优先级高低将卡片从上到下依次放在story这一列,剩下的故事卡片继续留在backlog这列里,直到有故事(卡片)做完再去backlog中将优先级最高的移动到story这列进行开发。团队根据故事的描述、对象和目的等信息将其拆分成一个个的开发任务,写在小号卡片上贴在doing状态列中。每个团队成员通过磁力贴颜色或其他方式标记出自己,粘在自己所负责的任务卡片上。
在使用看板后的第一个迭代中,团队里几乎听不到“A功能是谁做的?”“B任务做到什么程度了?”“为什么C功能还没开始?”“张三李四王五你们在干嘛?”等等这样的声音了,每个成员只要抬头看看白板,就能大概知晓以上这些信息,而且是即时的。这样一来,看板可视化在猪齿鱼团队算是做到了。
图为猪齿鱼团队物理看板
既然已经将产品功能和开发任务都贴在了看板上,接下来就需要让任务流动起来。管理流动的目的很明确,就是要将所有的卡片从backlog中运送到部署,并能让这个过程在板子上体现出来。
每一天的工作从各个敏捷团队成员站在白板前开始,在猪齿鱼产品开发团队现场,每天早上都会看到一副盛景——开站会。
在绘制成多列(分别是待办、分析、开发、测试和待发布或者部署)的看板面前,开发人员依次陈述自己昨天做了什么,并将对应工作的卡片进行状态的更新,也就是将做完的任务卡片从doing状态移动到完成的状态。然后再接着说今天要做什么,并将板上backlog中的任务移动到doing的状态,贴上自己的名帖。接下来测试人员根据板上已完成开发的卡片来安排今日任务或对之前还没进入测试列的卡片进行测试工作,将开发完成的卡片从开发完成这列中移动到测试doing。
在迭代的前1到2天,可能看不出明显的变化,从第三天开始,你会发现卡片动起来了,白板上任何列中都有卡片,从开发doing到开发done,从测试doing到测试done,再到部署。所有到doing的卡片,都不是直接贴上来的,一定是从backlog中经过了分析、开发、测试的各个阶段才挪到了这个位置。
这只是整个流程持续优化之旅的开始,在这个过程中,总是存在某个瓶颈会拖延你的工作,庆幸的是,这些问题在白板上很容易显现出来,比如某个卡片在板上停留了2天了还没有动静,比如谁的名帖在板上最多,谁一个名帖都没有。往往越严重的问题越早暴露,一旦解决掉,工作的流动就会明显改进。
当基于这一原则开展工作时,你能够从精益思想中找到灵感来消除过程中的浪费以便工作能够顺畅流动起来。
限制在制品指的是对进行中的任务数进行最多数量的限制。首先限制在制品并不是一个目的,它只是用来驱动改进的手段。
猪齿鱼敏捷团队在前期开发中,也无法理解如何去做到限制在制品。平台设计师张礼军说,“我们就先按一个人最多同时进行3个任务去执行吧”。
于是大家按人员数量去限制在制品,用磁贴来表示工作的分配。我们为团队成员每个人制作3个代表他们自己的磁贴,上面写上代号或者名字。然后将其贴在自己负责的任务卡片上,这样也很容易看出每个人在做什么,并且手头有多少正在进行的工作项。
这样的好处是每个人只有当看板上自己的头像少于3个的时候,才可以去领取新的任务,避免多任务并行而忽略了交付质量。这样实践下来,很容易发现团队中某些人是不是工作项过多,任务一直停滞不前,导致整个团队的在制品过多,影响了整体进度。
但这个原则的目的侧重于确保每个人都有足够多的工作可做,对工作流动的完成状态没有什么大的帮助,因为客户不关注团队是否每个人都有事情做,他们只希望能交付成果。
随着敏捷思想的不断实践,团队尝试不断改善方式,比如在每列上方写上数字标记在制品的数量,开始实施基于列的在制品限制原则。通过在瓶颈之前的步骤设置在制品限制,可以防止瓶颈处工作泛滥,并且促使团队解决瓶颈,进而改善整个流程。
举个例子,比如开发列中的卡片数已经到了在制品上限,可是测试列里的任务也存在堆积,测试人员没精力进行更多的测试。这个时候,开发的卡片无法流动进测试列,开发人员便不能进行新的开发任务,瓶颈就很明显在测试列了,那么团队的开发人员可以去帮助测试人员进行测试,从而解除瓶颈,让板子上的卡片重新流动起来。
猪齿鱼团队运用了人员限制、列限制几个方案,而在敏捷方法里也提供了许多的方法以便你了解如何设置在制品。
限制在制品就是通过条件限制把流程改进的机会呈现在表面,使团队能直接观察到流动迟滞(卡片在白板上的移动非常缓慢)、任务积压(在某列中堆积了很多卡片)、项目停滞(工作项一直等待)的等些问题,以便及时作出调整。
这些看板实践经验后来也在Choerodon猪齿鱼平台的敏捷管理上有所体现,前两个原则自不必说,在限制在制品方面,猪齿鱼敏捷管理采用列限制的方案。支持用户自行对列进行配置,设置该列任务最大数量和最小数量。
数量会在看板上直接显示,当任务数量已经达到最大时,新的任务无法拖入该列。
说到底,敏捷管理是一个方法也是一种心态,选择哪条路改进你的系统完全取决于你,最重要的一点是当你的工作向你发出改进信息时,你要响应并改善它。
猪齿鱼敏捷团队故事看板实践就介绍到此,敬请期待下篇《电子与物理看板的差异化分析》。
Choerodon 猪齿鱼 作为开源多云应用敏捷全链路技术平台,是基于开源技术Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。
更加详细的内容,请参阅 Release Notes 和 官网 。
大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:
欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。
本篇文章出自 Choerodon猪齿鱼社区 朱琳珏。