AI 考拉技术分享会--kanban 管理从实践到入门

2018-09-11 16:49:04 +08:00
 kaolalicai

前言

上回书,我们简单地入门了敏捷开发中的 scrum 模式,在实施的过程中,其实也是出现了不少问题需要解决。
那么这种模式有无弊端呢?--有!临时加入的需求排不过来怎么搞?开发时间延时交付不了需求被喷怎么办!一天站会这么多?!
那有什么解决方法呢?--尝试另一种敏捷模型,kanban 管理。 为了解决敏捷模式中遇到的瓶颈,考拉技术开发小分队实践了 kanban 管理,由此对敏捷有了新的认识。

一、scrum 的痛

scrum 作为敏捷的落地方法之一,用不断迭代的框架方法来管理复杂产品的开发。通过其独特并固定的管理方式,从角色、工件、和会议出发,保证项目的不断优化。
在落地过程中,需要与团队的具体情况结合,不然,就可能会衍生很多问题:

  1. 项目估时不清晰:由于 scrum 没有具体交付日期,需求方会不间断增加新的需求,导致开发团队整体进度延后,出来的效果不尽人意;
  2. 团队分工不清晰:product owner 无法清晰知道每个需求的进度。

scrum 模型多适用于职能单一的团队,他们能够较好地管理需求,团队内部分工也较为清晰,product owner 也可以更加合理安排内部分工。 那么对于经常周旋于不同任务之间的开发团队呢? kanban 管理或许能够解决开发团队的问题。

二、kanban 管理的起源

kanban 管理最初起源于 20 世纪 40 年代末,是丰田汽车公司为了达到及时生产( JIT )方式控制现场生产流程的工具。
JIT 生产方式与拉式开发理念不谋而合,具有以下优点:

  1. 控制库存:下游需要时上游才开始生产,有效控制库存;
  2. 加速流动:进入生产环节的物料和半成品,很快就被拉入下一环节,实现了保证安全库存的前提下物料最快流动,提高工程的运转效率;
  3. 灵活响应:用户需求变化通过看板行程的信息流快速传递至各个环节,系统能够做出快的响应;
  4. 促进改善:库存降低和流动加速,能够使生产问题快速暴露,比如生产环节的质量问题很快就会被下个环境发现。 JIT 认为库存会带来商品的堆积,导致成本的增加,它鼓励企业逐步消除库存,以减少生产过程中的成本,逐步达到"零库存"状态。

三、kanban 管理的优势

基于 kanban 管理的工作方式,能够将商品的库存量和实际消耗量对齐,只有当库存消耗殆尽才会发出信号,让生产端开始交付新一批产品。在降低库存下,降低了库存管理以及仓储开销,并能更加灵活地调整生产计划,及时发现生产过程中的问题。

