Kanban起源于1950年代的丰田看板系统(或方法);它很好的应用在生产制造系统中,Kanban的工作模式是从消费端(如零售店)来拉动(pull)生产部件、零件的实时流动,通过看板(卡片)的记录和传递,可以发现整个生产制造流程的瓶颈,尽可能减少各个生产、仓储环节的库存和浪费,从而实现JIT(Just-In-Time,即时)与精益(Lean)生产和制造。
同样Kanban的工作模式和思想也很好的应用到软件行业。专为软件团队中的每位成员而构建、可用于规划、跟踪和发布任务协助工作JIRA Software提供了对敏捷方面的强大支持。
在JIRA Software中提供了Board功能,Board分为两类,一类为Scrum,另一类为Kanban。Scrum的方式主要目标是在固定的时间周期内能充分地利用资源,尽可能多的向客户交付可使用的产品。Kanban的主要目标是尽快地加速工作的流转,尽可能早的向客户交付可使用产品。
因此,当我们团队在使用Kanban的方式开展工作时,对团队的考核指标也应当依据尽可能早的原则。
在JIRA Software的Board中,提供了控制图,可以让我们了解团队在这一方面的能力和发展趋势。
我们看一下控制图的各项数据指标,并对其中的各项进行说明
在以上图中,向我们展示了一段时间内使用此Baord的团队在处理问题速度上面的指标;这些指标指标包括
问题处理量
是指在这一段时间内,总计有多少个任务处理完成
平均处理周期
指所有问题处理的的平均周期;如有三个任务,分别花费了3天,5天,8天,那么平均周期为5.2天=(3+5+8)/3;在图表中用一条红色横线表示;平均处理周期主要考查团队在此时间段内工作能力的平均水平。
平均移动周期
指每一个任务或者问题集前几个完成的任务或者问题及以及此后几个完成的任务及任务集的平均值和当前问题的解决周期的平均值;比如当前问题花费了3天完成,前面完成的两个任务分别为4和5天,后面完成的两个任务分别为5和6天,那么平均移动周期即为4.6天=(4+5+3+5+6)/5;在图表中以深蓝的曲线来表示;平均移动周期主要考查团队工作的当前能力的平均水平。
标准方差
指每一个任务前后各几个任务的解决周期计算出来的标准方差时间;比如当前问题花费了3天完成,前面完成的两个任务分别为4和5天,后面完成的两个任务分别为5和6天,那么它们的平均周期为4.6天;那么标准方方案为1.04天;标准方案主要考核团队工作情况的稳定性。
通过对以上图以及指标各项,我们可以了解团队的当前水平、某一段时间的平均水平以及团队整体的稳定性;
那么什么样的图可以表示团队能力较好或者较差呢?从Kanban追求的目标以及结果中,我们可以这么认为
1、平均线越低越好
2、标准方案的范围越小越好,并波动较小
3、平均移动线持续性的向下
从以上图中,我们可以了看到团队在前期和中期有不稳定的情况,但在后期持续性的向好。
当然,在我们工作中可能有一些不稳定的因素是由于误操作、或者任务被遗忘未来的及修正状态引起来的,比如一个任务实际上完成了但负责人请假一直未关闭,导致数据异常。
我们从图表中也可以看到这类数据,比如在以上图表中那些处理时长过大的圆点,我们可以点击它来查看详情。但这类数据如何从我们的统计报表中排除掉,修正我们的报告并了解真实的实际情况呢?
我们可以使用控制图中的相关设置,设置项包括时间尺度、列、快速过滤、非工作时间。以下将说明各设置的使用方法。
1、时间尺度我们需要统计的一段周期,可以按一周、二周、一月、一季度、半年来快速设定,也可以自定义任意的时间周期。
2、列可以简单的理解为我们处理任务的各个阶段,在JIRA Software的面板中,有单独页来对它进行定义,一般可以将它与我们处理任务的工作流的各个状态一一对应(我们也强烈建议这么使用,好处是我们可以清楚的了解工作的整体进展,同时也可以分析各个流程环节哪些会现出瓶颈,以及时调整资源、工作方法或者调整WIP)。
3、快速过滤是指我们面板中快速过滤的设置,它用于将面板中的数据按规则进一步地筛选。在控制图中对异数据的过滤,可以使用此功能;在面板的配置中也专门有此项的配置页。
4、非工作时间是用于排除掉我们节假日的时间,通过它的设置可以将处理周期的时间排除掉那些非工作时间;在面板的配置中也专门有此项的配置页。
介绍了以上控制图的配置项,那些排除工作中的异常项,我们可以使用快速过滤的方法;对于异常数据,我们可以将这些数据加上统一的标签,比如label=异常;然后通过面板的配置页“快速过滤”来定义一个过滤项,如下图
之后,我们可以在控制图的配置项中将此快速过滤出的任务排除到控制图统计之外,如下图
之后,我们可以观察到在控制图中统计的数据范围内将不包括异常数据,图表的显示将出现相应调整。
当然,通过修改报告的配置项,我们也可以了解工作流中几列组合,或者单个列的处理周期情况(即查看多个状态或者单个状态),比如我们想看In Progress的状态下的处理周期,可以单独选中它,如下图
这样,我们即可以看到控制图中关于In Progress状态下的数据处理的速度和发展趋势了。
控制图有力地、直观地展示敏捷团队稳定性及能力趋势,对于我们提高团队的敏捷成熟度,并展开对工作的回顾和分析提供了很好的支持。
大家有在玩Kanban么?那么快使用JIRA Software的控制图,看看我们的团队情况吧。
以下是对控制图的几个常见问题的说明
什么是周期时间(Cycle time)和交付时间(leadtime)?
周期时间是指在一个问题上工作的时长,它通常是从问题开始处理时间到这个问题处理结束时间之间的时间差,这个时间是指自然时间。如果这个问题处理结束后又重新打开再次处理,这个时间也是会进行累积的。
交付时间与周期时间差不多,但交付时间包括这个问题从创建到开始时间这个时间差,即这个问题从创建时间到完成时间这个的总时长。
在控制图中,周期时间可以是连续的也可以是时断时续的,这依据我们在报告参数设定所选择的列项。
处理周期是如何确定的?
用于计算周期时间的状态取决于项目使用的工作流。我们可以在控制图中进行配置,决定哪些状态上停留的时间可以计入处理周期。比如在工作流中有一个为代码Review的状态,在这个时间上停留了18个小时(根据业务规则这代码Review不包括在处理周期中),那么可以在控制图中去掉此节点,那原来的处理周期时间将减去18小时。处理周期的计算在控制图中主要是针对列,如果此列映射了多个状态,而有一个状态我们并不希望参与处理周期计算,我们就需要对面板中的列进行调整(将一列中多个状态进行分开为多列,我们建议一个状态一列)。
移动平均周期是如何计算的?
移动平均值(图表上的蓝色线)是基于问题的,不是基于时间的。每一个问题都显示在图表,移动平均值(在那个时间点上)通过问题本身计算的,计算公式为前N个问题的周期处理和后N问题的周期的平均值加上本问题(N总是为偶数的,并且最小值为2);例如:前面取2个问题A和B,处理周期为2和3天,后面取2个问题D和E,处理周期分别为1和3,当前问题的处理周期为4,那么它的移动平均周期为:(2+3+4+1+1)/5=2.2天;这种方法产生一个稳定的移动平均线,它能更好地显示异常值(即移动平均值不会大幅偏离离群值)。移动平均线也容易理解,因为变化是由于问题的位置引起来的;移动平均值的计算是基于问题的个数,个数会依据我们选定周期的时间长短以及在这周期时问题的密度。
蓝色阴影区域代表什么?
控制图的蓝色阴影区域表示标准偏差,即实际数据与移动平均值的变化量。标准方差偏差会显示出我们的问题的处理的平均能力。例如,如果有一个窄的蓝色波段(低标准偏差),我们就可以确信未来问题的周期时间将接近这个移动平均值。标准方差如果在平均线下方,基本可以预示未来我们的平均能力将会有所提高,但还是需要注意移动平均时间的走向。
图表上的点代表什么?
每个点代表一个问题或一组(组)问题。点的垂直位置代表问题的移动周期,即“经过多长时间”。对于一组问题,点被放置在问题的平均周期时间内。