敏捷开发 - 敏捷软件开发理论及流程

什么是敏捷软件开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷开发和传统开发(比如瀑布模型)有何区别

敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。

对于大型软件项目,传统的开发方式是采用一个大周期(比如一年)进行开发,整个过程就是一次"大开发";迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次"大开发"变成多次"小开发",每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
在这里插入图片描述

敏捷开发的好处

  • 早期交付
    敏捷开发的第一个好处,就是早期交付,从而大大降低成本。
  • 降低风险
  • 敏捷开发的第二个好处是,及时了解市场需求,降低产品不适用的风险。

由于敏捷开发可以不断试错,找出对业务最重要的功能,然后通过迭代,调整软件方向。相比传统方式,大大增加了产品成功的可能性。如果市场需求不确定,或者你对该领域不熟悉,那么敏捷开发几乎是唯一可行的应对方式。

敏捷软件开发的流程

图片来源于网络,这张图相对全面的体现了敏捷软件开发的流程
在这里插入图片描述

敏捷软件开发的原则

Robert大叔的《敏捷软件开发》大体上给出了12个原则

  1. 我们最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意。交付得越频繁,最终产品的质量越高。
  2. 我们欢迎需求的变化,即使到了开发后期,敏捷过程依然能够驾驭变化,为客户创造竞争优势。
  3. 经常交付可以工作的软件,从几个星期到几个月,时间间隔越短越好。
  4. 在整个项目开发期间,业务人员和开发人员必须朝夕相处在一起。
  5. 围绕斗志高昂的人构建项目。
  6. 在团队内部,最有效率也最有效果的信息传达方式,就是面对面的交谈。
  7. 可以工作的软件是进度主要的度量标准。
  8. 敏捷过程提倡可持续开发。出资人、开发者和用户应该总是保持文档的开发速度。
  9. 对卓越技术和良好设计的不断追求有助于提高敏捷性。
  10. 简单-尽可能减少工作量的艺术是至关重要的。
  11. 最好的架构、需求和设计都源自自我组织的团队。
  12. 每隔一段时间,团队都要总结如何更有效率,然后相应地调整自己的行为。

敏捷软件开发常见方式

通过如下报告(大概是16年左右),大致上可以看到敏捷在整个开发方式的趋势,敏捷中Scrum独占鳌头
在这里插入图片描述
常见的敏捷开发方式如下:

  • 敏捷开发 - 面向工程管理:极限编程(XP)
    极限编程(ExtremeProgramming,简称XP)是由KentBeck在1996年提出的,是一种软件工程方法学,是敏捷软件开发中可能是最富有成效的几种方法学之一。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。极限编程透过引入基本价值、原则、实践方法等概念来达到降低变更成本的目的。
  • 敏捷开发 - 面向过程管理:Scrum方式
    Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一,通常用于敏捷软件开发。

Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum Master角色负责维护过程和任务,Product Owner代表利益所有者,Developer Team包括了所有开发人员。

参考文章

  • 文章转自大佬 pdai 欢迎大家交流学习
  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值