敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。强调以人为本,专注于交付对客户有价值的软件。是一个用于开发和维持复杂产品的框架。主要还是以用户的需求进化为核心,采用迭代和循序渐进的方法进行软件开发。
用通俗易懂的话来说就是客户交付给你一个大的项目。你们研究以后将其分为几个小的可独立运作的小项目分别完成。期间你会影响软件的使用。但是当你们已经完成了小项目的时候客户又提出这个东西不用了或者要变成另外一个东西,那么就需要快速的进行更改。保证快速完成。
敏捷开发的基本流程如下:
1、产品经理将整个项目做一个需求。
2、 召开产品会议,确定哪些需求是需要在第一个迭代中完成的。完成整个产品需要多久。
3、把迭代的功能需求写在纸条上贴在任务墙,让大家认领分配。
4、每天组织十五分钟左右的立会。总结昨天任务完成情况、领取今天任务。在任务墙上更改任务进程。
5、在迭代完成时开评审会议,向客户展示产品,听取客户意见。
6、完成后召开总结大会,总结得失。
谈起敏捷开发不得不提瀑布式开发。
传统的瀑布式开发一般流程如下:
1、需求分析
2、方案设计。
3、实施/编码
4、测试/评估
瀑布式开发流程如下:
1、概念阶段
2、需求阶段
3、开发实现
4、功能测试
5、系统测试
6、内部体验
7、产品发布
在这七个流程中需求阶段、开发实现及功能测试可看做一个敏捷迭代。
瀑布模式把每个环节都可以看做一个黑盒,每个员工只关注自己阶段的工作。这样做的好处是员工可以更加专注的做好自己的本职工作,坏处是沟通不到位,如果有员工离职后面就会很麻烦。同时前面出现的BUG远远大于后面BUG对软件的影响。而敏捷开发则不会出现,因为分为不同个迭代完成,所以可以随时根据客户的需求更改。BUG影响也相对较小。同时客户可以在一次迭代完成以后对产品做一次反馈,可以及时更改,客户满意度更高一些。瀑布式开发较适合相对稳定的大型开发,敏捷开发则更加灵活。