敏捷开发详解(含义、原则、目标、机制)

原文链接:https://blog.csdn.net/An1090239782/article/details/80262796

我们理解东西习惯从已知连接未知,首先我们来对比一下。我们最先了解到的是瀑布模型,那么它就是不敏捷的。瀑布开发模式把开发分成一系列阶段,如需求、设计、开发、测试,就像下图它画出来的,看起来很像瀑布,所以叫瀑布开发。
问题是需求的交付难道不都是要经历这些阶段吗?

瀑布开发的本质问题并不是阶段,而是批量。需求批量地在一起进行设计,然后是批量地开发,批量地测试、交付等等。批量有什么问题? 首先,批量让价值交付延迟,所有需求在最后的阶段才能交付,价值交付比较晚。Google执行董事长施密特提出过反摩尔定律,表述为:“如果18个月之后我们只能卖出跟今天一样的东西,我们就只能得到一半的收入。”价值的交付时间将直接影响收入。

敏捷的目标1:

敏捷开发有第一个目标就是更快的交付价值,这里的快指的不是绝对速度,而是更早的交付。
在项目结束的时候,一定是对产品和项目的知识理解最充分的时候。这显而易见,我们在项目进程中积累了知识,特别是当向用户交付产品后,用户反馈:“我要的不是这个啊,我说的明明是……”,这时候你瞬间狂涨知识,并感叹道“你怎么不早说呢?”。这中间可能有沟通问题,但更多可能的是,用户这时才清楚或能够描述他们要的是啥,更有甚者,我们可能一开始连用户是谁也未必能准确地定义。产品和业务开发本来就是一个探索的过程,开始时一定是最无知的时刻。
项目中的大部分决策也一定是在项目开始的时刻做出的,这将有一个重大的悖论,在最无知的时刻,做出了最重要而且是绝大部分的决策,并把它作为随后执行的依据。面对不确定的技术、市场环境,传统开发模式已无法适应要求,悖论越发突出。
敏捷开发将通过迭代应对这一问题,只做初始决策,定大致的方向。通过市场反馈不断修正对产品的认知,增量的决策和调整。

敏捷的目标2:

产品开发过程中,技术环境、市场环境、竞品策略、团队认知都会发生变化。面对变化的环境,我们必须承认自己的无知,在开发过程主动有效地学习,不断地汲取反馈,灵活地调整。这也是敏捷的第二个业务目标,有效学习和灵活响应变化。

敏捷开发工具

敏捷过程

敏捷开发是一种以人为核心,以迭代方式循序渐进开发的方法,其软件开发的过程称为“敏捷过程”。

在这一过程中,软件项目的构建被切分成多个子项目,各个子项目的成功都经过测试,具备集成和可运行的特征。

在2001年年初,一些业界专家成立了敏捷联盟,起草了敏捷软件开发宣言。该宣言针对一些企业的现状,提出了让软件开发团队具有快速工作、快速应变能力的若干价值观和原则,其中包括4个简单的价值观以及敏捷开发方法应遵循的12条原则。

敏捷开发的价值观

1.个人和交互胜过过程和工具。
2.可以运行的软件胜过面面俱到的文档。
3.客户合作胜过合同谈判。
4.响应变化胜过遵循计划。

敏捷开发应遵循的12条原则

1.通过尽早的、不断地提交有价值的软件来使客户满意。
2.即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
3.以从几个星期到几个月为周期,尽快、不断地提交可运行的软件。
4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
5.以积极向上的员工为中心,建立项目组,给他们提供所需的环境和支持,并对他们的工作予以充分的信任。
6.在团队内部,最有效、效率最高的传递信息的方法,就是面对面的交流。
7.测量项目进展的首要依据是可运行软件。
8.敏捷过程提倡可持续的开发,责任人、开发者和用户应该为能够保持一个长期的、恒定的开发速度而努力。
9.时刻关注技术上的精益求精和好的设计,以增强敏捷能力。
10.简单是最根本的。
11.最好的构架、需求和设计出于自组织的团队。
12.每隔一定时间,团队要反省如何才能更有效地工作,然后相应地调整自己的行为。

