看板方法:科技企业渐进变革成功之道

JerryXia 发表于 , 阅读 (0)
2014-04-09

看板方法:科技企业渐进变革成功之道

看板是什么, 不是什么

看板不是一种软件开发方法, 不是软件生命周期管理方法, 它是一种推动变革的方法, 甚至跟软件开发没有关系.

前提假设

任何方法都基于一些前提假设. 看板的前提是组织内对团队capacity达成共识. 团队能做多少事是系统隐含的不变量, 所有其它决策都不能破坏这个不变量. 一旦投资方认为团队capacity还有潜力可挖, 则各种限制将失去意义.

为什么看板五大特征首要的是可视化?

  • 要推动变革, 需要避免遭遇强大的阻力. 把现状暴露给所有人, 有助于抑制暗地的抵触, 促进解决问题的主动性.
  • 避免遭遇强大阻力的另一措施是小步前进. 可视化当前价值流有助于识别最重要的瓶颈和浪费. (大卫安德森这么谨慎, 可能与他最初引入看板方法所在的两家公司有关, 都是臃肿官僚的机构, 都是有稳定市场稳定产品的公司)
  • 要对团队Capacity 达成共识, 可视化当前状态也是第一步.

用看板来度量当前状态与敏捷成熟度模型, Nokia测试等有什么不同?

看板是一种授权, 授权团队采用自己的方式改进. 其它的是贩卖解决方案.

看板的应用场景

但凡需要等待需要一个过程的问题, 而这个问题又需要改进, 都可以用看板. 银行的排队系统也是看板, 也有服务级别, 每个职员只有一个WIP,做完之后将队列中下一个客户拉入系统,而绩效由交付速率和服务质量来衡量,交付速率与周期时间负相关

专注质量是否意味着对每一行代码都精益求精?

专注质量的前提是搞清楚什么是质量. 对于维护期的产品和对于试错期的产品, 质量属性是不一样的. 如果我们不知道谁是客户/用户, 我们也不知道什么是质量(来自精益创业). 试错时, 快是一种很重要的质量属性.

如何判断活动是增值的还是浪费?

松哥(@sgmalt)在<<精益软件度量>>中提出了一个问题: “对于这些对软件产品本身不直接增加价值的活动,我们有时候很难判断某个活动是必要的间接增加价值的活动,还是可以消除或减少的活动。在评估的过程当中,肯定会有灰色地带,很大程度上依靠一线人员的判断。一线人员在这方面具备的知识、意识就对是否能够权衡长短期利益,做出正确判断起着决定性的作用。另外, 团队应该在一起讨论这个权衡的过程, 具体的结论其实并不一定很重要,但这个达成共识的过程则会是一个非常重要的学习和改进的机会”.

大卫给出了一个粗略但简单有效的答案, 可以部分的解决问题. 问一下:”是否愿意多做或延长时间?” 比如愿意将站会从15分钟延长到30分钟吗? 如果不愿意, 就是浪费.

为什么小批量的方式编码能提高产品质量?

管理流动

当每个工作单元的大小比较均衡,完成时间可以预期, 我们在缓冲队列里保留较少的工作单元就能够维持系统顺畅地运作。这意味着工作单元在队列里等待的机 会和时间会大幅降低

在一个稳定系统内,我们应该通过减少半成品,减少和缩短在各 个环节的队列,来缩短响应周期。而在一个动态、变化很快、变化幅度很大的系统里,我们应该通过减小 需求的大小,来平滑系统的输入,提高系统处理的效率

站会应该focus在阻碍流动的问题上, 而不是谁做了啥.

领域语言

利特尔定律

系统中物体的数量等于物体离开系统的速率与平均停留时间的乘积.

  • WIP = Thoughtput * Cycle Time
  • 生产周期 = 半成品/产能 (cycle time = work in progress / throughput ): 150箱酒, 每年喝掉25箱, 买入25箱, 平均每箱酒待的时间 150/25 = 6

服务类别

类似SLA(Service Level Agreement), QoS(Quality of Service). 比如”加急”, “头等舱优先登机”等. 银行排队时白金卡可以插队. 用户需求也可以用类似的方式管理, 增加可预期性.

过程

过程由各种策略构成. 这些策略的设计意图是管理风险和交付客户期望的价值. 明确的策略, 透明性和可视化这三者结合在一起, 使授权成为可能. 团队能够理解和知道如何使用这些策略

浪费

浪费粗略分三种: 事务成本, 协调成本, 失效负担. 失效负担(Failure Load, 是我的翻译, 原文翻译成破坏负载)指的是类似Bug引入的修复成本等. Bug是最大的浪费.

瓶颈

Capacity bottleneck:

  • 识别不必要的工作; 识别不重要的工作, 分担出去; provide help, remove impediment.
  • Subordination Actions: 限制系统中其它部分的行为, 为bottleneck让路.

Non-instant availability bottleneck:

  • Ultimate is to turn a non-instant availability problem to an instant available resource. 比如把手工测试变成自动化测试

具有反直觉的地方是, 消除瓶颈所需要的举措, 通常不在瓶颈处

看板5大特征

  • 可视化
  • WIP
  • 度量和管理流动
  • 明确过程策略
  • 使用模型来识别改进机会