因为世界在变,市场在快速变化,需求在快速变化。
2005年之前,大部分软件开发项目采用“瀑布法”,将项目严格按照计划进行,上一个阶段完成才允许进入下一阶段。导致进度缓慢,甚至延迟交付,等到产品上线时可能已经不在符合市场需求,所以我们需要更加快速地适应变化!
敏捷强调不断尽早地交付价值,善于利用需求变更帮助客户获得竞争优势,交付周期更快更短。近年来,越来越多的企业行业引进敏捷项目管理,不仅是软件行业和互联网行业,教育、医疗、服务行业等在逐步向敏捷转型或者使用混合式的管理方法。
下面所以我们这边先来简单介绍下这两种模式:
一、瀑布开发模式:
瀑布开发模式是由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、项目经理需要把控好任务进度,需要在迭代的中间,每天了解迭代运行情况,最好是每天团队可以有晨会。
关注公众号:PMP 项目管理之家、才聚项目管理PMP暨NPDP考试中心
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。