敏捷组织提出的敏捷开发模型的整体框架主要有三个:
Scrum、XP(eXtreme Programming)、OpenUP 这3个敏捷实践。

敏捷开发的原则

1.凝聚人的力量,紧密协(合)作。包括业务负责人、开发团队、客户、管理者之间的关系,所有这些关系在以前都是造成项目危机的原因之一,那么,在敏捷时代,我们需要这些角色 紧密合作,最大限度的发挥各个角色的力量.
2.聚焦客户价值,消除浪费(如何聚焦用户价值,即频繁的交付用户可工作的软件,快速收到用户反馈)

敏捷团队运作机制

1.一个团队有自己的代办事项,对代办事项进行拆小。
2.按客户价值进行优先级排序,产品经理负责价值排序。
3.小而稳定,跨职能团队。
4.多个团队松耦合(依赖性比较低),对齐迭代时间和战略目标。

关键的团队角色

产品负责人
Scrum主管(流程主管)
开发团队

产品负责人(Product Owner)

负责管理产品backlog(代办事项)的唯一负责人
代表客户/项目如责任人
定义产品的所有特性
负责产品的投入产出
负责最大化产品和开发团队工作的价值

Scrum Master(流程主管)

起到教练的职责,领导团队完成Scrum的实践以及体现其价值。
排除团队遇到的困难,使得团队紧密合作,使得团队个人具有多方面职能的工作能力。
确保团队能胜任其工作,并保持高效的生产率。
保护团队不受到外来无端影响

关键的团队活动

每日例会:每日5分钟左右的一个简单例会,尽可能多的开发人员参与进来对紧要问题的讨论。
评审会:需要在迭代周期的最后一天召开,1个小时左右就可以了,需要客户出席,如果客户不能出席,则需要产品经理出席
迭代回顾会:迭代回顾会是在每个迭代结束时进行,总结工作中的经验和教训,时间维持在30-60分钟内,整个团队都需要参加(Scrum
Master、Product
Owner、开发团队以及客户)。迭代回顾会包括两部分,第一部分是定量分析,第二部分是定性分析。其中定量分析又包含团队是否完成了迭代目标,收集并评审迭代度量指标(包括速率、迭代燃尽图、迭代计划故事和实际完成故事、计划发布日期与实际发布日期、客户满意度、团队满意度、生产环境Bug数、生产Bug解决时间、用户故事等)。定性分析包含哪些工作良好(应该继续保持),哪些做的不好(应该停止)?哪些可以改进(团队选出1-2条在下一个迭代实现)?

原文地址:https://www.cnblogs.com/skycto/p/11470184.html

时间: 2024-10-05 03:09:33

敏捷开发详解(含义、原则、目标、机制)的相关文章

EasyPR--开发详解(6)SVM开发详解

在前面的几篇文章中,我们介绍了EasyPR中车牌定位模块的相关内容.本文开始分析车牌定位模块后续步骤的车牌判断模块.车牌判断模块是EasyPR中的基于机器学习模型的一个模块,这个模型就是作者前文中从机器学习谈起中提到的SVM(支持向量机). 我们已经知道,车牌定位模块的输出是一些候选车牌的图片.但如何从这些候选车牌图片中甄选出真正的车牌,就是通过SVM模型判断/预测得到的.   图1 从候选车牌中选出真正的车牌 简单来说,EasyPR的车牌判断模块就是将候选车牌的图片一张张地输入到SVM模型中,

opencart 模块开发详解

opencart 模块开发详解 由 xiekanxiyang » 2013年 7月 11日 10:17 pm opencart 将页面分成若干模块, 每个模块可以有多个实例(可能这样说不是很恰当) 每个实例可以指定它出现在哪个页面 这样更好的实现了代码的可重用性,可以达到更好的页面布局的可调节性. Opencar内置了几个模块,但实际应用中我们经常要根据需要开发自己模块,现在我给大家介绍下opencart的模块开发的细节 开发步骤:首先:模块代码也分前台,后台. 后台功能是模块的安装,编辑,模块

