安全、信任与持续改善:
失败是安全的:组织对待“失败”的态度至关重要
相互信任:同事之间的相互信任
持续改善:不断的试验而持续改进(特点是“人人参与”和“时时改善”)
文化塑造四步法(谷歌):
第一步:定义想要做的事情
提高代码质量、减少生产问题、减少手工测试工作量,快速发布软件
第二步:定义期望的做事方法
开发团队编写自动化测试
主动运行自动化测试用例
做代码评审
第三步:提供相应的培训
在公司范围内组织代码设计与自动化测试培训
为每个团队指派自动化测试教练,帮助团队提高自动化测试技能
第四步:做些必须的事情强化这些行为
建立团队测试认证机制,共分3个大级别,12个子级,用于评估每个软件产品团队的测试成熟度。通过每个季度统计各级别上的团队数量分布,来评估自动化测试文化在公司内部的进展程度
建立自动化测试组和测试教练组,帮助团队提升自动化测试能力
建立代码评审资质证书
代码合入版本仓库前强制做代码评审
代码评审之前,必须运行自动化测试用例,并提交报告给代码评审者
行动原则:
价值导向:我们做事情时,应该价值导向
快速验证:通过快速实施,得到真实反馈,从而做出决策
持续学习:
定期回顾:每隔一定周期,团队主动安排一次会议,共同讨论在过去的这个周期内,团队在协作过程中的优点和不足,并讨论相应的决策,以便在后续的工作中能够保持优点,改进不足,持续取得进步。回顾会议结束后,应该有改进措施和计划,并能够跟踪执行结果。另外,不要指定过多的改进项,以免落入“反复提出,反复执行,没有实际进展”的境况
复盘机制:指针对发生的问题进行分析,其目的是避免相同问题重复出现。
首先针对问题发生的前后进行信息收集和整理,确定问题的严重程度,理解问题发生的过程(对于疑难问题,可能还需要在事故后进行线下模拟测试,甚至线上测试,以复现问题和寻找原因)
然后进行根因分析
对于根因分析,需要注意以下几点
1.放松心态,开放共享
2.分清“因”和“果”
3.五问法,鼓励多问“为什么”
4.发挥群体智慧
5.不要停于表面,而要寻找深层次原因
6.对答案进行求证
最后总结经验,制定改进措施与计划,并能够跟踪执行结果
值得一提的是,对于每一次复盘,都应该详细记录和总结,作为知识在企业中全员共享。只有这样,才能收益最大化
系统思考方法:系统思考是从整体上对影响系统行为的各种力量和相互关系进行思考,以培养人们对复杂性、相互依存关系、变化及影响力的理解与决策力。在系统思考中,因与果并不是绝对的,因与果之间有可能是环形互动的,即“因”产生“果”,此“果”又成为他“果”之“因”,甚至成为“因”之“因”
度量原则:
度量指标的4类属性:
1.引领性指标:指那些对达成预定目标有着重要作用的指标。通常,一个好的引领性指标有以下两个基本特点:具有预见性,团队成员可以影响这些指标,如软件质量和性能
2.滞后性指标:指那些为了达成最重要目标的跟踪性指标,如销售收入、利润率、市场份额、客户满意度等研究分析都属于滞后性指标
3.可观测性指标:指可以被客观观测到,但无法通过直接行动来改变的指标,如千行代码缺陷率
4.可行动性指标:指在能力可触达范围内,通过团队努力,可以设法直接改变的指标,如代码规范符合度,代码圈复杂度,重复代码率
衡量IT 高绩效组织的4个度量项:发布频率、发布周期、MTBF(平均失效间隔:新的产品在规定的工作环境条件下从开始工作到出现第一个故障值的时间的平均值)/MTTR(平均恢复时间:指从故障出现到恢复之间的时间周期)、吞吐量(在给定时间段内系统完成的交付物数量),以上四个指标可以看做滞后性指标。编译速度、测试时长、部署效率可作为引领性指标
度量的目标是改善:通过设法管理过程指标来改善我们的工作过程,并将最终的效果与我们期望的结果指标作对比,从而发现改进是否有效,并判断是否需要改变改进方向,还是继续向前。过程指标离终极结果指标越远,对终极结果的影响作用就越不明确,其贡献越不直接。
“改善套路”进行持续改进:
第一阶段:明确方向:始终以愿景为工作目标,并持续不断地改进
第二阶段:掌握当前状态:掌握当前状态,获得事实与数据,才能充分认识自己
第三阶段:定义下一个目标状态:目标状态就是确定团队希望达到的状态,设置期望达到该状态的日期,并定义可衡量的指标项
第四阶段:迭代改进:遵循戴明环,不断迭代试验,发现、实施、评估并改善方案,直到达成目标状态(戴明环,又叫P(Plan)D(Do)C(Check)A(Action),反映了质量管理活动的规律)