Close

敏捷开发与 DevOps

敏捷开发和 DevOps 之间有什么不同之处和相似之处?

Tom Hall 的头像
Tom Hall

DevOps 推广人员和从业人员


当敏捷开发方法在 21 世纪初获得广泛采用时,它就改变了我们开发软件和其他产品的方式。然而,在成为行业标准的几年内,就出现了一个关键的疏忽:变革遗漏了部署和管理软件产品的运营团队的相关流程和要求。

DevOps 于是孕育而出,这是一种协调开发团队和运营团队的方法。那么,DevOps 是否取代了敏捷开发?又或者说,它们互为补充,相辅相成?事实证明,两者之间既有不同之处,也有相似之处。敏捷开发和 DevOps 既具有排他性,也具有包容性,两者都存在于组织内部。

什么是敏捷?


敏捷开发是一种项目管理和软件开发的迭代方法,侧重于协作、客户反馈和快速发布。它起源于 21 世纪初期的软件开发行业,可帮助开发团队做出反应,并适应不断变化的市场条件和客户需求。

在敏捷开发方法中,某些规划和设计是提前完成的,但开发会分小批量进行,且需要与利益相关者密切合作。与通过瀑布方法所开发的产品相比,敏捷开发需要不断整合变更,且产品的可用版本发布通常更快。这提供了诸多好处,而其中可以说最为重要的就是:如果软件无法满足客户的需求或期望,还可以实时补救。

敏捷开发是一个方法集合,而不是单一的开发方法。它是 Scrum、极限编程 (XP) 和开发人员多年前使用的其他实践系统的集合,是从业人员携手合作将这些方法统一为一套原则的成果。这种统一化的结果就是“敏捷宣言”,该宣言由 12 项原则组成,以 4 个核心价值观为基础。

集中的节点图标
相关资料

了解 CALMS 框架

“大脑结构”图标
相关资料

了解 DevOps 的历史

敏捷宣言的四个核心价值观

Meeples 正在看一个软件开发工作流

个人和交互
优先于流程和工具

打开包含已完成工作单的文件夹

工作软件
优先于全面的文档

在平台上工作的米宝

客户协作
优先于合同谈判

水晶球

响应变化
优先于遵循计划

Enter DevOps


DevOps is an approach to software development that enables teams to build, test, and release software faster and more reliably by incorporating agile principles and practices, such as increased automation and improved collaboration between development and operations teams. Development, testing, and deployment occur in both agile and DevOps. Yet traditional agile stops short of operations, which is an integral part of DevOps. 

The goal of DevOps is to help bring together developers who write application software and operations who run the software in production. Also, to build and maintain the infrastructure where it runs. DevOps replaces the old approach of development teams writing applications then throwing them over the wall to an operations team who deploys and manages the software with minimal visibility into how it was developed. In a DevOps environment, developers and operations teams work side by side throughout the entire process of developing, deploying, and managing applications.   

Two common frameworks for understanding DevOps are “Three Ways” and “CALMS”, an acronym for Culture, Automation, Lean, Measurement, and Sharing. Culture refers to the cultural shift where development and operations work more cohesively. Automation increases velocity and ensures higher quality. The lean principles of continuous improvement and embracing failure are the foundation of an experimental mindset. Measure refers to the practice of measuring results to improve processes. Sharing emphasizes the importance of DevOps as a group effort and adopting best practices.

The DevOps Three Ways

Connecting puzzle pieces

Systems thinking
Understanding that software applications are complex systems

Browser pointer with play

Amplifying feedback loops
Improve bidirectional communication between teammates

Meeples looking at a software development workflow

Cultural change
Culture of continuous experimentation and learning

When do agile and DevOps work together?


DevOps can be thought of as an evolution of agile practices, or as a missing piece of agile. It’s an effort to take the innovations of the agile approach and apply them to operations processes. At the same time, it’s a missing piece of agile, because certain principles of agile are only realized in their most complete form when DevOps practices are employed. For example, there are multiple references to continuous delivery of software in agile documents, but because delivery pipelines encompass operations concerns, continuous delivery is usually regarded as a DevOps practice. Amplifying feedback loops requires improved communication across and between teams. Agile, specifically scrum, helps facilitate this communication through its various ceremonies such as daily standups, planning meetings, and retrospectives.

What are the similarities/differences between agile and DevOps?


  • Agile emphasizes collaboration between developers and product management — DevOps includes the operations team
  • Agile centers the flow of software from ideation to code completion — DevOps extends the focus to delivery and maintenance
  • Agile emphasizes iterative development and small batches — DevOps focuses more on test and delivery automation 
  • Agile adds structure to planned work for developers — DevOps incorporates unplanned work common to operations teams

The Agile Manifesto explicitly prioritizes individuals and interactions, working software, customer collaboration, and responding to change. These are clearly the same priorities of DevOps but extended beyond the development process and into the management of systems and running applications. 

In addition, the Twelve Principles of Agile Software includes references to DevOps principles. For example, the emphasis on continuous integration and delivery, working in small batches with frequent releases, and using automation are all referenced in the Twelve Principles of Agile Software.

In conclusion... agile AND DevOps


Ultimately the goals of agile and DevOps are the same: to improve the speed and quality of software development, and it makes very little sense to talk about one without the other. Many teams have found agile methodologies help them tremendously, while others have struggled to realize the benefits promised by an agile approach. This might be for any number of reasons, including teams not fully understanding or correctly implementing agile practices. It may also be that incorporating a DevOps approach will help fill the gaps for organizations that struggle with agile and help them have the success they were hoping for.  

Atlassian connects development, IT operations, and agile teams with automation that spans Atlassian products and third-party tools. To learn more visit Atlassian DevOps.

Tom Hall
Tom Hall

Tom Hall 是 DevOps 流程的倡导者和实践者,他热爱阅读,还是一名业余钢琴家。
过去 20 年,他获得了 Novell、EMC、VMware 和 AWS 的认证。2016 年,他在亚特兰大协助主办了 DevOpsDays,之后数年又在德克萨斯州奥斯汀协助主办了 DevOPSDays。


分享这篇文章
下一个主题

推荐阅读

将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。

Devops 示意图

DevOps 社区

Devops 示意图

模拟研讨会

地图插图

免费试用

注册以获取我们的 DevOps 新闻资讯

Thank you for signing up