在之前的几篇release manager阶段总结中提到了比较多的术语概念,比如:精益、敏捷、Devops、持续交付、持续部署等,这些都是软件工程领域常见的用词,然而令人头疼的是这些概念的重叠定义以及彼此之间的联系应该如何理解。那么本篇我们就来尝试解析一下这几个核心概念。
首先需要说明的是这些听起来像是哲学的概念自身有多个理解层级,比如从理念、从原则、从目标、从方法论等等。因此不同概念在不同维度理解起来彼此之间有重叠交集是正常现象。所以个人建议:不需追求完全清晰的区分开各个概念的涵盖范围,而是关注自己所理解的业务价值流,将各个概念与价值流的具体环节对应上,能够契合自己的工作开展即可。
其次,按照从抽象到具体的演进,我将这些概念组织为下图的流结构:
1. 处于最上层的是管理哲学:“精益”理念
“精益”理念来源于生产制造领域,核心思想为JIT(在需要的时间,按照需要的量,生产需要的产品);
精益的两个主要原则: 1.坚信前置时间是最佳度量指标之一;2.坚信小批量任务交付是缩短前置时间的关键因素之一;
精益理念极大的改善了生产系统的效率和稳定性,保障了产品的质量。
2.当“精益”理念进入IT软件领域,即是“敏捷”理念
“敏捷”理念的目标是在更短的交付周期内更频繁的交付可工作的软件;
敏捷的关键举措:良好的需求管理;频繁迭代的周期sprint(建议不长于两周);站会和看板;特性驱动测试;测试驱动开发;结对编程;开发测试团队融合;持续集成的技术手段;
敏捷保证了随时都有可以向客户展示的可工作的软件版本。
3.“敏捷”理念相对注重产品管理/开发测试沟通协作,而当它扩展到运维领域时,即是“Devops”理念
“Devops”理念的核心是协作与沟通,它希望将发布团队&运维团队与开发&测试团队融为一