究竟什么是敏捷开发?为何使用敏捷开发方式?

作者:敏捷开发   发布时间:2020-07-31

说到“敏捷开发”一词,想必大家都不陌生,那么,究竟什么是敏捷开发?事实上,“敏捷开发”并不是一门技术或者工具,而只是一个软件开发方法,也可以说是思想。


敏捷开发是一套软件开发的价值和原则,倡导演进式开发,提早交付,持续改进,鼓励对变化做出快速灵活的反应。很多人可能会有这样一个误区,即敏捷开发就是快速,越快越好,加班加点写代码、赶进度等,而实际却并非如此,对于敏捷,我们可看作是轻量级、高效。


换句话说敏捷开发是一种应对快速变化的需求的一种软件开发能力,只要在符合价值观和原则的基础上能让开发团队拥有应对快速变化需求的能力,这就叫做敏捷开发。

敏捷开发


一般而言,传统软件开发时通常是罗列大堆需要的功能,之后再进行线性流程开发,这也被称作瀑布流开发流程。而敏捷开发则是将项目分解成多个”小目标“,通过分阶段不停完成这些小目标,进而完成一整个大项目。


在敏捷开发还没有出来之前,大部分公司的开发模式基本也都采取瀑布式开发。而瀑布式开发往往具有如下几个特点:


文档:尤其看重文档,项目初期就要求文档设计的非常完善,一切以详细的文档为导向

开发周期:固定且漫长,至少以数月为单位,团队成员严格按照项目排期进行开发

人员规模:人数众多,一般都是整个技术部门全员一起参与某一开发周期的项目开发

需求变动:定好的需求,一般不会变动,所以需求一开始就要设计的非常完善

返工:由于软件生命周期严格按顺序划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。那么一旦开始进入开发,那么不可能返工,因为返工会带来巨大的成本开销

版本变更:每个项目项目开发阶段都会有明确的目标,目标如果未完成不会进入下一阶段,也就意味着版本变更不会太频繁

根据传统瀑布式开发的以上特性,我们发现,面对互联网时代用户多变的需求,如果按照瀑布式开发进行,那么几乎很难响应需求的变更,难以做到快速交付新版本的产品。而并不是说瀑布式开发就一定不行,在传统行业依然是主流开发模式。


敏捷开发具体又是什么样的一种方法呢?下面一起来看一下


1、团队密切协作


敏捷开发中,最核心的就是人。因此,敏捷开发需要做到以下几个关键点:


定期会议。定期举行一个高效会议,有利于开发人员保持紧张有序的工作状态。

及时告知项目进展。遇到问题时互相及时告知,让所有人及时了解项目最新进展。

知识共享。共享知识,可以让整个团队开发能力提升的更快。

代码共享。把代码集中在版本管理工具之中,团队任何人都有访问权限。

代码审查。对于代码的每个改动,相关人员都需要做代码审查。


2、不断反馈和调整


敏捷开发与传统开发不一样的就是其并不是一次定终身,因为软件开发不是线性路程,所以可能存在着很大的不确定性,需要不断的反馈、调整,快速的去响应变化。

需求调整。在产品真正落地前,没有人可以制定出完美需求方案,用户说不定什么时候就变更了某个需求,所以开发团队需要做好需求不断变化的心理准备,并快速响应需求变化。

功能调整。收集客户反馈、用户反响,来不断调整和优化软件功能。

代码重构。在开发的过程中,需要不断的重构代码,保持代码清晰、内聚、整洁。


3、保持软件可用


传统软件开发方式是当所有编程代码写完后再集中测试和上线,这一点在如今信息快速发展的今天,略有落伍,毕竟若你的软件开发个半年,那么行业中可能早已出现类似软件了,到时就是凉了的黄花菜了。

敏捷开发则有所不同,可在最小可用版本基础之上,不断做功能迭代,不断发布新的版本。简单来说就是,先做一个简化功能版本出来,让用户有软件可用,之后再逐步添加更多功能,而非一步到位。这样还有利于不断收集用户反馈和需求,并及时调整开发方向。


4、短迭代,增量发布


所谓“迭代”就是,重复下一个开发周期,用迭代的方法在前一版本之上逐步开发新的功能,发布新的版本,即:增量发布。迭代周期不宜过长,需保持开发过程稳步前进,不过也不能太过频繁,否则可能就会过犹不及,具体迭代周期可根据实际情况量力而行。


5、提早集成,不断集成


“集成”的含义就是,把软件的各个模块,新旧代码统一整合在一起,能够正确编译、运行,并且能够通过一系列的单元测试。

对于敏捷开发来说,开发人员需要尽可能做到提早集成,频繁集成,一般每添加进一些新的代码时,最好都做一次集成,不要临到软件发布或者交付的当天才开始集成,也不要很久才集成一次,如此可以尽早发现代码中的问题,保持软件的状态一直是可用的。


6、自动化集成、测试与部署


敏捷开发可通过技术手段把集成、测试与部署这些非常耗时的操作自动化。对于大型软件开发团队来说,编译。测试过程都是非常耗时的,这时,通过技术手段把这些耗时的纯体力劳动扔给机器去做,只需等待结果就好,而且两个人同时Check In时也不会受到影响。


综上所述,敏捷开发最大的一个特色就是迭代式开发,不过迭代式开发也并非敏捷思想的全部,团队协作与自动化开发也是敏捷思想的精髓所在。


敏捷开发由于迭代周期短(一般周为单位)、人员规模少、随时响应变化,具有更大的灵活性、更少的投入、更高效的开发、更及时的交付、更大程度的降低风险(及时了解市场需求,降低产品不适用风险)。从这个方面来讲敏捷开发是完全可以适应互联网时代下用户多变的需求,也就是我们常说的小步快跑,将一个大的需求拆分成各个小的需求,针对某个阶段的小需求,组织少量的人员,借助于一定的规范、流程、工具、会议,从而达到快速交付上线的目的。

推荐阅读:

WBS是什么?创建WBS有什么作用?


性能测试工具的基本工作原理


黑盒测试、白盒测试、灰盒测试分不清?这篇文章给你讲明白


性能测试心得——吞吐量与并发数用户数之间的关系


小米手机机型适配调试便捷解决方案


浅析黑盒测试和白盒测试各自的优缺点


你听说过众筹众包,那众测能做什么?


安卓手机APP稳定性测试的方法-monkey测试



本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。



沪ICP备07036474号-4 |

沪公网安备 31010702003220号

2015-2023 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.