Android相机开发详解(一)

Android相机开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Android相机开发能够实现打开相机,前后摄像头切换,摄像预览,保存图片,浏览已拍照图片等相机功能. Android相机开发详解(一)主要实现打开相机,摄像预览,前后置摄像头切换,保存图片等四个功能. Android相机开发详解(二)主要实现翻页浏览相片,触控缩放浏览图片,删除图片,发送图片等四个功能. Andro

《Linux设备驱动开发详解(第3版)》海量更新总结

本博实时更新<Linux设备驱动开发详解(第3版)>的最新进展. 2015.2.26 几乎完成初稿. [F]是修正或升级:[N]是新增知识点:[D]是删除的内容 第1章 <Linux设备驱动概述及开发环境构建>[D]删除关于LDD6410开发板的介绍[F]更新新的Ubuntu虚拟机[N]添加关于QEMU模拟vexpress板的描述 第2章 <驱动设计的硬件基础> [N]增加关于SoC的介绍:[N]增加关于eFuse的内容:[D]删除ISA总线的内容了:[N]增加关于SP

家政服务预约app平台开发详解

家政服务预约app平台开发详解:151-1222-4001(微/电)家政服务系统开发,家政服务软件开发,家政服务在线预约平台,家政服务O2O平台,家政服务平台开发,家政服务app开发,家政服务程序开发,家政服务定位系统,家政服务公众号开发,家政服务抢单派单模式. 传统找家政人员的方式是在牛皮癣广告上乱找.中介翻本子给客户推荐,或是通过网上搜索.熟人口口相传.除了难找到合适的家政人员外,没有安全保障也是很多人怕选择家政服务的一大原因.现在通过手机APP找家政员,除了服务质量更能得到保障外,通过担保

Android WebView 开发详解

Android WebView 开发详解 1.概览: Android WebView 做为承载网页的载体控件,他在网页显示的过程中会产生一些事件,并回调给我们的应用程序,以便我们在网页加载过程中做应用程序想处理的事情.比如说客户端需要显示网页加载的进度.网页加载发生错误等等事件. WebView提供两个事件回调类给应用层,分别为WebViewClient,WebChromeClient开发者可以继承这两个类,接手相应事件处理.WebViewClient 主要提供网页加载各个阶段的通知,比如网页开

《Linux设备驱动开发详解(基于最新4.0内核)》前言

Linux从未停歇脚步.Linus Torvalds,世界上最伟大的程序员之一,Linux内核的创始人,Git的缔造者,仍然在没日没夜的合并补丁,升级内核.做技术,从来没有终南捷径,拼的就是坐冷板凳的傻劲. 这是一个连阅读都被碎片化的时代,在这样一个时代,人们趋向于激进.浮躁.内心的不安宁使我们极难静下心来研究什么.我见过许许多多的Linux工程师,他们的简历书写着"精通"Linux内核,有多年的工作经验,而他们的"精通"却只是把某个寄存器从0改成1,从1改成0的不

JavaScript基础与案例开发详解pdf

下载地址:网盘下载 <Java Script基础与案例开发详解>根据JavaScript在各种类型的应用开发中(如B2B.B2C.C2C)的使用情况,有针对性地安排了丰富的案例,从基本的表格操作.表单操作,到构建浏览器端的富文本编辑器,再到实现像Windows那样的复杂UI的操作,每一个案例都能让读者从中学习到主流的JavaScript开发技巧. 针对初学者,<Java Script基础与案例开发详解>也讲解了JavaScript的基本语法,所以即使没有任何编程语言基础,读者也能够

下载Zookeeper从入门到精通(开发详解,案例实战,Web界面监控)

ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.命名服务.分布式同步.组服务等. Zookeeper的Fast Fail 和 Leader选举特性大大增强了分布式集群的稳定和健壮性,并且解决了Master/Slave模式的单点故障重大隐患,这是越来越多的分布式产品如HBase.Storm(流计算).S4(流计算)等强依赖Zookeeper的原因. Zookeeper从入门到精通(开发详解,案