敏捷小讲堂什么是敏捷开发
Posted 信银软开大家庭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了敏捷小讲堂什么是敏捷开发相关的知识,希望对你有一定的参考价值。
敏捷开发的定义
敏捷开发(Agile Development)是一种以人为核心,通过迭代完善、循序渐进快速交付的开发方法。敏捷开发从1990年代开始逐渐引起广泛关注,相对于“非敏捷”,更强调开发团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重人在软件开发中的作用。
敏捷开发的诞生
2001年,由Martin Fowler,Jim Highsmith等17位软件开发专家在美国犹他州召开了雪鸟会议,会议上正式提出了敏捷开发概念,并共同签署了敏捷宣言,敏捷联盟成立。
2003年,《 Lean Software Development: An Agile Toolkit 》出版,精益开发方法被业界广泛认知,并完善了敏捷开发方法。
2006年至今,Google、微软、IBM、亚马逊、华为等公司在大规模软件开发中开始应用敏捷,掀起敏捷应用热潮。
常见的敏捷开发方法
①Scrum
②水晶方法,Crystal
③特性驱动开发,FDD/Feature Driven Development
④精益软件开发,Lean Software Development
⑤极限编程,XP Extreme Programming
⑥Kanban
敏捷开发的优势
敏捷开发属于增量式开发,对于需求变更较多的项目而言,可以很大程度上响应及拥抱变化。
因为市场变化越来越快,需要一种及时快速的交付形式,而敏捷开发则能更好地适用于此。
敏捷开发可以最大程度体现80/20法则的价值,通过增量迭代,每次都优先交付那能产生80%价值效益的20%功能,可以最大化单位成本收益。
敏捷开发怎样以人为核心
在使用瀑布开发模型进行软件开发时,它是以阶段过程和文档为驱动的。因为在瀑布模型的整个开发过程中,每个阶段划分非常分明,通过阶段结束前评审对阶段完成进行确认。在开发过程中要写大量的文档,例如需求分析文档,设计文档,测试文档等,开发人员都是根据文档进行开发的,一切以文档为依据。而敏捷开发只写有必要的文档或尽量少写文档,敏捷开发注重的是人与人之间进行面对面的沟通交流,所以它强调以人为核心。
敏捷开发的迭代
敏捷开发的迭代是指把一个复杂且开发周期很长的需求,细化为可以进行独立交付的用户故事,再由团队分解为很多小粒度的任务,在一个固定的周期内完成多个用户故事进行交付的过程,这个过程就称为迭代。每个迭代的目标都是产出潜在可交付的软件增量。
敏捷开发中的Scrum和Kanban
敏捷开发本身是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和Kanban就是敏捷开发的具体方式了。Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作,采用Scrum的开发团队在开发一个项目时,就像打橄榄球一样,团队成员高效、并行的实现一个共同的目标并交付。Kanban是为了达到及时生产(JIT Just-in-Time)方式控制开发流程的工具。及时生产方式中的拉式(Pull)开发模式可以使信息的流程缩短,并配合定量、固定装载等方式使开发过程中的任务流动顺畅。Scrum和Kanban的区别是,Scrum有严格的时间箱,采用迭代交付方式。Kanban则偏重于流水线,强调限制在制品,可以根据人员数量来确定实际开发流速。
♢摄影:DevOps项目组♢
♢投稿邮箱:zhouzheng@citicbank.com♢
以上是关于敏捷小讲堂什么是敏捷开发的主要内容,如果未能解决你的问题,请参考以下文章