敏捷加快开发速度,并不是加速编码速度而是节省了大量不必要的浪费和返工。
Devops的价值
- 高效的软件交付方式
- 激发团队的创造力
实施 DevOps,一方面可以通过种种流程优化和自动化能力,改善软件开发团队的工作节奏,另一方面,也可以让大家关注同一个目标,彼此信任,高效协作,调动员工的积极性和创新能力,从而让整个团队进入一种积极创造价值的状态,而这所带来的影响远非建设一两个工具平台可比拟的
高效率和高质量是 DevOps 的核心价值,而工具和自动化就是提升效率最直接的手段,让一切都自动化可以说是 DevOps 的行为准则。一切软件交付过程中的手动环节,都是未来可以尝试进行优化的方向
DevOps三支柱
人(People)、流程(Process)和平台(Platform)
人 + 流程 = 文化 流程 + 平台 = 工具 平台 + 人 = 培训赋能
DevOps 的 4 个结果指标
- 部署频率:指应用和服务向生产环境部署代码的频率。
- 变更前置时间:指代码从提交到成功运行在生产环境的时长。
- 服务恢复时间:指线上应用和服务出现故障到恢复运行的时长。
- 变更失败率:指应用和服务在生产环境部署失败或者部署后导致服务降级的比例。
每年,这个报告都会基于这 4 个核心指标统计行业内高效能团队和低效能团队之间的差距。代表了软件交付的两个最重要的方面,也就是交付效率和交付质量
DevOps 三步工作法
高度抽象的“三步工作法”,概括了 DevOps 的通用实施路径。
- 第一步:流动。通过工作可视化,限制在制品数量,并注入一系列的工程实践,从而加速从开发到运营的流动过程,实现低风险的发布。
- 第二步:反馈。通过注入流动各个过程的反馈能力,使缺陷在第一时间被发现,用户和运营数据第一时间展示,从而提升组织的响应能力。
- 第三步:持续学习和试验。没有任何文化和流程是天生完美的,通过团队激励学习分享,将持续改进注入日常工作,使组织不断进步。
VSM
要说清楚 VSM,首先就要说清楚什么是价值。简单来说,价值就是那些带给企业生存发展的核心资源,比如生产力、盈利能力、市场份额、用户满意度等。
VSM 是 Value Stream Mapping 的缩写,也就是我们常说的价值流图。它起源于传统制造业的精益思想,用于分析和管理一个产品交付给用户所经历的业务流、信息流,以及各个阶段的移交过程。
说白了,VSM 就是要说清楚在需求提出后,怎么一步步地加工原材料,进行层层的质量检查,最终将产品交付给用户的过程。通过观察完整流程中各个环节的流动效率和交付质量,识别不合理的、低效率的环节,进行优化,从而实现整体效率的提升。
关键要素
- 前置时间(Lead Time,简称 LT)。前置时间在 DevOps 中是一项非常重要的指标。具体来说,它是指一个需求从提出(典型的就是创建一个需求任务)的时间点开始,一直到最终上线交付给用户为止的时间周期。这部分时间直接体现了软件开发团队的交付速率,并且可以用来计算交付吞吐量。DevOps 的核心使命之一就是优化这段时长。
需求前置时间:从需求提出(创建任务),到完成开发、测试、上线,最终验收通过的时间周期,考查的是团队整体的交付能力,也是用户核心感知的周期。
开发前置时间:从需求开始开发(进入开发中状态),到完成开发、测试、上线,最终验收通过的时间周期,考查的是团队的开发能力和工程能力。
- 增值活动时间和不增值活动时间(Value Added Time/Non-Value Added Time,简称 VAT/NVAT)。在精益思想中,最重要的就是消除浪费,也就是说最大化流程中那些增值活动的时长,降低不增值活动的时长。在软件开发行业中,典型的不增值活动有很多,比如无意义的会议、需求的反复变更、开发的缺陷流向下游带来的返工等。
- 完成度和准确度(% Complete/Accurate,简称 %C/A)。这个指标用来表明工作的质量,也就是有多少工作因为质量不符合要求而被下游打回。这里面蕴含了大量的沟通和返工成本,从精益的视角来看,也是一种浪费。
为什么 VSM 会是企业 DevOps 转型的第一步呢? 看见全貌、识别问题、促进沟通、驱动度量和价值展现
如何开展一次成功的 VSM 活动呢? 1.召开一次企业内部价值流程梳理的工作坊或者会议。 2.内部人员走访。
产品需求管理的核心思想
- 开发更少的功能
- 聚焦用户价值
- 持续快速验证。
关于需求分析,比较常见的方法就是影响地图。影响地图是通过简单的“Why-Who-How-What”分析方法,实现业务目标和产品功能之间的映射关系。
需求优先级
在面对一大堆业务需求的时候,首先要进行识别和分类。使用Kano Model 卡诺模型将产品需求划分为五种类型:
- 兴奋型
- 期望型
- 必备型
- 无差别型
- 反向型
优先规划期望型和必备型需求 识别无差别型和反向型需求 追求兴奋型需求
需求价值
可以理解为需求价值的度量,分为客观指标和主观 2 个方面。
- 客观指标:也就是客观数据能够表明的指标,比如对电商行业来说,可以从购买流程角度,识别商品到达率、详情到达率、加入购物车率、完成订单率等等;
- 主观指标:也就是用户体验、用户满意度、用户推荐率等等,无法直接度量,只能通过侧面数据关联得出。
DevOps 的关注点要从研发环节继续向上游延伸,一直把业务团队包括进来。也就是说,IT 部门不仅仅是被动的按照业务需求交付功能,还要更加快速地提供业务数据反馈,辅助业务决策。同时,交付能力的提升也进一步降低了业务的试错成本,而业务的敏捷性也决定了研发交付的需求价值和交付节奏,通过影响地图进行需求分析,再通过卡诺模型分析需求属性和优先级,通过用户故事和整个团队达成共识,通过持续快速验证,帮助产品在正确的道路上发展前进。