《DevOps实践指南》笔记:第6章
第6章 理解、可视化和运用价值流
确定创造客户价值所需的团队
❏ 产品负责人:作为业务方的代言人,定义系统需要实现的功能。
❏ 开发团队:负责开发系统功能。
❏ QA团队:给开发团队提供反馈,并确保系统功能符合需求。
❏ 运维团队:负责维护生产环境,并确保系统能够良好地运行。
❏ 信息安全团队:负责系统和数据的安全。
❏ 发布经理:负责管理和协调生产环境部署以及发布流程。
❏ 技术主管或价值流经理:(根据精益方法论的定义)负责“从始至终地保障价值流的产出满足或超出客户(和组织)期望”。
针对团队工作绘制价值流图
绘制价值流图的目标并不是记录所有的步骤和细节,而是识别出阻碍价值流快速流动的环节,从而缩短前置时间和提高可靠性。
组建专门的转型团队
组建专门的转型团队,并使之独立于负责日常运作的部门(他们称前者为“专职团队”,称后者为“绩效引擎”)。最重要的是,这个团队应该负责实现明确定义的、可度量的、系统级的目标。
拥有共同的目标
目标和时限应由管理层确定,并告知组织中所有的人。而且,应该限制同时开展过多的改进计划,避免组织和管理层负担过重。
一旦明确了整体目标,团队就应该制订改进工作的详细计划与节奏。像产品开发工作一样,转型工作也应该以迭代、增量的方式进行。一般每次迭代在2~4周内完成。对于每次迭代,团队应该制订出一组能够产生价值的小目标,并朝着长期目标靠近。在每次迭代结束时,团队应该检查进度,并为下一次迭代设定新的目标。
保持小跨度的改进计划
在任何DevOps转型项目中,都需要保持小跨度的改进计划。应该努力在数周内(最差也应该在数月内)获得可度量的改进成果或者可用的数据。
为非功能性需求预留20%的开发时间,减少技术债务
要确保至少把20%的开发和运维时间投入到重构、自动化工作、架构优化以及非功能性需求(有时也称为“质量属性”)上,例如可维护性、可管理性、可扩展性、可靠性、可测试性、可部署性和安全性等。
提高工作的可视化程度
为了能够明确团队是否正朝着既定目标前进,组织中的每个人都有必要了解当前的工作状态。将状态进行可视化的方法有很多,最重要的是有效展示最新状态,而且要不断修订,以确保团队了解最新进展。
用工具强化预期行为
任务列表存储在公共的工作系统中,使用统一的术语,并能全局地进行优先级排序。
为了强化共同目标,也可以使用聊天室。
建立机制并允许团队成员互相帮助,甚至帮助其他团队的成员。