四、敏捷开发中的 kanban 核心和原则

  1. 可视化工作流(价值流) kanban 管理让产品的价值和价值流具体可见,工作流分为不同的阶段,每个阶段的需求都代表了不同的价值,一个需求从开始提出,经过分析、实现,测试,到最终完成,其价值不断提高。因此产品的价值流是从左至右不断提高的过程,也是信息的产出过程。 价值流中,用户价值是可视的,开发团队要清晰每个需求的用户价值,从用户的视角去组织;其次,价值从提出到交付的整个过程,也应该是可视化的;最后,问题以及 block 也应该可视化。在价值流中会存在一些需求不明确、开发难度大等问题,不及时处理容易堆积成长队列,影响开发效率。 随着价值流动,开发团队可以及时发现项目中的问题,找到队列最长的阶段就可以发现问题,这跟交通系统的瓶颈处总是出现长长的候车队是一个道理。

  2. 限制工作进程( WIP) WIP 指在对某一个环节内的所有工作(包括正在进行以及等待安排)的进行数量上的限制。若在环节内在制品数目未饱和,可以从上一个环节加入新的需求,否则维持现有需求数量不变。 通过这个环节,团队可以更加专心开发目前的项目,缩短任务从进入系统到交付的时间。同时及时暴露团队协作存在的问题,如沟通不良、需求定义错误、开发难度大、资源分配不均衡等。

  3. 显示化流程规则 通过明确的规则,可以对整个流程不同阶段的产品质量进行把控。在前一个阶段的开发质量满足了“流转规则”之后,方可转入下一个开发阶段。
    开发团队需要对即将落实到位的规则展开讨论并达成一致。通过这个步骤,开发团队可以“持续改进”产品的流程以及质量,不断优化产品。

  4. 管理工作流动 为了让用户价值顺畅、高质量地流动,团队需要管理好价值的流动。一般包含三项实践:用户价值的输入、中间过程以及输出。
    1 ) 用户价值的输入:这是看板系统输入环节和价值流动的源头,输入清晰、明确的用户价值能够促进价值流流动,提高开发质量;
    2 ) 用户价值中间过程:站会是管理价值流动过程的活动,开发团队每天都会安排站会,由团队成员对看板墙中的卡片进行排列,梳理每个用户价值的完成进度、遇到的瓶颈,并解决这些问题;
    3 ) 用户价值的输出:用户价值在完成交付出去前,需要发布评审,产品经理决定上线或发布哪些需求以及发布需求的策略等。
    为了对工作流进行有效管理,引入了一种度量方式--累积流量图。绘制累积流量图可以得到不同维度的信息,更形象曝光工作流中存在的问题。

  5. 建立反馈,持续改进 基于价值流动,kanban 管理形成了一套反馈体系,大体分为两类:一类是基于流动是否顺畅的反馈,比如阻碍问题分类、原因分析;第二类是关于用户价值质量的反馈。建立反馈系统可以让开发团队度量价值流动的状态,发现工作流中的问题,不断改进整个工作流模式,形成持续改善的闭环。 既然建立反馈体系能够暴露产品开发中的问题以及瓶颈,那么发现问题后,如何解决问题呢? kanban 管理推崇 2 种方式--团队协作以及应用科学模型。 对于偶然出现的问题,可以通过团队协助的方式得到解决,如分配更多的资源、成员的相互支持等;而对于系统性问题,需要系统、科学的模型进行指导,通过这些方式可以不断提高团队持续改进工作流的能力,进而提升整个团队的价值交付能力。

五、kanban 管理工具

基于开发团队的需求,可使用 jira 的 kanban 工具;
kanban 工具有如下的功能:

  1. 不以 sprint 为单位,团队一直都只用一个看板,无需每周关闭和开启 sprint ;
  2. kanban 管理一共分为 8 列:
    ● 创意:产品经理收集需求加到这一列,可以不以 user story 形式描述; ● 正在分析:产品经理正在分析的需求拖动到这一列,此时可以将创意的 card 拆解成几个 user story ;
    ● 下 N 个需求:产品经理不断调整任务优先级,将即将要开发的需求拖动到这一列,这一列任务数量有限制,任务太多将会让开发人员负荷过大;
    ● 正在开发:开发人员将正在开发的需求拖动到这一列;
    ● 等待测试:开发人员将开发并自测完成的需求拖到这一列,测试人员对这一列的需求进行测试,这一列任务数量有限制,任务太多将会让测试人员负荷过大;
    ● 正在测试:测试人员将正在测试的需求拖动到这一列;
    ● 等待发布:测试人员将测试完成的任务拖动到这一列,开发人员对这一列的需求进行发布,产品经理验收;
    ● 已发布:开发人员发布完成并验收完毕后,将任务拖到这里,并点击 Relase 记录此次发布的版本,这些任务将会不显示在看板上。
  3. 任务下方会显示该任务停留的天数,以提醒团队注意该任务;
  4. Relase 功能,可以清晰看到每次发布的功能;
  5. report 里面有很多图表,看板方法最常用的应该是堆叠图,可以看到各个阶段任务的数量,以了解整体的情况。

小结

在进行了 kanban 管理的实践后,成员了解各个需求的进度,开发团队的开发效率有了提高,就算临时插入需求,也能根据优先级调整应对。
在敏捷实施中,适应公司的情况,发现合适的开发方法,一直是令人头疼的问题。kanban 管理给出了一种新的方式,从产品开发现状出发,首先可视化工作流并显示化流程规则,接着通过限制在制品数量,推动开发团队发现工作流的问题以及瓶颈,最后通过反馈系统以及团队协作等方式,不断优化工作流,提高团队的开发效率,实现一个高效、顺畅的产品开发工作流。
对考拉的 dev 而言,kanban 管理是一种新的尝试,也希望这种新的尝试能够给更多 dev 带来更多实践上的革新。 参考资料:

  1. 敏捷其实很简单( 4 )--初识看板
  2. 精益看板方法从理论到实战 ( 1 )—— 看板方法和看板实践体系
1040 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/488253

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX