某敏捷软件开发解读课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《某敏捷软件开发解读课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 敏捷 软件 开发 解读 课件
- 资源描述:
-
1、华为敏捷软件开发解读华为敏捷软件开发解读PSSTPSST质量与成本管理部质量与成本管理部/系统工程部系统工程部2009年06月 N.001N.001Page 2关于管理者和软件开发相关人员掌握敏捷知识的要求 为落实敏捷软件开发在我司的顺利推行,使广大软件开发管理者和开发人员深刻领会敏捷核心理念,熟练掌握敏捷实践方法,从而达到增强应对需求变化的能力、提高产品质量、提升开发效率和缩短交付周期等方面的目标。为此,特提出如下要求:1.PM及以上管理者要深刻领会敏捷核心理念、理解我司敏捷推行策略、了解各种敏捷实践。2.软件开发相关人员(含PL、软件开发人员、软件测试人员、软件架构人员、系统分析人员、与软
2、件相关的资料人员和研发质量人员)要深刻理解敏捷理念、掌握敏捷实践、了解我司敏捷推行策略。通过敏捷相关知识的考试是软件开发相关人员任职资格的基本要求。3.考试试题分为管理者版本和员工版本,分别针对管理者和员工应知应会的知识进行考试。4.敏捷学习参考材料包括:华为敏捷开发解读及相关附件。目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷n我司敏捷开发实施策略我司敏捷开发实施策略n我司敏捷案例我司敏捷案例Page 4业界敏捷浪潮lISO 9000(09版)标准将在原来八大原则的基础上新增敏捷原则敏捷原则l2000年美国军方软件开发标准(DOD 5000.2)推荐迭代迭代为软件开发优选模式为软件开发优选
3、模式l世界影响最大的美国波多里奇国家质量奖将敏捷敏捷作为核心的十一大原则之一核心的十一大原则之一Page 5软件作坊软件作坊软件过程控制软件过程控制重型过程重型过程2001今 敏捷正在流行敏捷正在流行 软件规模小,以作坊式开发为主;硬件飞速发展,软件规模和复杂度激增,引发软件危机;引入成熟生产制造管理方法,以“过程为中心”分阶段来控制软件开发(瀑布模型),一定程度上缓解了软件危机;软件失败的经验促使过程被不断增加约束和限制,软件开发过程日益“重型化”,开发效率降低、响应速度变慢;随着信息时代到来,需求变化更快,交付周期成为企业核心竞争力,轻量级的,更能适应变化的敏捷软件开发方法被普遍认可并迅速
4、流行。软件危机软件危机20世纪60年代80年代90年代软件开发顺应时代变化,从重型过程转向轻量型敏捷软件开发顺应时代变化,从重型过程转向轻量型敏捷70年代敏捷诞生的历史背景Page 6敏捷宣言揭示更好的软件开发方法l敏捷宣言(敏捷宣言(20012001年)是敏捷起源的基础,由上述年)是敏捷起源的基础,由上述4 4个简单的价值观组成,敏捷宣言的签署推动了敏捷运动个简单的价值观组成,敏捷宣言的签署推动了敏捷运动l敏捷宣言本质是揭示一种更好的软件开发方式,启迪人们重新思考软件开发中的价值和如何更好的工作敏捷宣言本质是揭示一种更好的软件开发方式,启迪人们重新思考软件开发中的价值和如何更好的工作敏捷宣言
5、敏捷宣言Page 7l软件更像一个活着的植物,软件开发是自底向上逐步有序的生长过程,类似于植物自然生长软件更像一个活着的植物,软件开发是自底向上逐步有序的生长过程,类似于植物自然生长l敏捷开发遵循软件客观规律,不断的进行迭代增量开发,最终交付符合客户价值的产品敏捷开发遵循软件客观规律,不断的进行迭代增量开发,最终交付符合客户价值的产品传统开发传统开发敏捷开发敏捷开发敏捷更符合软件开发规律Page 8敏捷对生产率、质量、满意度、成本有明显改进82%的项目生产率有提高的项目生产率有提高78%的项目质量有提高的项目质量有提高78%的项目客户满意度有提高的项目客户满意度有提高37%的项目成本有降低的项
6、目成本有降低*以上数据来自DDJ 2008由Scott Ambler发起的网上调查结果目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷p统一敏捷认识统一敏捷认识p敏捷理念解读p敏捷实践解读n我司敏捷开发实施策略我司敏捷开发实施策略n我司敏捷案例我司敏捷案例Page 10对敏捷的常见误解误解一:误解一:敏捷开发意味着可以不需要文档、设计和计划敏捷开发意味着可以不需要文档、设计和计划误解二:误解二:敏捷只是一些优秀实践,或者是优秀实践的结合敏捷只是一些优秀实践,或者是优秀实践的结合误解三:误解三:敏捷只适用于小项目开发敏捷只适用于小项目开发误解四:误解四:敏捷只会对研发产生改变敏捷只会对研发产生改
7、变误解五:误解五:管理者不需要亲自了解敏捷,只需要管理上支持就可以了管理者不需要亲自了解敏捷,只需要管理上支持就可以了误解六:误解六:引入敏捷只需要按照既定的步骤去做就可以了引入敏捷只需要按照既定的步骤去做就可以了误解七:误解七:敏捷是敏捷是CMM的替代品,是另一种流程的替代品,是另一种流程误解八:误解八:敏捷只注重特性的快速交付,在敏捷下架构不重要了敏捷只注重特性的快速交付,在敏捷下架构不重要了Page 11统一认识:敏捷=理念+优秀实践+具体应用理念理念优秀实践优秀实践具体应用具体应用 理念(敏捷核心思想)敏捷包括3 3个层次 优秀实践(敏捷的经验积累)具体应用(能够结合自身灵活应用才是真
8、正敏捷)Page 12理念:聚焦客户价值(Value)(Value),消除浪费软件业:软件业:45%的软件特性客户没有使用的软件特性客户没有使用Source:Standish Group 来自5万个软件开发项目的调查Source:中国电信总工韦乐平在华为公司工程与技术大会上的讲话Source:如何提升软件开发效率08年统计电信业:电信业:“电信级电信级”带来的浪费带来的浪费“价值价值”在在“敏捷宣言敏捷宣言”中的体现中的体现产品商业成功为目标,聚焦客户价值、围绕价值流消除浪费产品商业成功为目标,聚焦客户价值、围绕价值流消除浪费我司:研发版本废弃特性我司:研发版本废弃特性l07.1-08.6年某
9、产品线所有产品中重要特性无应用的比例达22%(需求变更和分析不足占63%)个体和交互个体和交互胜过胜过过程和工具过程和工具可以工作的可以工作的软件软件胜过胜过面面俱到的文面面俱到的文档档客户合作客户合作胜过胜过合同谈判合同谈判响应变化响应变化胜过胜过遵循计划遵循计划Page 13理念:激发团队(Team)(Team)潜能,加强协作我司试点开发测试拉通,效率质量改善明显我司试点开发测试拉通,效率质量改善明显l团队是价值的真正创造者,应加强团队协作、激发团队潜能团队是价值的真正创造者,应加强团队协作、激发团队潜能l软件开发是一种团队活动,首先应做到提升沟通效率降低交流成本软件开发是一种团队活动,首
10、先应做到提升沟通效率降低交流成本Source:08年测试行业超过30个项目试点Source:经济学家2003&DeMarco 研究报告“团队团队”在在“敏捷宣言敏捷宣言”中的体现中的体现个体和交互个体和交互胜过胜过过程和工具过程和工具可以工作的可以工作的软件软件胜过胜过面面俱到的文面面俱到的文档档客户合作客户合作胜过胜过合同谈判合同谈判响应变化响应变化胜过胜过遵循计划遵循计划效率流行度文档录制的视频录制的音频2人邮件沟通2人白板沟通2人电话沟通不支持问答形式支持问答形式研究表明面对面的沟通最有效研究表明面对面的沟通最有效 业界调查:一个50人开发团队,每人平均30%时间用于编码,70%的时间用
11、于与其他成员交流。研究表明1981年来自不同公司的优秀程序员生产率之比是7:1,而2007年最新的研究数据,则是40:1。人是软件开发的决定因素人是软件开发的决定因素需求变更降低比例补充场景数TR4前发现缺陷比例版本周期缩短(周数)无线49.36%8855.90%2.82核心网45%19045.18%3.5网络31%33042.5%2.6业软30%30048.15%2.1公司平均38.84%90847.93%2.76Page 14理念:不断调整以适应(Adapting)变化麦当劳是简单可预测生产过程麦当劳是简单可预测生产过程l人月神话:软件开发是人类最复杂工作之一,软件具有四个属性:复杂性、一
12、致性、可变性和不可见性。l软件开发是不可重复、探索性的、演进的,适应性过程。随软件规模增长,需求变化呈非线性增长随软件规模增长,需求变化呈非线性增长软件开发是复杂不可预测的经验控制过程软件开发是复杂不可预测的经验控制过程“适应变化适应变化”在在“敏捷宣言敏捷宣言”中的体现中的体现不断的根据经验调整,最终交付达到业务目标的产品不断的根据经验调整,最终交付达到业务目标的产品软件开发规律再审视软件开发规律再审视个体和交互个体和交互胜过胜过过程和工具过程和工具可以工作的可以工作的软件软件胜过胜过面面俱到的文面面俱到的文档档客户合作客户合作胜过胜过合同谈判合同谈判响应变化响应变化胜过胜过遵循计划遵循计划
13、Page 15优秀实践:业界敏捷优秀实践概览结对编程测试驱动开发客户参与验收计划游戏代码集体所有每日站立会议产品backlog(带优先级的需求清单)燃烧图迭代计划会议回顾会议Scrum MasterProduct OwnerAnatomy(系统解剖)One TrackSystemakut(缺陷管理和决策)重构完整团队稳定开发节奏Lagomising(需求决策)隐喻电信业偏重大规模产品实践、电信业偏重大规模产品实践、Scrum偏重项目管理,偏重项目管理,XP偏重编程实践偏重编程实践电信业电信业ScrumXP持续集成持续集成迭代交付迭代交付Page 16开发团队一具体应用:因地制宜选择适合的敏捷实
14、践团队在透彻理解敏捷理念的基础上,可以灵活选择最适合自己的实践,避免教条化团队在透彻理解敏捷理念的基础上,可以灵活选择最适合自己的实践,避免教条化站立会议排序的工作列表持续集成持续集成重构持续集成结对编程迭代开发+迭代开发+开发团队三敏捷理念敏捷理念开发团队二敏捷理念敏捷理念敏捷理念敏捷理念Page 17敏捷转型是系统性工程敏捷转型敏捷转型7个方面优先级个方面优先级Source:Cutter Agile Transformation(Jim Highsmith大师)l敏捷转型是系统工程,覆盖敏捷转型是系统工程,覆盖7 7个方面:实践、绩效考核、组织、过程、文化、管控、技术和业务对齐个方面:实践
15、、绩效考核、组织、过程、文化、管控、技术和业务对齐l敏捷在敏捷转型不同阶段,敏捷转型框架的敏捷在敏捷转型不同阶段,敏捷转型框架的7 7个方面引入的优先级不一样,初期以实践为主个方面引入的优先级不一样,初期以实践为主Wave3(企业级)企业级)Wave2(产品级产品级)Wave1(项目级项目级)2121334Stage522Alignment1112Culture13Governance22Performance212Process1122Organization3211PracticesStage4Stage3Stage2Stage1Numbers represent typical rela
16、tive importance at each stage.实践实践绩效绩效组织组织过程过程文化文化管控管控技术和技术和业务对齐业务对齐敏捷转型敏捷转型框架框架目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷p统一认识敏捷p敏捷理念解读敏捷理念解读p敏捷实践解读n我司敏捷开发实施策略我司敏捷开发实施策略n我司敏捷案例我司敏捷案例Page 19深入理解敏捷理念l 深入理解深入理解“适应变化适应变化”p认请“客户是逐步发现真正需求”p小批量是快速交付的关键p通过迭代计划不断调整以适应需求变化p应持续保持良好的软件架构p利用多层次反馈不断调整以逼近目标l 深入理解深入理解“激发团队激发团队”p认清团
17、队的基本事实p敏捷方式下管理者的转变p敏捷方式下团队成员的转变l 深入理解深入理解“聚焦客户价值聚焦客户价值”p标识和消除软件开发中的浪费p交付刚刚好的系统p随时构建质量,不容忍缺陷p及时消除技术债务,持续保持快速响应Page 20浪费类别浪费类别浪费举例浪费举例1部分完成的工作部分完成的工作部分完成但没有最终落地的工作(没有转化成代码的设计文档;未及时合入的代码导致引发后续更多同步工作量)。2未应用特性未应用特性开发完成但没有被客户应用的特性(交换机2000多个功能客户只用了1%)。3再次学习再次学习人员频繁流动导致经验不能积累,反复重新学习;在多个环节移交时,接收信息者也需要重新学习;拥有
18、某领域的专家,但在开发过程中需要此领域经验时,他却没参与,而是团队重新摸索。4移交移交知识信息的传递总是伴随信息丢失,隐形知识尤其困难,分工过细往往导致过多不必要的移交(如详细设计和实现分离,造成大量设计信息丢失)。5任务切换任务切换研究表明多任务工作会导致效率下降20%-40%(员工多头工作或杂事繁多)。6延迟延迟因任务或资源相互依赖而导致工作停滞(集成时被关键模块阻塞,等待测试环境就绪)。7缺陷缺陷解决缺陷活动本身就是浪费,而且缺陷越遗留到后端浪费越大。聚焦客户价值,标识和消除软件开发中的浪费Source:精益软件开发Page 21l当质量、进度、资源冲突时,能改变的只有项目范围,即选择当
19、质量、进度、资源冲突时,能改变的只有项目范围,即选择“交付刚刚好的系统交付刚刚好的系统”p产品交付前,客户往往期望多而全的功能,产品交付后,客户把稳定的质量放在首位,尤其在电信领域,客户对产品质量要求是Always work,不是Sometimes。p与其为了满足多而全的功能导致交付延迟,质量不稳定,不如按时交付刚刚好的系统,保证其高质量运行。p交付刚刚好的系统,基于对客户需求的深入理解,并花时间了解细节,简化(simplify)需求(降低复杂性)而不是简单地拒绝需求(delete)。p做到“交付刚刚好的系统”,同时需要管理者有足够的勇气和果断决策聚焦客户价值,交付刚刚好的系统l在项目明显超负
20、荷时,管理者简单地期望靠团队在项目明显超负荷时,管理者简单地期望靠团队work harder来解决,最终导致来解决,最终导致:p质量下降p项目延期p客户不满意p团队疲劳p埋下长期隐患Page 22l缺陷遗留带来高额成本:缺陷遗留带来高额成本:p对单独质量保证活动(如后端测试)的依赖,容易形成缺陷可以遗留到下个阶段的心理,导致缺陷发现成本升高(系统测试阶段缺陷定位和解决成本是开发阶段的10倍)例1:E公司开发阶段和测试阶段发现缺陷的比例为7:3,而我司大量缺陷集中在后端发现,带来高额成本。例2:我司顾问指出:华为测试和开发“相隔1000英里”。聚焦客户价值,随时构建质量,不容忍缺陷l 从项目一开
21、始就随时构建质量:从项目一开始就随时构建质量:p形成零缺陷文化,不要容忍缺陷:发现缺陷应立即停下来解决,以保证在坚实的质量基础上前行。p开发和测试紧密协作:测试人员参与到设计和开发过程中,共同预防缺陷的产生。例如:持续集成暴露的问题需立即解决Page 23聚焦客户价值,及时消除技术债务,持续保持快速响应技术商务l为什么会有技术债务:为什么会有技术债务:p为满足短期商业目标,不影响其外部表现的情况下,会在技术方面进行一定的让步,这种让步虽对当前版本的质量影响甚微,但会严重影响后续版本响应客户需求的能力,从而形成技术债务。时间技术债务开发速率l对待技术债务的态度:对待技术债务的态度:p技术债务是有
22、成本的,如不及时偿还,会随时间积累利息变高,导致开发效率大幅下降,从而降低客户响应能力。因此对待技术债务的态度是加以管理并及时偿还(如及时重构)。l常见技术债务常见技术债务:p日益腐烂的架构、圈复杂度高的代码、低的测试自动化率、不及时清除的静态检查告警等。Page 24激发团队,认清团队的基本事实Source:Jeff CSM Training material信任是高绩效团队的基石信任是高绩效团队的基石信任信任承诺承诺冲突冲突创新创新l关于团队激励:关于团队激励:p当团队自管理时效率最高p人们对自己做出的承诺比别人要求的承诺更认真p人们会尽力做到最好p在强大的压力下努力工作,人们会自然而然地
23、降 低对质量的要求l关于团队绩效:关于团队绩效:p当团队成员不被打扰时,工作效率最高p当团队解决自我问题时,提升最快p广泛的、面对面的交流是团队工作最高效的方式l关于团队构建:关于团队构建:p团队生产率大于相同数目的个体生产率之和p当不同技能领域的人员组成团队并聚焦于工作 时,产品更健壮Page 25激发团队,敏捷方式下管理者的转变管理者努力“控制”团队:l制定详细的工作计划,并做出详细的工作安排l指令性工作方式l监控过程l基于复杂规则的管理管理者努力“激发”团队:l通过目标来牵引团队自主工作l帮助团队提供资源,排除障碍l营造团队自我管理的工作氛围l作为教练辅导团队进步l基于简单原则的管理,原
24、则简单但必须被遵守敏捷方式下对管理者最大的挑战是学会放松敏捷方式下对管理者最大的挑战是学会放松”控制控制”(loose control)传统方式敏捷方式Page 26激发团队,敏捷方式下团队成员的转变团队成员是“听从安排的独立贡献听从安排的独立贡献者者”:l被动等待主管下指令安排工作l独立工作为主,协作少l以文档和邮件为主要沟通方式l只关注个体任务“做完”,不关注团队目标l能力相对单一,学习动力不足敏捷方式的管理者从被动到主动的心态转变是团队成员适应敏捷开发的关键从被动到主动的心态转变是团队成员适应敏捷开发的关键团队成员是“全方位的积极参与者全方位的积极参与者”:l共同参与计划制定和任务安排l
25、团队协作贯穿工作始终l面对面交流是主要沟通方式l关注团队目标,共担责任l能力要求更广,主动学习适应岗位要求传统方式敏捷方式Page 27残酷现实残酷现实n客户是逐步发现他真正要的东西n开发人员逐步发现如何开发产品满足客户需求n在这个过程中随时可能发生变化美好愿望美好愿望n客户知道自己要的是什么n开发人员知道如何开发来满足客户需求n在开发过程中需求不会发生变化l期望客户一开始就想清楚他们真正期望客户一开始就想清楚他们真正要的东西是不现实的。要的东西是不现实的。l我们应当通过不断的向客户交付可我们应当通过不断的向客户交付可用的产品,启发客户逐步的发现真用的产品,启发客户逐步的发现真正的需求。正的需
展开阅读全文