首页 > 代码库 > 聊聊敏捷开发
聊聊敏捷开发
从我个人入行短暂的经历来看,敏捷开发和瀑布开发两种软件开发流程是现在的WEB开发中提到的比较多的。工作中也有大牛们分享对两种开发流程的优缺点的比较分析,但我个人是没有经历过瀑布开发的,没有经历也就谈不上理解。下面就站在一个软件开发工程师的角度,谈谈我个人对敏捷开发的一些理解。
图1 对敏捷开发的理解
如上图所示,软件开发的一般流程可以认为是:需求分析、系统设计、系统研发、系统测试,最后也就是系统上线。敏捷开发之所以敏捷,我认为是对总体的项目进行了分解,项目并非一次完成目的,而是分解成了多期的小目标,逐个递进,予以执行。那么首先进入的是第一阶段,可以说是了解项目的核心目标,满足用户的基本需求。
在需求分析阶段,也就是确定“我要做什么”,这个时候以产品团队的担子为最重。产品经理需要了解用户的需求,提炼业务的精髓,确定产品的功能,也可以说是想好产品故事。
在系统设计阶段。也就是确定“我要怎么做”,这个时候担子就到开发团队来了,架构师或者资深研发工程师就要出来攻坚了。框架用SpringMVC还是SSH,数据库用mysql还是oracle,缓存用redis还是memcache,同时最关键的一点,这个时候的成果里必须要有项目的第一版数据字典。
在系统研发阶段,担子同样是主要落在开发团队。现在的框架基本都采用MVC的设计模式,后端开发和前端开发基本并行,在开发基本结束的时候直接进行联调就可以了。
系统研发结束后,需要由测试团队进行系统测试。严谨的系统测试团队还会编写严格的测试用例,小团队在开发过程中可能主要测试一下系统的流程是否通畅,把BUG都找出来。然后反馈到开发团队,由开发团队进行修改再测试。
测试无BUG之后,就代表可以由实施人员将代码上线了。通常情况下新功能会包括有上线脚本、代码、上线必要操作三部分。新代码的执行需要依赖脚本,新代码的作用发挥需要依赖于刷新缓存等上线必要操作。
在这几个过程中,敏捷的要义主要体现在产品研发以小任务为周期,大项目被划分为几期小项目来分期实现。系统上线后并非产品研发结束,而是新一期产品研发的开始。新的开始可以是新的需求,也可以是一个上线后出现的BUG。产品对于用户需求的变更能够很快地调整过来,这大概就是敏捷的重要体现。
聊聊敏捷开发