什么是敏捷开发,能说清的人却不多
发表时间:2023-09-10 11:00:37
文章来源:炫佑科技
浏览次数:171
菏泽炫佑科技
什么是敏捷开发,能说清的人却不多
敏捷开发(agile)是一种非常流行的软件开发方法。 据统计,2018年90%的软件开发采用了敏捷开发。
然而,能够解释清楚什么是敏捷开发的人并不多。 本文试图用简洁易懂的语言来解释敏捷开发。
1. 迭代开发
敏捷开发的核心是迭代开发()。 敏捷必须采用迭代开发方法。
那么什么是“迭代开发”呢? 英文的直译为“重复”,迭代开发实际上就是“重复开发”。
对于大型软件项目,传统的开发方式是在一个大周期(比如一年)内进行开发,整个过程就是一个“大开发”; 迭代开发方式则不同,它把开发过程拆分成多个小循环,即一个“大开发”变成多个“小开发”。 每个小开发都有相同的流程什么是敏捷开发,能说清的人却不多,所以看起来就像是在重复相同的步骤。
例如,该公司想要建造一枚高推力火箭将人类送上火星。 然而,它并不是从头开始建造一个大火箭,而是首先建造*简单的小型火箭1。 结果**次发射就爆炸了,直到第四次发射才成功进入轨道。 随后又研制出了中型火箭9号,9年内发射了70次。 *后,重型火箭被研制出来。 如果没有迭代开发,它可能直到现在才开始起步。
迭代开发将一项大任务分解为多次连续开发,其本质是逐步完善。 开发人员快速发布一个可以运行但并不完美的*小版本,然后进行迭代。 每次迭代包括规划、设计、编码、测试和评估五个步骤,以不断改进产品并添加新功能。 通过频繁的发布和跟踪上一次迭代的反馈,我们*终接近了更完整的产品形态。
2. 增量开发
迭代开发只需要将开发分成多次迭代,并没有回答一个重要的问题:如何划分迭代,哪些任务在本次迭代中,哪些任务在下一次迭代中? 这时一般采用“增量开发”()来划分迭代。
所谓“增量开发”,是指每个版本的软件都会增加一个用户可以感知的完整功能。 换句话说,迭代是根据新的特征来划分的。
例如,一家房地产公司开发了一个由 10 栋楼组成的社区。 如果采用增量开发模式,公司**次迭代是交付1号楼,第二次迭代是交付2号……每次迭代都是完成一个完整的建筑。 而不是在**次迭代中挖掘 10 栋建筑的地基,在第二次迭代中搭建每栋建筑的骨架,在第三次迭代中搭起屋顶……
增量开发加上迭代开发才是真正的敏捷开发。
3. 敏捷开发的好处 3.1 早期交付
敏捷开发的**个好处是提前交付,这大大降低了成本。
我们以上一节中的房地产公司为例。 如果按照传统的“瀑布式开发模式”,我们先挖10栋楼的地基,然后搭骨架,然后搭屋顶。 每个阶段都会等待前一个阶段完成。 一次性交付10栋建筑可能需要两年时间。 也就是说,如果不考虑预售,项目要等到两年才能收回资金。
敏捷开发要求六个月后交付一号楼,此后每两个月交付一栋。 所以半年就可以回笼10%的钱,每个月都有现金流,大大减轻了资金压力。
3.2 降低风险
敏捷开发的第二个好处是及时了解市场需求,降低产品不兼容的风险。
请想一想,哪种情况造成的损失较小:建造完所有 10 栋建筑,然后发现无法出售,或者建造**栋建筑,然后发现无法出售,从而改善或停止建造接下来的 9 栋建筑。 ?
对于软件项目来说,首先拥有原型产品并了解市场接受程度往往是项目成功的关键。 有本书叫《梦想代码》,副标题是“20+程序员的故事,三年,4732个Bug,100万+美元,*终失败”。 这是没有采用敏捷开发的结果。 相反,它*初是一个地理位置签到应用程序。 后来我发现用户不太关心地理位置,更喜欢上传照片,所以我把它改成了照片上传软件,成为了独角兽。
敏捷开发允许不断试错,找出对业务*重要的功能,然后通过迭代来调整软件的方向。 与传统方法相比,产品成功的可能性大大增加。 如果市场需求不确定,或者你对该领域不熟悉,敏捷开发几乎是唯一可行的应对方式。
4. 如何执行每次迭代
敏捷开发虽然将软件开发划分为多次迭代,但也要求每次迭代都是一个完整的软件开发周期,并且必须按照软件工程方法论进行正式的流程管理。
具体来说,每次迭代必须依次完成以下五个步骤。
需求分析 ( ) 设计 ( ) 编码 ( ) 测试 ( ) 部署和评估 ( / )
每次迭代持续大约 2 到 6 周。
5. 敏捷开发的价值观
《敏捷软件开发宣言》提到了四个价值观。
6.十二原则
宣言还提出了敏捷开发的十二项原则。
通过及早持续交付有价值的软件来实现客户满意度。 欢迎不断变化的需求,即使是在项目开发的后期。 善于利用需求变化帮助客户获得竞争优势。 持续交付工作软件,通常需要几周的时间,但时间越短越好。 项目进行过程中,业务人员和开发人员必须共同努力。 计划必须围绕值得信任的具有内在动机的个人制定。 面对面的交谈是*好的沟通方式。 可用性是衡量进度的主要指标。 促进可持续发展,保持稳定的进度。 不断关注技术是否过硬,设计是否良好。 简单很重要软件开发,尽量减少不必要的工作。 *好的架构、需求和设计来自团队内部的自发理解。 团队定期反思如何提高效率并进行相应调整。 7. 参考链接
(超过)
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等