第一部分 导论
先引出两个问题,同时也是团队实施敏捷所面临的两个挑战:第一,如何实现现在敏捷社区所称的可持续步调,保护团队免受业务部门提出的无穷无尽的需求的困扰?第二,如何克服其中不可避免的变革阻力,将敏捷方法成功推广到整个企业内?
对可持续的步调的探索,作者认为“大型软件开发是一场马拉松,不是短跑冲刺”;对成功变革管理的探索,作者认为“一刀切”的开发方法学是无法奏效的,原因是不同的团队拥有不同的技能要求、经验水平、能力水平;不同的项目拥有不同的成本预算、进度要求、项目范围、风险状况;不同的组织拥有不同的价值链、目标市场;
那么什么是看板系统?
系统只有具备了处理的能力才能拉入新工作项,而不是机遇需求将工作项推入系统中,拉动系统就不会出现过载现象。
为什么使用看板系统?
1.流程改进和更好的质量结合在一起,有助于缩短前置时间,提高可预测性和准时交付能力。
2.通过建立稳定的发布节奏,实现始终如一的可靠交付,看板能够帮助团队与客户、依赖的相关部门、供应商、价值流下游合作伙伴建立信任关系。
识别看板方法的应用实施的5个核心特征和5个附加特性
1)5个核心特征
1.可视化工作流程
2.限制进行中的工作(work-in-progress)
3.度量和管理流动
4.明确过程策略
5.使用模型来识别改进机会。
2)5个附加特性
1.根据延迟(机会)成本进行工作项的优先级排序
2.通过服务分类类优化价值
3.通过产能分配来管理风险
4.鼓励工艺和过程创新
5.定量化管理
第二部分 什么是看板方法
看板方法,由David Anderson创立,它脱胎于大野耐一所创立的丰田生产方式(TPS),以及埃利亚胡-高德拉特的约束理论,并结合统计质量控制、排队论、工业工程、软件成熟度模型(CMMI)等多个领域知识,在软件开发社区中获得了极高的关注度,并迅速传播开来。
看板方法采用了精益的思维范式,将软件开发视为一个价值流,并且给予拉动模式来驱动其流动。“价值流”是精益思想和看板方法的基础隐喻,给予这个隐喻,引申出来的是一系列其他元素,例如,拉动(pull)、在制品(WIP)、批量规模(batch size)、前置时间(lead time)、阻塞(block)、瓶颈(bottleneck)、缓冲区(buffer)、吞吐量(throughput)、改善(kaizen)等。改善是精益和看板方法的精髓,它旨在通过持续性地实施系统性变更来优化生产系统。
过去几年,曾被要求回答这样的问题:“作为一名经理,当你接手一个现有的团队,尤其当这个团队并非以敏捷的方式进行工作,成员能力参差不齐,甚至已经彻底陷入瘫痪时,应该采取什么样的行动?”
成功的秘诀中包含六个步骤:
1.专注于质量
2.减少进行中的工作(WIP)
3.频繁交付
4.根据交付速率来平衡需求请求量
5.进行优先级排序
6.消除变异性的根源,提升可预测性
鼓励提高初始质量,会对高缺陷团队的生产力和交付速率产生巨大影响,获得2~4倍的交付速率提升时很有可能的,如果团队真的很糟糕,那么通过“专注于质量”的做法,甚至都可以获得10倍的交付速率提升。
如何提高质量?
1.专业的测试人员应该做好测试。
2.代码检查能够提高质量,无论是结对编程、同行评审、代码走查,或者是完整的费根式检查,进行代码检查都是很有效的。
3.协作式的分析和设计,能够提高质量。团队一起分析问题和设计界也方案,产出的质量会更高。也叫做“敏捷建模”。
4.使用设计模式能够提高质量
5.使用现代开发工具能提高质量。例如静态代码分析和动态代码分析工具等。
6.更为奇特的现代开发工具,如软件产品线(或软件工厂)和领域专用语言也能够减少缺陷。
7.减少进行中的设计(Desigen-in-progress)的数据,能够提升软件质量。
在制品(WIP)、前置时间和缺陷之间的关系
1.在制品数量减少时,平均前置时间也随之减少;
2.前置时间增加,则质量会下降,前置时间越长,质量越会显著下降;因此,提高质量的管理杠杆点是减少在制品数量。
3.减少在制品的数量或者缩短迭代的长度,将对初识质量产生重大影响。并且这种关系是非线性的。
频繁发布能够建立起信任
信任是一种很难定义的事物。社会学家将之称为“社会资本”,他们发现,信任是由事件驱动的,小而频繁的表现或者活动,较之那些大但只是偶尔翻生的表现或活动而言,更能增进信任的产生。
我认为,一个团队应该这样逐步迈向成熟
1.要学习构建高质量的代码
2.减少进行中的工作项数量,缩短前置时间,并频繁发布
3.根据交付速率来平衡需求请求量,对在制品设置限额,进而产生富余时间并释放个体的创造力,促进改善行为的发生。
4.随着软件开发的顺畅运转和能力优化,通过改善有优先级排序来优化交付价值。
变异性产生的影响和如何减少过程中的变异性,这两个都是高阶的主题,因此,它并不适合初学者或者不成熟的组织。变异性会导致更多的在制品及更长的前置时间。
改善文化的特征
1.在改善文化中,员工可以获得极大的授权
2.改善文化拥有很高的社会资本
3.改善文化的许多方面,都和现代文明中建立的文化和社会规范向左。从小被教导要具备竞争力,教育体系,无论是学术上还是体育运动上,都鼓励竞争。