问题描述
在许多软件公司中,敏捷软件开发已成为首选的开发方法。然而,仍有一些组织在软件开发中并未采用敏捷方法,而可能对采用DevOps感兴趣。我想知道在组织层面上,采用DevOps是否必须先采用敏捷软件开发?这里所指的敏捷软件开发包括来源于“敏捷软件开发宣言”(http://agilemanifesto.org/)的各种方法,例如极限编程、Scrum、精益软件开发等等。
解决方案
敏捷软件开发并不是采用DevOps的必要条件,但可以认为,如果没有敏捷方法,采用DevOps的价值提议通常会较低。
DevOps涵盖许多方面,但其中一个核心主题是自动化。自动化的价值与开发频率直接相关。频繁的部署对某些类型的产品(特别是消费者应用程序)有积极影响。在整个软件交付生命周期中保持高速度对每个迭代都会带来价值。如果没有敏捷方法,高频发布将非常困难,甚至不可能。如果开发团队每季度或每半年发布一次软件,虽然DevOps可以自动化流程,但这一点意义何在?采用DevOps可能需要投入时间、培训和资源,但主要的价值在于保持交付生命周期中的高速度。
此外,也可以提出这样的观点:如果要采用DevOps,为什么不也采用敏捷方法呢?使它们共同发挥作用的原则在一起运作效果很好。单独采用DevOps而不采用敏捷方法可能会导致运维(Ops)在服务交付方面超越开发(Dev),可能会导致不平衡。
一些人认为,如果要采用DevOps,最好的做法是在实施基本的DevOps后再采用敏捷方法。这种做法可以帮助推动敏捷的实施,而不是将敏捷视为采用DevOps的先决条件。
综上所述,采用DevOps不需要必须先采用敏捷软件开发,但在实际操作中,它们往往会共同协作,发挥更好的效果。
正文完