为什么互联网项目适用敏捷开发
上面一篇文章我们提过为什么分布式需要做前后端分离,今天这篇我们从开发模式来详解为什么互联网项目使用于敏捷开发?
因为笔主经历过瀑布开发模式和敏捷开发模式这两种开发模式,所以存在有一些自己的见解跟大家交流。
下面所以我们这边先来简单介绍下这两种模式:
一、瀑布开发模式:
瀑布开发模式是由W.W.Royce在1970年最初提出的软件开发模型,瀑布式开发是一种老旧的计算机软件开发方法。
瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。
步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 总的来说,迭代周期长一些,一次性解决所有的任务,一次上线。
下面我们说说瀑布开发模式的几个特点:
1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。
2.重视和强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的模样。在这种情况下,文档的重要性仿佛已经超过了代码的重要性。
3.瀑布模型每个阶段的人员只关心自己阶段的工作,不需要关注其他阶段的工作。
优点:
1、可以让开发人员能够更专注于本职工作,提高阶段效率。
缺点:
1、在项目各个阶段之间极少有反馈,风险往往迟至后期才显露,失去及早纠正的机会。
2、项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。
3、测试人员最后才参与到项目中来,后期风险较大。
4、只有在项目生命周期的后期才能看到结果。
二、敏捷开发模式:
敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不 尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织 型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。总的来说,拆分成多个小迭代,多次上线。
下面我们说说敏捷开发模式的几个特点:
1、最核心的功能最先完成,容易出成果。
2、小步快跑,尽早交付,拆分各个小迭代(spring),一定的迭代周期内需要确保开发的完成,规避了一定的上线风险。
3、各组人员分迭代来有序工作,比如:设计人员出一个模块RP,开发人员完成这个模块编码,测试人员完成这个模块测试。
4、敏捷的管理是团队的自我管理和项目经理的服务式管理,项目经理需要根据当前开发资源确保每个迭代的的可完成性,团队成员需有良好的自我管理能力,来确保小迭代内功能的完善;项目经理需要对整体启到把控作用,迭代中可以根据开发进度进行各成员工作的微调,保证迭代进度的完成。
优点:
1、容易出成果,可以快速提高软件发布周期,敏捷确实是项目进入实质开发迭代阶段,用户很快可以看到一个基线架构版的产品。
2、测试人员能够尽早参与进项目中来,规避了一定的风险。
3、每次迭代周期应尽可能短,以便能及时地处理需求变化和用户反馈。
缺点:
1、迭代周期端,为了不影响迭代完整,需要项目中存在经验较强的人,要不大项目中容易遇到瓶颈问题,延误迭代进度。
2、敏捷开发要求各员工自我管理要强,所以对人员素质和稳定性的要求又更高。
三、那为什么互联网项目要用敏捷开发呢?
1、出成果(版本)快,互联网就是以快吃慢,一般都是迭代发布的,追求创新,说明了需要快速响应用户的变化,时间就是一切,需求不确定性高,这个在软件行业也很常见;关注用户行为,倡导以用户为中心的产品设计。很典型的例子微信,腾讯一个月开发出来的产品,根据用户体验和反馈,通过反复的小迭代来优化。
2、互联网项目中市场反响和客户体验尤为重要,需要有一个快速迭代来响应客户的需求,确保客户的满意度。如果是瀑布式开发,迭代慢,更改的成本也比较高。
3、随时应对变化,因为迭代周期的减小,使得项目的弹性更足,可以更好的适应互联网项目上更多的不确定性。
四、那如何从瀑布开发模式往敏捷开发模式切换?
任何开发模块的切换都是存在风险点的,包括我们前面介绍的前后端分离模式,那我们需要做什么来减少这些风险呢?
1、优先选择周期比较长的项目,资源较充足、素质较高的团队来试行。
2、需要制定一套较为完整的敏捷体系,从产品到开发到测试,选型敏捷工具。
3、刚切换过来的迭代,可以适当减少迭代内容,切换过程需要缓冲时间,避免因为试行阶段出现的问题,从而团队的整个心态。
4、项目经理需要把控好任务进度,需要在迭代的中间,每天了解迭代运行情况,最好是每天团队可以有晨会。
五、敏捷开发流程:
下面是敏捷开发的整体流程:
为什么互联网项目适用敏捷开发相关推荐
- 项目的敏捷开发方法(转自MBAlib)
项目的敏捷开发方法 敏捷方法很多,包括 Scrum.极限编程.功能驱动开发以及统一过程(RUP)等多种法,这些方法本质实际上是一样的,敏捷开发小组主要的工作方式可以归纳为:作为一个整体工作: 按短迭代 ...
- 使用leangoo做多团队敏捷开发项目管理
概述 多团队敏捷开发主要是指多个Scrum团队/敏捷团队开发同一款大型产品或大型项目的敏捷开发. 适用场景 适用于多个团队进行大规模敏捷开发协作.Leangoo基于多团队大规模敏捷开发需求,也提供了可 ...
- 单团队敏捷开发项目管理示例
概述 单团队敏捷开发主要是针对10人以下.只有一个Scrum团队的小型产品或项目的敏捷开发. 对于小型团队来说,在Leangoo中创建一个单团队敏捷开发项目就可以很好地支持团队产品或项目的开发. 适用 ...
- 敏捷开发团队管理系列之一:序言与出发点
这是敏捷开发团队管理系列的第二篇.(之一,之二,之三,之四) 之前的各个系列中,已经涉及了很多团队管理相关的内容,比如松结对编程系列中提到过大型团队分拆为微观开发团队的管理,产品管理系列中提到过Pro ...
- 敏捷开发 vs 传统开发
说起敏捷开发,并不是因为敏捷而敏捷.这几年的敏捷开发已经被很多敏捷咨询服务商神话了,这个东西并不是神器,实施了就可以解决所有软件公司的问题,而是要结合自己公司的特点和问题摸索出适合自己的一套模式. 大 ...
- 敏捷开发个人理解及简单执行流程
什么是敏捷开发? 敏捷开发(Aglie Development)不是指某一种具体的方法论.过程或框架,而是一组价值观和原则. 理解 敏捷并不是一门具体的技术,而是一种理念或者说是一种思想,他可以指导我 ...
- 敏捷开发中Scrum方法
现代软件开发肯定是复杂的,因为到目前为止,还没有一种方法从根本上消除软件之前的依赖,软件随着规模的扩大,需求的不精确和不停的变更以及需求调研人员限于领域知识所限,无法抽像出客户的需求.从技术上来说,虽 ...
- 瀑布式开发、迭代式开发、螺旋开发、敏捷开发四种开发模式的区别
1.瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型,瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析.设计.编码.集成.测试.维护的步骤顺序进行. 步骤成果作为衡量进度的 ...
- 敏捷外包工程系列之二:人员结构(敏捷外包工程,敏捷开发,产品负责人,客户价值)...
本文是敏捷外包工程系列的第二篇.(之一,之二,之三,之四) 敏捷开发整体上适合小团队.产品研发(所以才有product owner一称)的环境,而外包软件开发中常常存在的则相反,因此在创建团队的时候要 ...
最新文章
- 2020年中国医疗数据中心市场规模及发展趋势预测分析
- Java面试题整理,一线互联网公司java面试核心知识点
- git学习 远程仓库02
- JWplayer 用法及参数介绍(二)
- 第六章 用正三和弦为含跳进旋律配和声
- 计算机会计信息系统中凭证日期应该是,《电算化会计》期中考试试题.doc
- DTU是什么,什么是工业4G DTU?
- 软件测试过程与方法_第4周单元测试
- java.lang.NoClassDefFoundError: com/huaban/analysis/jieba/JiebaSegmenter
- SCI论文写作的学习与总结
- .net 后端生成海报
- 【网络编程】大端模式和小端模式
- 【小波滤波】基于小波变换的噪声信号滤波处理matlab仿真
- Hive性能调优实战 分享
- 递归方法求最大公约数,求最小公倍数
- (贪心)CF1428E. Carrots for Rabbits
- SQL Server2008 R2下载及安装
- 机器学习经典算法思维导图
- 拼多多店铺排名提升怎么做?
- python 微积分 函数_用Python学微积分(2)---复合函数
热门文章
- How To Become A Hacker
- (2019春)软件构造:雨课堂试卷(五)(第7章)
- 禁用北信源的DeviceRegist软件 .
- 苹果iPhone销量74天突破百万部大关
- 数据库迁移遇到的问题和解决方案
- html中margin-top整体下移问题,cssmargin-top使用中经常遇到的问题总结
- 通过Rsync进行3CX备份和录音文件冗余,确保3CX数据安全
- ppt中的流程图怎么整体移动_小金在PowerPoint演示文稿中绘制了一个包含多个图形的流程图,他希望该流程图中的所有图形可以作为一个整体移动,最优的操作方法是______...
- 贝克曼库尔特Beckman Coulter全自动血液生化分析仪AU5800双工通讯开发
- 一个模仿探探头像编辑效果解析