作为在20世纪70年代、80年代盛极一时的软件开发模型,瀑布模型通过制定计划、需求分析、软件设计、程序编写、软件测试、运行维护等6个流程将整个软件生命周期衔接起来。这6个流程有着严格的先后次序之分,只有当前面的流程结束之后,下一个流程才能开始运转。这种自上而下的流程像极了瀑布的下落,因此得名瀑布模型。
我们可以发现,瀑布模型有很多优点:
但随着软件行业的快速发展,瀑布模型也逐渐暴露出许多缺点:
网络的逐渐普及要求软件开发更能贴近人们的日常使用,也在这时,瀑布式开发受到逐渐兴起的“敏捷开发”的冲击。
2001年,十七位关于敏捷方法的发起者和实践者聚集到一起,发表了“敏捷软件开发宣言”。他们强调敏捷开发能够以一种更加简洁、可持续、短周期、高效率的方式进行软件开发,同时希望以敏捷联盟为形式的合作可以帮助到行业中的其他人,帮助他们以更加敏捷的新方式来思考软件开发、方法论以及组织架构。
敏捷开发强调:
简单来讲,敏捷开发采用“迭代开发”,将软件项目需求分成多个迭代,且每个迭代成果在完成开发、测试、反馈等环节后都可以进行交付。也就是说,在将软件交付到客户手中之前,开发过程中的任何经过测试的子项目都能够独立运行。
敏捷开发成功地弥补了瀑布式开发的不足,有很大的优势:
与此同时,也有一些相应的缺点表现了出来:
敏捷开发极大地提高了软件开发的速度,但它注重的是软件的开发阶段,并未兼顾到运维阶段。在开发人员与运维人员进行交接的时候,并没有体现出敏捷的价值、原则,因此开发与运维之间仍缺乏一些必要的协作效率。这时DevOps就应运而生,DevOps促进开发、运维、测试之间的高效协同,从而做到用持续软件交付来修复并能够更快地解决问题:
在软件生命周期中,不论是瀑布模型还是现如今各大公司都在积极转型的敏捷开发和DevOps,都是在软件行业不断发展中产生的,迎合了行业发展的需求。而在转型的过程中,不论是敏捷还是DevOps都是困难重重,一不小心就会遇到很多的反模式,这就要求公司内部各团队不能只是形式主义,而是大胆地迈开步子,走好第一步。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。