DevOps vs. Agile:它们有什么共同点?
DevOps与Agile有很多不同,但它们之间仍可发现很多共同点,这篇文章为读者揭晓。
DevOps和Agile之间有着明显的关系。Agile是方法论,Scrum是框架,并DevOps随着看板也落在了Agile的“伞”下。精益,大规模的Scrum,极限编程,水晶等。例如,我们的Scrum团队是一个Agile团队,将作为DevSecOps团队运作。
DevOps和Agile都不是关于工具的。两者都是关于思维方式和文化的。如果做得正确,团队将以不同的方式思考和采取行动,并取得更大的成果,包括更快的软件交付,持续集成(CI),持续交付(CD),持续改进,工作软件,更快的解决方案,更多的协作和更少的孤岛。另外,在质量测试方面能看到的附加结果,更好的自动化以及改进的系统,过程和实践。
共同的概念
它们共有的一些Agile概念与Agile宣言相关。前12条原则中最熟悉的是前4条:
个人和交互重于流程和工具
有效的软件重于完整的文档
客户协作比合同谈判更重要
响应变化胜过遵循计划
有些DevOps概念,它们的共同点是CI / CD管道,优化软件交付和质量,一种创新文化,服务水平的目标和指标(SLO和SLI),团队之间的协作以及自动化。
DevOps和Agile的优势
DevOps加快了开发人员与运营之间的速度。此外,即使DevOps与工具无关,开发人员和操作人员团队使用相同的技术堆栈这一事实,也在两者之间创建了共享的语言和同理心。我们的Scrum团队使用Jira来跟踪所有错误,增强功能和团队绩效。
常见的DevOps工具是Jenkins,AWS,SonarQube,GitHub,Splunk和Ansible。尽管各个团队的工具有所不同,但是思维方式和文化应该在所有人之间是通用的。
DevOps还可以减少开发人员与操作人员之间的分歧,就像了解彼此穿鞋的感觉,因为现在它们可以合而为一。
Agile团队不断频繁而快速地交付,并在此过程中逐步适应。对于大多数软件或产品交付团队而言,两周的冲刺工作似乎是最佳选择。Agile团队可以在其工作中使用DevOps原则(例如,实施CI / CD管道),与运维人员一起工作的开发团队可能以相同的两周增量工作。
传统上,DevOps引导着持续的部署、交付和集成。团队合作已整合;问题和故障由开发、运营和其他实体共同拥有,例如质量保证(QA)、测试、自动化等。
我相信,Agile和DevOps同呼吸共命运,它们之间有许多概念和理论交织在一起。尽管我毫无疑问,现在仍将有对我的观点的反对意见,甚至尖锐的异议,但我认为我们都同意,Agile和DevOps致力于解决复杂性,提高质量并围绕软件设计进行创新。
写在最后
DevOps与Agile的话题几乎就像辩论iPhone与Android一样,每个人都有自己的见解,尤其是在人们不同意的情况下。
在撰写以上这篇文章之后,阅读了这篇文章的评论后,我想补充一些想法,包括我对该主题的某些看法发生了怎样的变化。
我的观点来自我现在的位置,也来自我曾经去过的地方。我曾经是系统管理员和基础架构工程师,现在是密苏里州一家大型公用事业公司的高级Scrum管理员。
我的团队由六名前端软件工程师和IT程序员分析师、一名业务分析师和两名产品负责人以及我共同组成。最近,我们了解到管理层希望我们的团队成为DevSecOps团队,因此我们的核心Scrum团队正在与DevSecOps团队合作,以帮助我们进行过渡。没有人会天真地认为这是一件容易的事情,但DevSecOps团队的经验使我们对成功充满信心。
我们团队的经理最近聘请了一位高级软件工程师,他们将推动DevSecOps目标的实现。作为一名scrum master,我将继续专注于持续改进。团队还很年轻,所以他们没有丰富的工作经验,但是他们很聪明而且有干劲,还有很大的发展空间。此外,我们整个组织都在经历着Agile转型,因此大多数人对Agile的所有事物都是陌生的,包括Agile宣言和五个Scrum价值观。