什么是敏捷?
敏捷是一种迭代的项目管理和软件开发方法,侧重于协作、客户反馈和快速发布。它起源于 2000 年代初的软件开发行业,帮助开发团队适应不断变化的市场条件和客户需求。
在敏捷方法中,规划、设计和开发是小批量进行的,以及与利益相关者的密切合作。与瀑布方法相比,不断合并变化,并且产品的可用版本通常发布频率更快。这带来很多好处,最重要的是,如果软件不能满足客户的需求或期望,则可以及时修复。
敏捷是方法论的集合,而不是单一的开发方法。它是开发人员使用的Scrum,极限编程(XP)和其他实践系统的聚合,是这些从业者将这些方法统一为一组原则的结果。这种统一努力的结果是敏捷宣言,它基于四个核心价值观,由12条原则组成。
敏捷宣言的四个价值观
个体与互动优于流程与工具
可工作的软件优于详细的文档
客户协作优于合同谈判
响应变化优于遵循计划
什么是DevOps?
DevOps 是一种软件开发方法,通过结合敏捷原则和实践,使团队能更快、更可靠地构建、测试和发布软件。开发、测试和部署在敏捷和 DevOps 中都会发生。然而,传统的敏捷没有涉及运营,而在DevOps运营是不可或缺的一部分。
DevOps 的目标是帮助将编写应用程序软件的开发人员和在生产环境中运行软件的操作人员聚集在一起。此外,也包括构建和维护其运行的基础设施。DevOps 取代了开发团队编写应用程序然后将其扔给运营团队的旧方法,运营团队负责部署和管理软件,部署和管理过程对软件开发团队的可见度很低。在 DevOps 环境中,开发人员和运营团队在开发、部署和管理应用程序的整个过程中并肩工作。
理解DevOps的两个常见框架是“三步法”和“CALMS”(这是文化,自动化,精益,测量和共享的首字母缩写)。文化是指开发和运营更具凝聚力的合作文化转变。自动化提高了速度并确保了更高的质量。持续改进和拥抱失败的精益原则是实验思维的基础。度量是指测量结果以改进过程的做法。分享强调了 DevOps 作为团队努力和采用最佳实践的重要性。
DevOps的三步法
系统思维,理解软件应用是复杂的系统
放大反馈环,提升团队成员间的双向沟通
文化变革,不断实验和学习的文化
敏捷vsDevOps
敏捷强调开发人员和产品管理之间的协作 — DevOps 包括运营团队
敏捷以软件从构思到代码完成的流程为中心 — DevOps 将重点扩展到交付和维护
敏捷强调迭代开发和小批量 — DevOps 更侧重于测试和交付自动化
敏捷为开发人员的计划工作结构化 — DevOps 整合了运营团队常见的计划外工作
敏捷宣言明确优先考虑个体与互动、可工作软件、客户协作和响应变化。这些显然也是DevOps的价值观,但扩展到开发过程之外,包括系统和运行应用程序的管理。
此外,敏捷软件的十二项原则也是DevOps的原则。不过,DevOps更强调持续集成和交付、小批量工作和频繁发布以及使用自动化。
结论
敏捷和DevOps的目标是相同的:提高软件开发的速度和质量,谈论一个而不谈论另一个是没有意义的。许多团队发现敏捷方法对他们有很大帮助,也有很多团队还在努力实现敏捷方法所承诺的好处。这可能是出于多种原因,包括团队不完全理解或正确实施敏捷实践。也有可能是,采用DevOps方法将有助于填补那些在敏捷方面苦苦挣扎的组织,并帮助他们获得所希望的成功。