好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

敏捷开发介绍.ppt

81页
  • 卖家[上传人]:cn****1
  • 文档编号:589062002
  • 上传时间:2024-09-09
  • 文档格式:PPT
  • 文档大小:7.20MB
  • / 81 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Security Level: Internal Public 英文标题:40-47pt 副标题:26-30pt字体颜色:反白内部使用字体 :FrutigerNext LT Medium外部使用字体 : Arial中文标题:35-47pt字体:黑体 副标题:24-28pt字体颜色:反白字体:细黑体PSSTPSST质量与成本管理部质量与成本管理部/ /系统工程部系统工程部华为敏捷软件开发解读华为敏捷软件开发解读2009年06月 N.001N.001 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 关于管理者和软件开发相关人员掌握敏捷知识的要求 为落实敏捷软件开发在我司的顺利推行,使广大软件开发管理者和开发人员深刻领会敏捷核心理念,熟练掌握敏捷实践方法,从而达到增强应对需求变化的能力、提高产品质量、提升开发效率和缩短交付周期等方面的目标为此,特提出如下要求:1.PM及以上管理者要深刻领会敏捷核心理念、理解我司敏捷推行策略、了解各种敏捷实践。

      2.软件开发相关人员(含PL、软件开发人员、软件测试人员、软件架构人员、系统分析人员、与软件相关的资料人员和研发质量人员)要深刻理解敏捷理念、掌握敏捷实践、了解我司敏捷推行策略通过敏捷相关知识的考试是软件开发相关人员任职资格的基本要求3.考试试题分为管理者版本和员工版本,分别针对管理者和员工应知应会的知识进行考试4.敏捷学习参考材料包括:《华为敏捷开发解读》及相关附件Page 2 目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷n我司敏捷开我司敏捷开发实施策略施策略n我司敏捷案例我司敏捷案例 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 业界敏捷浪潮lISO 9000(09版)标准将在原来八大原则的基础上新增敏捷原则敏捷原则l2000年美国军方软件开发标准(DOD 5000.2)推荐迭代迭代为软件开发优选模式为软件开发优选模式l世界影响最大的美国波多里奇国家质量奖将敏捷敏捷作为核心的十一大原则之一核心的十一大原则之一Page 4 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 软件作坊软件作坊软件过程控制软件过程控制重型过程重型过程2001~2001~今今 敏捷正在流行敏捷正在流行敏捷正在流行敏捷正在流行 软件规模小,以作坊式开发为主;硬件飞速发展,软件规模和复杂度激增,引发软件危机;引入成熟生产制造管理方法,以“过程为中心”分阶段来控制软件开发(瀑布模型),一定程度上缓解了软件危机;软件失败的经验促使过程被不断增加约束和限制,软件开发过程日益“重型化”,开发效率降低、响应速度变慢;随着信息时代到来,需求变化更快,交付周期成为企业核心竞争力,轻量级的,更能适应变化的敏捷软件开发方法被普遍认可并迅速流行。

      软件危机软件危机20世纪60年代80年代90年代软件开发顺应时代变化,从重型过程转向轻量型敏捷软件开发顺应时代变化,从重型过程转向轻量型敏捷70年代敏捷诞生的历史背景Page 5 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷宣言揭示更好的软件开发方法l敏捷宣言(敏捷宣言( 20012001年)是敏捷起源的基础,由上述年)是敏捷起源的基础,由上述4 4个简单的价值观组成,敏捷宣言的签署推动了敏捷运动个简单的价值观组成,敏捷宣言的签署推动了敏捷运动l敏捷宣言本质是揭示一种更好的软件开发方式,启迪人们重新思考软件开发中的价值和如何更好的工作敏捷宣言本质是揭示一种更好的软件开发方式,启迪人们重新思考软件开发中的价值和如何更好的工作敏捷宣言敏捷宣言Page 6 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential l软件更像一个活着的植物,件更像一个活着的植物,软件开件开发是自底向上逐步有序的生是自底向上逐步有序的生长过程,程,类似于植物自然生似于植物自然生长l敏捷开敏捷开发遵循遵循软件客件客观规律,不断的律,不断的进行迭代增量开行迭代增量开发,最,最终交付符合客交付符合客户价价值的的产品品传统开发传统开发敏捷开发敏捷开发敏捷更符合软件开发规律Page 7 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷对生产率、质量、满意度、成本有明显改进82%的项目生产率有提高的项目生产率有提高78%的项目质量有提高的项目质量有提高78%的项目客户满意度有提高的项目客户满意度有提高37%的项目成本有降低的项目成本有降低* 以上数据来自DDJ 2008由Scott Ambler发起的网上调查结果Page 8 目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷p统一敏捷认识统一敏捷认识p敏捷理念解读p敏捷实践解读n我司敏捷开发实施策略我司敏捷开发实施策略n我司敏捷案例我司敏捷案例 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 对敏捷的常见误解误解一:误解一: 敏捷开发意味着可以不需要文档、设计和计划敏捷开发意味着可以不需要文档、设计和计划误解二:误解二: 敏捷只是一些优秀实践,或者是优秀实践的结合敏捷只是一些优秀实践,或者是优秀实践的结合误解三:误解三: 敏捷只适用于小项目开发敏捷只适用于小项目开发误解四:误解四: 敏捷只会对研发产生改变敏捷只会对研发产生改变误解五:误解五: 管理者不需要亲自了解敏捷,只需要管理上支持就可以了管理者不需要亲自了解敏捷,只需要管理上支持就可以了误解六:误解六: 引入敏捷只需要按照既定的步骤去做就可以了引入敏捷只需要按照既定的步骤去做就可以了误解七:误解七: 敏捷是敏捷是CMM的替代品,是另一种流程的替代品,是另一种流程误解八:误解八: 敏捷只注重特性的快速交付,在敏捷下架构不重要了敏捷只注重特性的快速交付,在敏捷下架构不重要了Page 10 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 统一认识:敏捷=理念+优秀实践+具体应用理念理念优秀实践优秀实践具体应用具体应用 理念(敏捷核心思想)敏捷包括3 3个层次 优秀实践(敏捷的经验积累) 具体应用(能够结合自身灵活应用才是真正敏捷)Page 11 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 理念:聚焦客户价值(Value),消除浪费软件业:软件业:45%的软件特性客户没有使用的软件特性客户没有使用Source:Standish Group 来自5万个软件开发项目的调查Source:中国电信总工韦乐平在《华为公司工程与技术大会》上的讲话Source:《如何提升软件开发效率》08年统计电信业:电信业:“电信级电信级”带来的浪费带来的浪费“价值价值”在在“敏捷宣言敏捷宣言”中的体现中的体现产品商业成功为目标,聚焦客户价值、围绕价值流消除浪费产品商业成功为目标,聚焦客户价值、围绕价值流消除浪费我司:研发版本废弃特性我司:研发版本废弃特性l07.1-08.6年某产品线所有产品中重要特性无应用的比例达22%(需求变更和分析不足占63%)个体和交互个体和交互胜过胜过过程和工具过程和工具可以工作的可以工作的软件软件胜过胜过面面俱到的文档面面俱到的文档客户合作客户合作胜过胜过合同谈判合同谈判响应变化响应变化胜过胜过遵循计划遵循计划Page 12 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 理念:激发团队(Team)潜能,加强协作我司试点开发测试拉通,效率质量改善明显我司试点开发测试拉通,效率质量改善明显l团队是价是价值的真正的真正创造者,造者,应加加强团队协作、激作、激发团队潜能潜能l软件开件开发是一种是一种团队活活动,首先,首先应做到提升沟通效率降低交流成本做到提升沟通效率降低交流成本Source: 08年测试行业超过30个项目试点Source:《经济学家2003》& DeMarco 研究报告““团队团队””在在““敏捷宣言敏捷宣言””中的体现中的体现个体和交互个体和交互胜过胜过过程和工具过程和工具可以工作的可以工作的软件软件胜过胜过面面俱到的文档面面俱到的文档客户合作客户合作胜过胜过合同谈判合同谈判响应变化响应变化胜过胜过遵循计划遵循计划效率流行度文档录制的视频录制的音频2人邮件沟通2人白板沟通2人沟通不支持问答形式支持问答形式研究表明面对面的沟通最有效研究表明面对面的沟通最有效 业界调查:一个50人开发团队,每人平均30%时间用于编码,70%的时间用于与其他成员交流。

      研究表明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 13 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 理念:不断调整以适应(Adapting)变化麦当劳是简单可预测生产过程麦当劳是简单可预测生产过程l《人月神话》:软件开发是人类最复杂工作之一,软件具有四个属性:复杂性、一致性、可变性和不可见性l软件开发是不可重复、探索性的、演进的,适应性过程随软件规模增长,需求变化呈非线性增长随软件规模增长,需求变化呈非线性增长软件开发是复杂不可预测的经验控制过程软件开发是复杂不可预测的经验控制过程““适应变化适应变化””在在““敏捷宣言敏捷宣言””中的体现中的体现不断的根据经验调整,最终交付达到业务目标的产品不断的根据经验调整,最终交付达到业务目标的产品软件开发规律再审视软件开发规律再审视个体和交互个体和交互胜过胜过过程和工具过程和工具可以工作的可以工作的软件软件胜过胜过面面俱到的文档面面俱到的文档客户合作客户合作胜过胜过合同谈判合同谈判响应变化响应变化胜过胜过遵循计划遵循计划Page 14 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 优秀实践: 业界敏捷优秀实践概览结对编程测试驱动开发客户参与验收计划游戏代码集体所有每日站立会议产品backlog(带优先级的需求清单)燃烧图迭代计划会议回顾会议Scrum MasterProduct OwnerAnatomy(系统解剖)One TrackSystemakut(缺陷管理和决策)重构完整团队稳定开发节奏Lagomising(需求决策)隐喻电信业偏重大规模产品实践、电信业偏重大规模产品实践、Scrum偏重项目管理,偏重项目管理,XP偏重编程实践偏重编程实践电信业电信业ScrumXP持续集成持续集成迭代交付迭代交付Page 15 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 开发团队一具体应用:因地制宜选择适合的敏捷实践团队在透在透彻理解敏捷理念的基理解敏捷理念的基础上,可以灵活上,可以灵活选择最适合自己的最适合自己的实践,避免教条化践,避免教条化站立会议排序的工作列表持续集成持续集成重构持续集成结对编程迭代开发++迭代开发+++++…+…+…开发团队三敏捷理念敏捷理念开发团队二敏捷理念敏捷理念敏捷理念敏捷理念Page 16 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷转型是系统性工程敏捷转型敏捷转型7个方面优先级个方面优先级Source:Cutter Agile Transformation(Jim Highsmith大师)l敏捷转型是系统工程,覆盖敏捷转型是系统工程,覆盖7 7个方面:实践、绩效考核、组织、过程、文化、管控、技术和业务对齐个方面:实践、绩效考核、组织、过程、文化、管控、技术和业务对齐l敏捷在敏捷转型不同阶段,敏捷转型框架的敏捷在敏捷转型不同阶段,敏捷转型框架的7 7个方面引入的优先级不一样,初期以实践为主个方面引入的优先级不一样,初期以实践为主Wave3 (企业级)企业级)Wave2 (产品级产品级)Wave1(项目级项目级)2121334Stage522Alignment1112Culture13Governance22Performance212Process1122Organization3211PracticesStage4Stage3Stage2Stage1Numbers represent typical relative importance at each stage.实践实践实践实践绩效绩效绩效绩效组织组织组织组织过程过程过程过程文化文化文化文化管控管控管控管控技术和技术和技术和技术和业务对齐业务对齐业务对齐业务对齐敏捷转型敏捷转型框架框架Page 17 目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷p统一认识敏捷p敏捷理念解读敏捷理念解读p敏捷实践解读n我司敏捷开发实施策略我司敏捷开发实施策略n我司敏捷案例我司敏捷案例 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 深入理解敏捷理念l 深入理解深入理解“适应变化适应变化”p认请“客户是逐步发现真正需求”p小批量是快速交付的关键p通过迭代计划不断调整以适应需求变化p应持续保持良好的软件架构p利用多层次反馈不断调整以逼近目标l 深入理解深入理解“激发团队激发团队”p认清团队的基本事实p敏捷方式下管理者的转变p敏捷方式下团队成员的转变l 深入理解深入理解“聚焦客户价值聚焦客户价值”p标识和消除软件开发中的浪费p交付刚刚好的系统p随时构建质量,不容忍缺陷p及时消除技术债务,持续保持快速响应Page 19 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 浪费类别浪费类别浪费举例浪费举例1部分完成的工作部分完成的工作部分完成但没有最终落地的工作(没有转化成代码的设计文档;未及时合入的代码导致引发后续更多同步工作量)。

      2未应用特性未应用特性开发完成但没有被客户应用的特性(交换机2000多个功能客户只用了1%)3再次学习再次学习人员频繁流动导致经验不能积累,反复重新学习;在多个环节移交时,接收信息者也需要重新学习;拥有某领域的专家,但在开发过程中需要此领域经验时,他却没参与,而是团队重新摸索4移交移交知识信息的传递总是伴随信息丢失,隐形知识尤其困难,分工过细往往导致过多不必要的移交(如详细设计和实现分离,造成大量设计信息丢失)5任务切换任务切换研究表明多任务工作会导致效率下降20%-40%(员工多头工作或杂事繁多)6延迟延迟因任务或资源相互依赖而导致工作停滞(集成时被关键模块阻塞,等待测试环境就绪)7缺陷缺陷解决缺陷活动本身就是浪费,而且缺陷越遗留到后端浪费越大聚焦客户价值,标识和消除软件开发中的浪费Source:《精益软件开发》Page 20 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential l当当质量、量、进度、度、资源冲突源冲突时,能改,能改变的只有的只有项目范目范围,即,即选择““交付交付刚刚好的系好的系统””p产品交付前,客户往往期望多而全的功能,产品交付后,客户把稳定的质量放在首位,尤其在电信领域,客户对产品质量要求是Always work,不是Sometimes。

      p与其为了满足多而全的功能导致交付延迟,质量不稳定,不如按时交付刚刚好的系统,保证其高质量运行p交付刚刚好的系统,基于对客户需求的深入理解,并花时间了解细节,简化(simplify)需求(降低复杂性)而不是简单地拒绝需求(delete)p做到“交付刚刚好的系统”,同时需要管理者有足够的勇气和果断决策聚焦客户价值,交付刚刚好的系统l在项目明显超负荷时,管理者简单地期望靠团队在项目明显超负荷时,管理者简单地期望靠团队work harder来解决,最终导致来解决,最终导致:p质量下降p项目延期p客户不满意p团队疲劳p埋下长期隐患Page 21 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential l缺陷遗留带来高额成本:缺陷遗留带来高额成本:p对单独质量保证活动(如后端测试)的依赖,容易形成缺陷可以遗留到下个阶段的心理,导致缺陷发现成本升高(系统测试阶段缺陷定位和解决成本是开发阶段的10倍)•例1:E公司开发阶段和测试阶段发现缺陷的比例为7:3,而我司大量缺陷集中在后端发现,带来高额成本•例2:我司顾问指出:华为测试和开发“相隔1000英里”聚焦客户价值,随时构建质量,不容忍缺陷l 从项目一开始就随时构建质量:从项目一开始就随时构建质量:p形成零缺陷文化,不要容忍缺陷:发现缺陷应立即停下来解决,以保证在坚实的质量基础上前行。

      p开发和测试紧密协作:测试人员参与到设计和开发过程中,共同预防缺陷的产生例如:持续集成暴露的问题需立即解决Page 22 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 聚焦客户价值,及时消除技术债务,持续保持快速响应技术商务l为什么会有技术债务:为什么会有技术债务:p为满足短期商业目标,不影响其外部表现的情况下,会在技术方面进行一定的让步,这种让步虽对当前版本的质量影响甚微,但会严重影响后续版本响应客户需求的能力,从而形成技术债务时间技术债务开发速率l对待技术债务的态度:对待技术债务的态度:p技术债务是有成本的,如不及时偿还,会随时间积累利息变高,导致开发效率大幅下降,从而降低客户响应能力因此对待技术债务的态度是加以管理并及时偿还(如及时重构)l常见技术债务常见技术债务:p日益腐烂的架构、圈复杂度高的代码、低的测试自动化率、不及时清除的静态检查告警等Page 23 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 激发团队,认清团队的基本事实Source: Jeff CSM Training material信任是高绩效团队的基石信任是高绩效团队的基石信任信任承诺承诺冲突冲突创新创新l关于团队激励:关于团队激励: p当团队自管理时效率最高p人们对自己做出的承诺比别人要求的承诺更认真p人们会尽力做到最好p在强大的压力下努力工作,人们会自然而然地降 低对质量的要求l关于团队绩效:关于团队绩效: p当团队成员不被打扰时,工作效率最高p当团队解决自我问题时,提升最快p广泛的、面对面的交流是团队工作最高效的方式l关于团队构建:关于团队构建:p团队生产率大于相同数目的个体生产率之和p当不同技能领域的人员组成团队并聚焦于工作 时,产品更健壮Page 24 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 激发团队,敏捷方式下管理者的转变管理者努力“控制” 团队:l制定详细的工作计划,并做出详细的工作安排l指令性工作方式l监控过程l基于复杂规则的管理管理者努力“激发”团队:l通过目标来牵引团队自主工作l帮助团队提供资源,排除障碍l营造团队自我管理的工作氛围l作为教练团队进步l基于简单原则的管理,原则简单但必须被遵守敏捷方式下对管理者最大的挑战是学会放松敏捷方式下对管理者最大的挑战是学会放松”控制控制”(loose control)传统方式敏捷方式Page 25 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 激发团队,敏捷方式下团队成员的转变团队成员是“听从安排的独立贡献者听从安排的独立贡献者”:l被动等待主管下指令安排工作l独立工作为主,协作少l以文档和邮件为主要沟通方式l只关注个体任务“做完”,不关注团队目标l能力相对单一,学习动力不足敏捷方式的管理者从被动到主动的心态转变是团队成员适应敏捷开发的关键从被动到主动的心态转变是团队成员适应敏捷开发的关键团队成员是“全方位的积极参与者全方位的积极参与者”:l共同参与计划制定和任务安排l团队协作贯穿工作始终l面对面交流是主要沟通方式l关注团队目标,共担责任l能力要求更广,主动学习适应岗位要求传统方式敏捷方式Page 26 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 残酷现实残酷现实n客户是逐步发现他真正要的东西n开发人员逐步发现如何开发产品满足客户需求n在这个过程中随时可能发生变化美好愿望美好愿望n客户知道自己要的是什么n开发人员知道如何开发来满足客户需求n在开发过程中需求不会发生变化l期望客期望客户一开始就想清楚他一开始就想清楚他们真正真正要的要的东西是不西是不现实的。

      的l我我们应当通当通过不断的向客不断的向客户交付可交付可用的用的产品,启品,启发客客户逐步的逐步的发现真真正的需求正的需求我们认识到预期需求实际需求价值时间适应变化,认清“客户是逐步发现真正需求”Page 27 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 适应变化,小批量是快速交付的关键l我们首先要做的是通过尽早地、持续地交付有价值的软件来使客户满意l经常性的交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好 ——摘自敏捷软件的十二个原则l在需求响应周期相同的情况下,批量(一次开发的需求量)越小,资源利用率更高l在资源利用率相同的情况下,批量越小,交付周期更短l减小批量不仅带来缩短交付周期,而且还带来提高质量、促进创新、降低管理成本、更高的效率等其他好处,大幅提升商业价值减少批量的好处资源利用率交付周期大批量中批量小批量Source:Craig Larman减小批量减小批量1.减少排队3.缩短交付周期2.加快反馈4.增强质量5.改善创新6.降低管理成本7.更高的效率$$$$排队理论:小批量与缩短交付周期、人员有效产出的关系Page 28 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 适应变化,通过迭代计划不断调整以适应需求变化正确做计划方法正确做计划方法在每一轮迭代开始,只详细确定本次迭代的工作内容,并严格执行,对后续较远的迭代内容只做粗略的计划,避免浪费。

      项目范围常发生变化项目范围常发生变化l需求出现了增加、删除、优先级调整(如图E、O、P、J)l工作量在需求细化后发现离原始工作量估计有偏差,引发计划调整;(如图中I)l客户使用了产品后,发现有些需求已不再需要(如图中D、G)l变化无法一次性预测,一开始制作大而全的计划易造成浪费变化无法一次性预测,一开始制作大而全的计划易造成浪费l应根据迭代积累的经验和需求变化的情况对计划不断调整和细化应根据迭代积累的经验和需求变化的情况对计划不断调整和细化Page 29 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 适应变化,应持续保持良好的软件架构l良好良好软件架构是适件架构是适应变化的基石化的基石p电信软件的特点是庞大、复杂、生命周期长,因此需要良好架构来保证长期的演进,避免大规模的返工;p优秀的架构通过可扩展性来很好地适应需求的变化,对敏捷起到支持作用,相反拙劣的架构会阻碍敏捷;p良好架构使系统部件处于松耦合状态,有助于制定出合适的增量开发/集成计划,使分层分级的持续集成更加容易实施l软件架构需要尽早件架构需要尽早验证和持和持续维护p新产品开发通过早期迭代来实现和验证架构,有利于架构的尽早稳定;p增量开发需识别影响架构的需求,优先实现,规避架构风险;p通过重构及时维护和优化架构(偿还技术债务),使架构保持生命力。

      Page 30 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 适应变化,利用多层次反馈不断调整以逼近目标结对编程单元测试持续集成站立会议/回顾会议客户验收对代码质量的反馈 对单元功能的反馈 对团队运作的反馈对系统功能的反馈 对客户需求的反馈l利用多层次反馈手段,在变化的环境中让团队准确地了解与目标的差距,不断调整利用多层次反馈手段,在变化的环境中让团队准确地了解与目标的差距,不断调整自身行为,并逐步逼近靶心自身行为,并逐步逼近靶心多层次反馈手段多层次反馈手段Page 31 目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷p统一认识敏捷p敏捷理念解读p敏捷实践解读敏捷实践解读n我司敏捷开发实施策略我司敏捷开发实施策略n我司敏捷案例我司敏捷案例 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷实践概览技术实践技术实践n迭代计划会议n每日站立会议n可视化管理n迭代验收n迭代回顾会议 管理实践管理实践n产品Backlog(需求清单)n迭代Backlogn完成标准n敏捷团队角色nProduct Owner(PO)nScrum MasternTeamn完整团队实践团队团队n用户故事n结对编程nTDD(测试驱动开发)n持续集成nAnatomy系统解剖工作件工作件敏捷软件开发是以短周期迭代为核心,包含团队、工作件、管理和技术优秀实践的集合敏捷软件开发是以短周期迭代为核心,包含团队、工作件、管理和技术优秀实践的集合迭代开发迭代开发Page 33 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷软件开发典型场景①PO和开发团队对产品业务目标形成共识②PO建立和维护产品需求列表(需求会不断新增和改变),并进行优先级排序③PO每轮迭代前,Review需求列表,并筛选高优先级需求进入本轮迭代开发④开发团队细化本轮迭代需求,并按照需求的优先级,依次在本轮迭代完成⑤开发团队每日站立会议、特性开发、持续集成,使开发进度真正透明⑥PO对每轮迭代(2-4周)交付的可工作软件进行现场验收和反馈⑦回到第3步,开始下一轮迭代迭代每日工作站立会议特性开发特性测试持续集成交付可以工作的软件迭代计划回顾确定一个迭代的工作内容产品和利益相关人①①②②③③、、⑦⑦④④⑤⑤⑥⑥Page 34 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 什么是迭代式开发什么是迭代式开发l迭代开发将整个软件生命周期分成多个小的迭代(一般2-4周),每一次迭代都由需求分析、设计、实现和测试在内的多个活动组成,每一次迭代都可以生成一个稳定和被验证过的软件版本。

      迭代式开发的好处迭代式开发的好处l通过将高技术风险的需求在早期迭代里实现,有助于尽早暴露问题和及时消除风险l通过提供功能渐增的产品,持续从客户获得反馈,根据反馈及时调整,使最终产品更加符合客户的需要l通过小批量减少排队,提供更灵活、快速的交付能力l平滑人力资源的使用,避免出现瓶颈迭代式开发的关键要点迭代式开发的关键要点l每一次迭代都建立在稳定的质量基础上,并做为下一轮迭代的基线,整个系统的功能随着迭代稳定地增长和不断完善l每次迭代要邀请用户代表(外部或内部)验收,提供需求是否满足的反馈l迭代推荐采用固定的周期(2-4周),迭代内工作不能完成,应当缩减交付范围而不是延长周期敏捷软件开发核心——迭代开发迭代1迭代2迭代3反馈反馈迭代开发是有节奏地小步快跑,但建立在坚实的质量基础上迭代开发是有节奏地小步快跑,但建立在坚实的质量基础上Page 35 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷敏捷团队团队包括包括3 3个核心角色个核心角色: : PO(Product Owner)、、Scrum Master(Scrum教练教练)和和Team(开发产品开发产品) )敏捷团队的三个核心角色Marketing用户用服管理..etc…利益相关人利益相关人SMSMSMSM:Scrum MasterPO:Product OwnerPage 36 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷团队的角色职责角色名称角色名称角色定义角色定义角色职责角色职责注意事项注意事项Product Owner(产品(产品负责人)负责人)确保Team做正确的事l代表利益相关人(如用户、Marketing、用服、管理者等),对产品投资回报负责l确定产品发布计划l定义产品需求并确定优先级l验收迭代结果,并根据验收结果和需求变化刷新需求清单和优先级l除了客户需求之外,内部任务如重构、持续集成环境搭建等也由PO纳入统一管理Scrum Master((Scrum教练)教练)确保Team正确地做事l团队正确应用敏捷实践l引导团队建立并遵守规则l保护团队不受打扰l推动解决团队遇到的障碍l激励团队l不命令和控制TeamTeam(开发团(开发团队)队)负责产品需求实现l负责估计工作量并根据自身能力找出最佳方案去完成任务且保证交付质量l向PO和利益相关人演示工作成果(可运行的软件)l团队自我管理、持续改进l一般由5-9名跨功能领域人员组成l坐在一起工作l有共同的目标,共担责任l团队成员严格遵守团队规则Page 37 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 什么是完整团队什么是完整团队l敏捷开发中,以Story为单位的持续交付要求系统组、开发和测试等跨功能团队进行密切协同,相互独立的功能团队难以应对。

      l完整团队是跨功能领域(需求分析师、设计师、开发人员、测试人员、资料人员等)的人员组成一个团队,坐在一起工作,团队成员遵循同一份计划,服从于同一个项目经理完整团队的好处完整团队的好处l有助于团队成员形成共同目标和全局意识,促进各功能领域的拉通和融合;l通过面对面沟通提升沟通效率l实现团队成员的高度协同,支撑高密度地、持续地、短周期的交付完整团队的关键要点完整团队的关键要点l成员来自多功能领域:团队拥有完成目标所需的各职能成员;l坐在一起办公:团队成员无障碍地沟通;l团队保持相对稳定:临时组建的团队生产效率较低,团队稳定非常关键完整团队聚焦客户需求交付,提高协作效率完整团队聚焦客户需求交付,提高协作效率敏捷团队实践:完整团队Page 38 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 产品产品Backlog关键要点关键要点l清楚表述列表中每个需求任务对用户带来的价值,做为优先级排序的重要参考;l动态的需求管理而非“冻结”方式,PO持续地管理和及时刷新需求清单,在每轮迭代前,都要重新筛选出高优先级需求进入本轮迭代;l迭代的需求分析过程,而非一次性分析清楚所有需求(只对近期迭代要做的需求进行详细分析,其它需求停留在粗粒度)。

      敏捷工作件:产品Backlog什么是产品什么是产品Backlogl经过优先级排序的动态刷新的产品需求清单,用来制定发布计划和迭代计划产品产品Backlog的好处的好处l通过需求的动态管理应对变化,避免浪费;l易于优先交付对用户价值高的需求产品产品Backlog是需求动态管理的载体是需求动态管理的载体Page 39 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 什么是迭代什么是迭代Backlogl迭代Backlog是团队在一轮迭代中的“任务任务””(Task)清单,是团队的详细迭代开发计划;l当团队接收从产品Backlog挑选出要在本轮迭代实现的需求时,召开团队迭代计划会议,将需求转化为具体的“任务”;l每项任务信息包括当前剩余工作量和责任人敏捷工作件:迭代Backlog迭代迭代Backlog的好处的好处l将需求分解成更细小的任务,利于对迭代内进度进行精确控制;l剩余工作量可用来实时跟踪团队当前进展迭代迭代Backlog关键要点关键要点l““任务任务””由团队成员自己分解和定义,而不是上级指派,支撑需求完成的所有工作都可以列为任务;l任务要落实到具体的责任人;l任务粒度要小,工作量大于两天的任务要进一步分解;l用小时做为任务剩余工作量的估计单位,并每日重估计和刷新。

      迭代迭代Backlog提供精细的迭代开发计划提供精细的迭代开发计划任务责任人状态剩余工时日期Page 40 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷工作件:完成标准(Definition of Done)什么是完成标准什么是完成标准l基于“随时可向用户发布”的目标制定衡量团队工作是否已完成的标准,由团队和PO形成共识;完成标准的好处完成标准的好处l共同协商的完成标准是团队的自我承诺,团队会更认真;l用于准确评估团队工作进展;l清晰和明确的完成标准保证了每次迭代是高质量的完成标准的关键要点完成标准的关键要点l团队自协商:团队根据项目实际情况来定义完成标准,并严格遵守;l有层次:一般分为三个层次:Story级别,迭代级和发布级,每个级别都有各自的完成标准Story完成标准样例迭代完成标准样例发布完成标准样例代码合入主干代码符合规范代码100%检视通过验收测试通过迭代验收系统测试用例100%通过通过性能测试所有Story完成通过回归测试所有缺陷解决更新配套资料完成标准的样例代码100%通过单元测试持续集成无错误完成标准确保团队每一步完成标准确保团队每一步前进前进都奠定在坚实的质量基础之上都奠定在坚实的质量基础之上Page 41 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷管理实践:迭代计划会议什么是迭代计划会议什么是迭代计划会议l每轮迭代启动前,团队共同讨论本轮迭代详细开发计划的过程,输入是产品Backlog,输出是团队迭代Backlog;l多团队迭代计划会议要分层召开p版本迭代计划会议:将产品Backlog(需求)分配给团队;p团队迭代计划会议:将选取的产品Backlog需求转换成迭代Backlog(任务) ,分配给团队成员;l迭代计划会议内容:p澄清需求、对“完成标准”达成一致p工作量估计、根据团队能力确定本轮迭代交付内容;p细化、分配迭代任务和初始工作计划。

      迭代计划会议的好处迭代计划会议的好处l通过充分讨论,使团队成员对任务和完成标准理解一致;l团队共同参与,促进团队成员更认真对待自己的承偌迭代计划会议的关键要点迭代计划会议的关键要点l充分参与:Scrum Master确保PO和Team充分参与讨论,达成理解一致;l相互承诺:Team承诺完成迭代Backlog中的需求并达到”完成标准“,PO承诺在短迭代周期不增加需求(2-4周);l确定内部任务:Team和PO协商把一些内部任务放入迭代中(例如重构、持续集成环境搭建等),由PO考虑并与其他外部需求一起排序 迭代计划会议由团队共同确定迭代交付内容和完成标准迭代计划会议由团队共同确定迭代交付内容和完成标准Page 42 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷管理实践:每日站立会议什么是每日站立会议什么是每日站立会议l每日工作前,团队成员的例行沟通机制,由Scrum Master组织,Team成员全体站立参加l聚焦在下面的三个主题:p我昨天为本项目做了什么?p我计划今天为本项目做什么?p我需要什么帮助以更高效的工作?每日站立会议的关键要点每日站立会议的关键要点l准时开始:按计划会议制定的时间地点开会,形成团队成员的自然习惯;l高效会议:会议限时15分钟,每个人都保持站立,依次发言,不讨论与会议三个主题无关的事情(如技术解决方案等);l问题跟踪:Scrum Master应该记录下所有的问题并跟踪解决;每日站立会议的好处每日站立会议的好处l增加团队凝聚力,产生积极的工作氛围l及时暴露风险和问题;l促进团队内成员的沟通和协调。

      每日站立会议每日站立会议促进团队沟通协调,及时暴露问题促进团队沟通协调,及时暴露问题Page 43 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷管理实践:可视化管理可视化管理的好处可视化管理的好处l简单,一目了然 ,降低管理成本;l实时状态显示,及时暴露问题;l信息同源使团队理解一致,提升团队凝聚力;l激励先进,鞭策后进,增强团队进取心什么是可视化管理什么是可视化管理l将项目状态 (进度、质量等)通过物理实体(如白板,大屏幕)实时展示,让团队所有成员直观地获取当前项目进展信息可视化管理的关键要点可视化管理的关键要点l物理实体:可视化一定要做到物理上的实体化,大家在公开场所都容易看到,触摸到,(存在电脑中的文件不是可视化的);l内容精简,易懂:信息展示一目了然,切实对团队有帮助,切忌贪多求全,难以分辨;l实时刷新:延迟的信息拖延问题暴露,降低运作效率可视化管理及时暴露问题,激励团队可视化管理及时暴露问题,激励团队Story墙(展示墙(展示Story进度)进度)缺陷走势图(展示缺陷解决进展)缺陷走势图(展示缺陷解决进展)Anatomy视图(展示系统集成进展)视图(展示系统集成进展)Page 44 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷管理实践:迭代验收什么是迭代验收什么是迭代验收l每次迭代开发结束时举行,通过演示可工作的软件检查需求是否满足客户要求;l由Scrum Master组织, PO和用户代表(外部或内部利益相关人)负责验收、Team负责演示可工作软件。

      迭代验收的好处迭代验收的好处l通过演示可工作的软件来确认项目的进度,具有真实性;l能尽早的获得用户对产品的反馈,使产品更加贴近客户需求迭代验收的关键要点迭代验收的关键要点l展示“真实”的产品:Team 应在真实环境中展示可运行的软件,判断是否达到“完成”标准;l收集反馈:PO 根据验收情况及客户反馈意见,及时调整产品Backlog迭代验收尽早演示可工作的软件,收集反馈意见迭代验收尽早演示可工作的软件,收集反馈意见Page 45 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷管理实践:迭代回顾会议迭代回顾会议的好处迭代回顾会议的好处l激励团队成员;l帮助团队挖掘优秀经验并继承;l避免团队犯重复的错误;l营造团队自主改进的氛围什么是迭代回顾会议什么是迭代回顾会议l在每轮迭代结束后举行的会议,目的是分享好的经验和发现改进点,促进团队不断进步;l围绕如下三个问题:l本次迭代有哪些做得好l本次迭代我们在哪些方面还能做得更好l我们在下次迭代准备在哪些方面改进?迭代回顾会议的关键要点迭代回顾会议的关键要点l会议气氛:Team全员参加,气氛宽松自由,畅所欲言,头脑风暴发现问题,共同分析根因;l关注重点:Team共同讨论优先级,将精力放在最需要的地方(关注几个改进就够了);l会议结论要跟踪闭环:可以放入迭代backlog中。

      迭代回顾会议是促进团队持续改进的最有效手段迭代回顾会议是促进团队持续改进的最有效手段好的能做得更好的将来改进的Page 46 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷工程实践:用户故事(user story)什么是用户故事什么是用户故事l用户故事是站在用户角度描述需求的一种方式;l每个用户故事须有对应的验收测试用例;l用户故事是分层分级的,在使用过程中逐步分解细化;l典型的描述句式为:作为一个XXX客户角色,我需要XXX功能,带来XXX好处用户故事的好处用户故事的好处l用户故事站在用户视角便于和客户交流,准确描述客户需求;l用户故事可独立交付单元、规模小,适于迭代开发,以获得用户快速反馈;l用户故事强调编写验收测试用例作为验收标准,能促使需求分析人员准确把握需求,牵引开发人员避免过度设计用户故事的关键要点用户故事的关键要点lI – Independent,可独立交付给客户lN – Negotiable,便于与客户交流lV - Valuable ,对客户有价值lE - Estimable ,能估计出工作量lS - Small ,分解到最底层的用户故事粒度尽量小,至少在一个迭代中能完成lT - Testable,可测试 初始需求:初始需求:1.作为作为网络规划人员,网络规划人员,我想要我想要配置一个媒体网关,配置一个媒体网关,因为因为想想要增加网络容量和服务要增加网络容量和服务初次分解:初次分解:1.1作为网络规划人员,我想把媒体网关参数上传到管理系统 1.2作为网络规划人员,我想从管理系统下载媒体网关参数再次分解:再次分解:1.2.1作为网络规划人员,我想用文件方式从管理系统下载媒体网关参数用例:用户在管理系统上选择以文件方式下载媒体网关参数,执行成功后,检查文件是否正确下载到本地且内容正确1.2.2作为网络规划人员,我想用MML结构方式从管理系统下载媒体网关的参数用例:…………故事样例用户故事便于团队站在用户角度分解细化需求并制定验收标准用户故事便于团队站在用户角度分解细化需求并制定验收标准Page 47 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷工程实践:结对编程什么是结对编程什么是结对编程l两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;l操作键盘和鼠标的程序员被称为“驾驶员”,负责实时评审和协助的程序员被称为“领航员”;l领航员检视的同时还必须负责考虑下一步的工作方向 ,比如可能出现的问题以及改进等。

      结对编程的好处结对编程的好处l有助于提升代码设计质量;l研究表明结对生产率比两个单人总和低 15%,但缺陷数少 15%,考虑修改缺陷工作量和时间都比初始编程大几倍,所以结对编程总体效率更高(source: The Economist);l结对编程能够大幅促进团队能力提升和知识传播结对编程的关键要点结对编程的关键要点l程序员应经常性地在“驾驶员”和“领航员”间切换,保持成员间平等协商和相互理解,避免出现一个角色支配另一个角色的现象;l开始一个新Story开发的时候即可变换搭档,以增进知识传播;l培养团队成员积极、主动、开放、协作的心态能够增进结对编程效果;l实施初期需要精心,帮助团队成员克服个性冲突和习惯差异结对编程提高代码质量和工作效率结对编程提高代码质量和工作效率Page 48 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷工程实践:测试驱动开发(TDD)什么是测试驱动开发什么是测试驱动开发lTDD以测试作为编程的中心,它要求在编写任何代码之前,首先编写定义代码功能的测试用例,编写的代码要通过用例,并不断进行重构优化;lTDD要求测试可以完全自动化运行。

      测试驱动开发的好处测试驱动开发的好处l和代码同步增长的自动化测试用例,能为代码构筑安全网,保证代码重构的质量;lTDD有助于开发人员优化代码设计,提高代码可测试性测试驱动开发的关键要点测试驱动开发的关键要点l测试代码和源代码一样都需要简洁,可读性好;l测试用例的设计要保证完备,覆盖被测单元的所有功能;l每个测试用例尽量保持独立,减少依赖,提高用例的可维护性;l当功能单元较大时,为降低难度,可分解为多个更小的功能单元,并逐一用 TDD 实现测试驱动开发保证代码整洁可用(测试驱动开发保证代码整洁可用(Clean code that works))Page 49 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷工程实践:持续集成(CI)什么是持续集成什么是持续集成l持续集成(CI)是一项软件开发实践,其中团队的成员经常集成他们的工作,通常每人每天至少集成一次,每次集成通过自动化构建完成持续集成的好处持续集成的好处l大幅缩短反馈周期,实时反映产品真实质量状态;l缺陷在引入的当天就被发现并解决,降低缺陷修改成本;l将集成工作分散在平时,通过每天生成可部署的软件;,避免产品最终集成时爆发大量问题。

      持续集成的关键要点持续集成的关键要点l持续集成强调 “快速”和“反馈”,要求完成一次系统集成的时间尽量短,并提供完备且有效的反馈信息;l自动化测试用例的完备性和有效性是持续集成质量保障;l修复失败的构建是团队最高优先级的任务;l开发人员须先在本地构建成功,才可提交代码到配置库 ;l持续集成的状态必须实时可视化显示给所有人;l大系统持续集成需分层分级,建立各层次统一的测试策略持续集成提供产品质量的快速反馈,保证随时拥有可工作的软件持续集成提供产品质量的快速反馈,保证随时拥有可工作的软件参见附件:持续集成解读.pptPage 50 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 51敏捷工程实践:Anatomy系统解剖什么是什么是AnatomylAnatomy(解剖)来源于电信行业,从用户视角全面展示复杂产品系统的功能依赖关系,让整个系统的功能按自底向上逐步有序地开发和集成Anatomy的关键要点的关键要点lAnatomy不是系统架构视图,图中的Block是表示系统提供给用户使用的一个功能(capability),是站在纯用户视角,不包含设计信息;lAnatomy中的依赖关系是用户使用系统功能的依赖关系,而不是设计或架构上的依赖关系;lAnatomy是系统全视图,由最了解系统的工程师绘制出基线,在增量开发时需不断刷新。

      Anatomy帮助团队理解系统全局,制定合理的迭代计划帮助团队理解系统全局,制定合理的迭代计划Anatomy的好处的好处lAnatomy是迭代计划制定的重要依据,保证系统按照类似生物自然生长的顺序自底向上有序地开发和集成(Organic integration);lAnatomy也可作为可视化工具,通过标识图中每一个功能的状态,使项目整体进展一目了然,并能极大增强团队的信心;l有助于团队从增量交付向交付全系统的思维转变;l是很好的培训教材,帮助工程师了解全系统Anatomy样例Page 51 目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷n我司敏捷开发实施策略我司敏捷开发实施策略pPSSTPSST发文解读发文解读p09年敏捷实施指导n我司敏捷案例我司敏捷案例 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 关于敏捷推行的指关于敏捷推行的指导意意见￿￿￿￿￿￿￿￿￿￿￿￿￿￿华为华为PSST函(函(2009))012号号￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿签发人:徐直军签发人:徐直军 敏捷/迭代开发已经成为业界主流软件开发方法,与瀑布模式相比,其在应对需求变化、提升产品质量、加快需求响应、缩短交付周期、提前暴露风险、及时激励员工以及平滑人力资源的使用等方面具有明显优势。

      为了保证敏捷/迭代开发在我司有组织、有步骤、有策划的开展和推行,现明确要求如下:1.以业务目标(交付周期、质量)为导向牵引敏捷推行,所有敏捷度量都以交付周期和交付质量为基础,而不能为了敏捷而敏捷2.公司敏捷推行分三步走:项目级敏捷、版本级敏捷和产品级敏捷,每一步要控制好入口,降低风险3.09年重点全面推进项目级敏捷,版本级敏捷进行试点2010-2011在版本级敏捷试点基础上进行逐步推广4.项目级敏捷要求的实践包括:项目级持续集成、开发测试拉通、迭代、可视化管理、回顾会议、自动化测试、站立会议、用户代表参与现场迭代特性验收;其他敏捷实践项目组根据情况自己选择5.所有PL都要成为合格的Scrum Master(关键职责是团队用正确的敏捷方法做事),在PL任职资格中将增加该要求Page 53 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 关于全面推广持续集成的决议关于全面推广持续集成的决议华为华为PSSTPSST函(函(20092009))022022号号签发人签发人: :徐直军徐直军 持续集成是业界的优秀软件开发实践,对降低软件开发风险、增强项目可视性、提高团队自信心、提升软件开发效率和质量效果明显。

      为保证持续集成在我司有组织、有步骤、有策划地开展和推行,经PSST讨论,现明确要求如下:1.09年全面开展项目级和产品级持续集成,通过《持续集成行为自检表》牵引开发人员树立正确的持续集成理念,同时在行为上落实要求,不断改进持续集成工作2.本地构建是确保持续集成成功的关键,开发人员须首先在本地构建(编译链接、单元测试、代码静态检查)成功后,方可提交代码到配置库3.完善持续集成工具支撑分层、分级、分布式大规模部署策略,与周边系统有效对接,拉通开发领域相关自动化活动4.持续集成给配置管理带来较多改变,配置管理业务和IT与持续集成必须拉通5.持续集成要和系统测试拉通,由测试体系建立持续集成的统一端到端测试策略6.持续集成大规模推广的专项物料,由测试统一规划和部署,持续集成服务器可采用ATCA7.每个产品落实专人负责持续集成工作,进行产品持续集成的策略制定、环境搭建和维护、问题协调解决,支撑产品全面部署Page 54 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 软件代码质量要求及样例软件代码质量要求及样例华为华为PSSTPSST函(函(20092009))029029号号 签发人签发人: :徐直军徐直军 编写简洁、可维护、可靠、可测试、高效和可移植代码是每一位软件开发人员的责任和目标。

      针对当前突出的软件腐化问题,明确软件代码的质量要求如下:1.1.简洁:简洁:代码简洁就是易于理解并且易于实现尽量编写少但功能完备的简洁代码,日后可以随时为额外的功能添加更多的代码提高简洁的方法有:单一功能、强内聚且低耦合、避免函数过长、避免嵌套过深、避免重复等2.2.可维护:可维护:代码可维护性是软件被修改的能力,包括纠错、改进、新需求或功能规格变化的适应能力面对进度压力开发人员容易忽略代码的可维护性我们要谨慎的编程,使系统中每个组件尽可能地“保护”自己;同时不要做任何假想,随着代码的增长,没有记录下来的假想会不断地造成缺陷提高可维护性的方法有:使用好的编码风格、编码清晰、降低代码复杂度、尽可能减少全局变量等3.3.可靠:可靠:代码可靠性是软件在给定时间间隔和环境条件下,按设计要求成功运行程序的概率提高可靠性的方法有:使用安全的函数和数据结构、编译时打开所有的警告开关并清除所有警告、使用静态检查工具分析代码并清除所有警告、检查所有的输入、验证所有的运算、检查所有返回值、避免强制转换、避免内存越界、避免内存泄漏等4.4.可测试:可测试:代码可测试性是指软件发现故障并隔离、定位故障的能力,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。

      提高可测试性的方法有:尽量减少依赖、保持代码可观测性、限制代码复杂度等5.5.高效:高效:代码性能高效是尽可能少地占用系统资源,包括内存和执行时间提高性能的方法有:合理利用语言特性和编译选项,例如禁用C++的RTTI,可以减少可执行文件大小;代码内嵌,可以减少方法调用的开销;将不变条件的计算移到循环体外;利用并行和线程来防止串行操作;避免或者移除过多的锁;添加缓存或者缓冲层,以加快较慢的数据访问,或防止漫长的重复计算;创建资源库,以减少分配对象的开销6.6.可移植:可移植:可移植性是为了在原来设计的特定环境之外运行,对系统进行修改的能力提高可移植性的方法有:使用标准库函数,并且把它们和类似ANSI/ISO C标准中定义的头文件放在一起使用;尽可能使所写的程序适用于更多的编译环境;把不可移植的代码分离出来Page 55 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential PSST敏捷发文要点解读:敏捷实施三步走策略1.三步走核心思想:三步走核心思想:敏捷转型成功的关键是团队意识的转变和能力的提升,通过三步走的策略,实现人员技能、工程能力、流程、工具等方面的积累,在风险可控的情况下逐步达到全面敏捷的目标;2.项目级敏捷项目级敏捷:实施的范围限定在TR2-TR4A,聚焦单个项目组或多个项目组协同的开发过程和能力改进;对IPD流程的对外交付点及非研发领域(用服、Marketing等)没有影响;3.版本级敏捷:版本级敏捷:版本级敏捷实施的范围将扩展到TR1’-TR6,对架构、设计、非研发领域协同(用服,Marketing等)等多个方面能力提出了更高的要求;版本具备按特性向最终客户分批交付的能力,加快对用户响应速度(TR1’表示在版本级敏捷下的TR1定义和当前IPD流程中定义的TR1将会有区别);4.产品级敏捷:产品级敏捷:实施范围扩展到产品的全生命周期(含所有版本),以更小的需求包接纳客户需求,给用户提供更快的市场响应速度,将在规划、组织结构、主流程、市场、财务、供应链、商务等方面带来巨大挑战。

      版本级版本级TR1开 发概 念计划CHARTERCHARTER验 证CDCPPDCP发 布生命周期ADCPGAGATR2TR3TR4TR4ATR5TR6项目级项目级产品级产品级敏捷实施从内向外逐步扩大敏捷实施从内向外逐步扩大““迭代迭代””循环范围循环范围Page 56 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential PSST敏捷发文要点解读: 三步走之项目级敏捷项项目目级级敏敏捷捷影响范围影响范围聚焦在TR2~TR4A的单个项目组或多个项目组协同的开发过程和能力改进实践要求实践要求要求实践:持续集成、开发测试拉通、迭代、回顾会议、自动化测试、站立会议、用户代表参与现场迭代特性验收建议实践:引入敏捷团队的PO和Scrum Master角色、结对编程、TDD、特性团队、重构好处好处1.培养人员,储备敏捷实践技能、带来质量和效率的提升2.激发团队士气,逐步掌握敏捷思想入口条件入口条件适用于所有项目组风险评估风险评估已经在公司很多产品试点,风险小,可以全面推广Page 57 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential PSST敏捷发文要点解读: 三步走之版本级敏捷版版本本级级敏敏捷捷影响范围影响范围1.范围扩展到TR1-TR62.具备按特性向用户分批交付的能力,保持一个主干3.要求系统设计、开发和测试、资料、硬件的协同4.迭代交付模式的改变带来资料、市场、用服等相应的改变实践要求实践要求可能包含的实践:系统Anatomy、one track、需求管理(需求优先级不断刷新)好处好处缩短交付周期;降低版本维护成本;提高需求命中率;整个版本的质量和效率提升入口条件入口条件1.版本中的项目组已具备敏捷迭代能力2.版本的架构风险可控(如大部分增量开发产品)3.版本人员具备较好的系统设计能力4.具备良好的持续集成和自动化测试能力风险评估风险评估在能力不具备的情况下启动可能会带来如下问题:1.架构和设计能力不足,导致后续迭代对前面工作带来大量返工2.自动化测试能力不足,无法应对密集的集成测试3.交付前验收不充分,影响发布质量Page 58 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential PSST敏捷发文要点解读:三步走之产品级敏捷产产品品级级敏敏捷捷影响范围影响范围1.聚焦产品全生命周期2.将敏捷精益思想(降低批量、减少任务等待时间)融入到产品端到端流程中;从一个R版本中多个小版本的串行开发转变到基于小需求包的并行开发,并且始终保持一个主干3.交付周期进一步缩短对组织、流程、财务、供应链、商务等带来影响实践要求实践要求可能包含的实践:产品需求管理、版本规划和策略、多个并行需求包开发团队的协同和管理好处好处全流程角度减少需求等待时间,最大限度的缩短TTM,更聚焦客户价值入口条件入口条件具备成熟的版本级迭代能力风险评估风险评估1.精细化的需求管理对管理者和需求分析人员提出更高的要求2.多个需求包团队并行开发,更容易导致合入主版本产生设计冲突Page 59 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential PSST敏捷发文要点解读:09年敏捷实施要求l敏捷成功与否的衡量标准是业务结果(质量、TTM)的改进,￿09年PSST改进目标为质量提升30%,通过质量提升缩短TTM ;l所有产品的在研版本均可以进行项目级敏捷实践,实施时应尽可能覆盖多的项目组,最低要求为:所有主力产品的在研软件版本均要在TR2-TR4A之间进行项目级敏捷实践,每个软件版本至少选择一个项目组实施;l版本级敏捷可以试点,但需对入口条件进行严格审核以降低风险,入口条件包括:p版本中的项目组已具备敏捷迭代能力p版本架构清晰风险可控,通过AR点评审(DRB或架构委员会)p版本人员具备良好的架构设计和系统设计能力p具备版本级持续集成能力和自动化测试能力Page 60 目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷n我司敏捷开发实施策略我司敏捷开发实施策略pPSST发文解读p0909年敏捷实施指导年敏捷实施指导n首次实施敏捷的参考步骤n敏捷角色在我司可能的角色人选n项目组团队的组建方式n项目级敏捷实施场景n我司敏捷案例我司敏捷案例 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 首次实施敏捷的参考步骤——八步曲备注:基于业界和公司敏捷成功案例,总结出上述步骤,仅供参考。

      Page 62 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 首次实施敏捷参考步骤——方法、目标和误区(一)步骤步骤方法方法目标目标误区误区1.1.思想动员思想动员l领导动员讲话l敏捷松土l成功团队现身说法l各级主管承诺l上下同欲l跃跃欲试l信心满满l领导强压l走过场2.2.差距分析差距分析l人力技能分析l代码架构差距分析l环境和工具分析l技能差距清晰化l代码架构差距清晰化l环境和工具差距清晰化l不重视,投入分析人员能力不足,导致分析不深入,无实际指导意义3.1.3.1.环境和环境和工具准备工具准备l成立环境(配置库,CI环境,必要硬件)专项改进小组l成立工具选型和开发小组,完成开发环境,代码静态检查,持续集成工具和架构评估检查工具l环境改造完全适应敏捷开发需要l建立与敏捷开发相适应的工具体系l没有投入足够能力的人,关键瓶颈没有识别出来,实际开展的敏捷的时候严重阻碍项目运作3.23.2敏捷实敏捷实践技能准备,践技能准备,技术能力准技术能力准备备l根据能力差距,组织系统化培训,可以引进外部资源l执行Dry Run(模拟练习),积累实践经验l交叉宣讲,检验培训效果,技术实践最好结合代码例子进行l项目开始运行之后继续抓紧人员技能培养工作不放松,在工作中培养高手l围绕重构、测试驱动和持续集成所需要的更高设计和编码能力,进行系列化的培训和研讨,强调实战演练,并在工作中不断锤炼,可以采用一对一帮扶,以及结对轮换等方式l所有的人员对敏捷核心实践都有实际应用经验,基本能够运用于实际开发l所有成员具备熟练重构、测试驱动和持续集成等活动的关键设计和编码能力l因为进度或者人力原因,准备度不足,导致初期混乱程度激增l只注重敏捷实践的流程和实践的形式,而忽略技术能力的跟上,有形而无实Page 63 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 首次实施敏捷参考步骤——方法、目标和误区(二)步骤步骤方法方法目标目标误区误区4.4.确定开发确定开发过程和准备过程和准备应用的实践应用的实践l邀请敏捷专家,骨干,管理者参加l结合环境、工具、人员的准备度和敏捷实践之间的支撑关系,定制开发模型和应用实践l定出适合自己的实践集l试图将敏捷开发机械套在瀑布开发过程上,导致不得其利,反受其害l太过激进,不考虑实际情况,导致实践开展困难,质量长时间上不去,打击信心l过于保守,选择实践太少,破坏实践间的系统性,导致效果不明显l过于理论化和完美主义,导致定制的过程和实践不具现实可操作性5.5.敏捷实施敏捷实施l严格按照已经定下的开发模型开展,拿不准的实践不要盲目改动,多请专家协助,达成基本一致再改动不迟l出现问题,多讨论,多征集意见,越早暴露问题越好,不要掩饰问题,虚假繁荣l领导要持续关注,排解困难,多肯定,有好的进展及时激励l达成开发目标l团队掌握敏捷核心理念和实践,提升团队能力和信心l实践出现困难就动摇,对原因未做深度分析就轻易放弃l管理者信心不足,不能给团队以坚定信心,激励太少,团队士气低落l太过激进,对团队成员不适应的情形,耐心不足,招致团队成员内心反抗,推行受阻l认为敏捷是银弹能解决所有问题,一旦出现问题都归咎于敏捷Page 64 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 首次实施敏捷参考步骤——方法、目标和误区(三)步骤步骤方法方法目标目标误区误区6.6.回顾评估回顾评估与调整改进与调整改进l对实践方法进行效果评估,总结亮点固化到下一次迭代l识别改进点给出改进方案,在下一迭代中试行l针对出现的问题形成可行改进措施l发扬好的思路和方法,让团队保持信心和热情l走过场,总结不深入,关键点遗漏或者改进措施不得力,团队成员带着疑虑和不满进入下轮迭代7.7.激励表彰激励表彰l及时表彰优秀实践方法贡献者、优秀实践执行者,团队合作表现突出者,牵引团队主动、积极、共享和协作,保持团队持续的士气和信心l优秀者得到认可,正确导向得以确立,团队士气高昂l不重视激励,流于形式,树立不了标杆,牵引作用丧失l激励太泛滥,价值贬值,激励效果差8.8.项目结束项目结束总结总结l对整个项目运作进行总结,评估整体敏捷实施效果l形成本产品的敏捷实施推荐模型,逐步推广应用到其他版本l形成适合本产品的敏捷开发模型l培养出敏捷教练l草草收场,推荐模型没有输出或质量差l教练没有培养出来Page 65 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 66敏捷角色在我司现阶段可能的角色人选敏捷团敏捷团队角色队角色我司可能的角色人选我司可能的角色人选(经培养合格后承担角色职责)(经培养合格后承担角色职责)角色要求角色要求PO(产(产品负责人)品负责人)开发代表、版本经理、版本SE,产品根据实际情况选择。

      注:有些大系统PO背后有团队支撑1.熟悉产品业务,善于把握客户需求,并有较强的需求价值判断能力2.较强沟通协调能力,善于平衡各方利益,在冲突中寻求共识,推动目标达成Scrum Master项目组PL1.丰富的项目管理经验,有成功的项目交付经历2.深刻领悟敏捷的核心理念和敏捷实践方法,能够指导别人正确执行敏捷开发3.良好的沟通交流能力,善于引导、鼓舞团队Team我司角色包括:系统设计师(SDE)、模块设计师(MDE)、项目组PL、SWE软件工程师、测试系统工程师TSE、测试工程师TE、资料工程师1.具备必要的功能领域工作技能2.熟练掌握敏捷实践方法3.心态开放,积极进取,乐于和他人合作Page 66 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 67其他敏捷相关角色在我司对应的角色其他敏捷其他敏捷相关角色相关角色我司对应角色我司对应角色角色要求角色要求利益相关利益相关人人客户、用户、MKT、行销、用服、管理者、IPMT/BMT等注:产品迭代现场验收一般由需求管理团队(RAT)、MKT,用服代表等更了解客户需求的人代表客户参与1.能够全权代表本部门的利益,达成本部门述求,承担本部门的责任2.沟通能力强,追求合作共赢敏捷教练敏捷教练有敏捷成功实践经验的合适人员承担,通过亲身参与项目工作,团队逐步掌握敏捷实践,并且为项目组培养合格的Scrum Master1.成功的敏捷项目交付经验2.深刻领会敏捷理念,精通敏捷实践和开发流程3.良好的沟通交流能力,善于传授技能Page 67 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 资源池1资源池2资源池3版本1开发版本2开发特性组1特性组2模块组1模块组2模块组3l特性项目组:特性项目组:在版本开发时,将人员按照特性划分小组。

      每个组负责一个或多个特性开发成员来自多个资源组,按照特性垂直拉通l模块项目组:模块项目组:在同一版本人员按照模块划分小组,和资源组匹配,但只包括各资源组参与该版本开发的人员多个模块组需要集成后才能支持系统对外提供的特性l备注:备注:我司资源池通常是按业务领域、子系统划分,是稳定不变的组织结构,支持多个版本开发项目组团队的组建方式:我司两种不同项目组类型Page 68 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 项目组团队的组建方式:特性项目组和模块项目组优劣对比优势优势劣势劣势弥补劣势的方法建议弥补劣势的方法建议特特性性项项目目组组l有利于项目组成员自然地聚焦于最终用户特性的交付上;l强化了模块间的沟通和协作;l易加入其它功能角色(如系统设计人员、系统测试人员、资料人员)到团队中,形成一个完整的端到端团队,共同对最终交付负责l特性间实现存在耦合情况下,可能由于缺少统一的模块设计,造成“烟囱系统”,使模块软件架构恶化;l弱化了模块内沟通,在项目组人员对模块全局掌握不足的情况下,模块修改质量存在风险l每个模块有一个对模块全局的负责人(模块设计师MDE),在迭代前负责牵头完成模块的高层设计,保证不同特性在同一模块内的耦合部分有统一的设计;l模块设计师MDE ,在迭代中负责对每个特性组内模块的代码进行检视(如用结对方式),保证代码的质量。

      模模块块项项目目组组l强化了模块内人员的沟通,易保证模修改质量;l多特性对同一模块的需求在设计上易于重用并保证一致性,得到更合理的模块架构l不利于模块间人员对外部特性形成一致认识;l模块间协同较弱,l不易形成完整的端到端跨功能团队(含系统设计、开发、测试)l建立包括特性经理,特性系统设计人员、模块项目组组长,模块MDE,TSE在内的虚拟特性项目组,对特性的端到端交付负责,加强模块组间的协同产品应根据自身情况选择合适的项目组类型加以使用产品应根据自身情况选择合适的项目组类型加以使用Page 69 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 项目级敏捷实施场景1:版本中项目组全都实施敏捷1.版本中所有项目组实施敏捷,当存在多个项目组时,由版本级迭代计划协同各个项目组,在每轮迭代结束点拉齐;2.无统一TR3和TR4点,TR点质量要求融入到迭代过程中,每轮迭代结束时要求做系统集成验证,交付质量达到TR4A要求;3.最后一轮迭代完成后,进行全系统回归和验收,版本达到TR4A ;4.TR4A以后流程不变;5.该场景下可实施项目级敏捷的所有实践Page 70 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential ￿￿项目级敏捷实施场景2:版本中部分项目组按特性组建实施敏捷1.敏捷和非敏捷项目并存,在TR4A点前拉齐;2.选择较为独立的特性,按特性组建项目组,交付件是系统对外提供的特性;3.特性团队还可以包含特性系统设计人员,特性系统测试人员;4.每轮迭代结束,特性质量都要求达到TR4A要求,交付特性和版本中其它特性集成,由系统测试团队验收后通过TR4A;TR4A以后流程不变;5.在该场景下可进行的项目组敏捷实践:特性Anatomy、特性持续集成、项目组迭代计划、开发测试拉通、回顾会议、站立会议、可视化管理、结对编程、TDD、重构、Scrum Master。

      Page 71 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 1.敏捷和非敏捷项目并存,在BBIT点集成拉齐;2.选择一个或多个模块实施敏捷,交付件是可运行的模块;3.敏捷项目每轮迭代交付要进行验收,可由SE的设计团队或测试团队代为验收;4.在该场景下,敏捷实践不包含系统测试团队;5.TR4以后流程不变;6.在该场景下能进行的项目组敏捷实践:项目级持续集成、项目级迭代计划、回顾会议、站立会议、可视化管理、结对编程、TDD、重构、 Scrum Master 项目级敏捷实施场景3:版本中部分项目组按模块组建实施敏捷Page 72 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 项目级敏捷实施场景对比场景场景说明说明好处好处不足不足场景场景1:版本:版本中项目组全中项目组全都实施敏捷都实施敏捷l中小规模需求交付(如 C 版本或规模小的R版本),由1个或多个项目组共同完成,所有项目组都实施敏捷,此时项目组可能为特性组,也可能为模块组,组间靠版本迭代计划协同l多项目组步调一致,项目组间的相互依赖关系容易管理,迭代计划调整更容易实现,更易拉通测试;l能够实现系统级持续集成、避免大量打桩,提前全系统验证,避免大规模集成;l可以开展项目级敏捷的所有实践,获得多个敏捷项目协同经验。

      l规模如果不控制,对无敏捷经验或持续集成能力的团队,跨度过大,存在很大交付风险场景场景2:版本:版本中部分项目中部分项目组按特性组组按特性组建实施敏捷建实施敏捷l在一个版本中选择相对独立的特性组建项目组实施敏捷,其他项目组继续 CMMl实施变革牵涉面小,对原有团队运作影响小,风险可控,容易被团队接受l敏捷和非敏捷项目组之间协调困难无法全系统持续集成,后期必须大规模集成一次;l不能有效积累多项目全面敏捷经验,辐射和影响作用小,难以培养更多人才场景场景3:版本:版本中部分项目中部分项目组按模块组组按模块组建实施敏捷建实施敏捷l在一个版本中选择一个或多个模块组建项目组实施敏捷,其他项目组继续 CMMl对现有运作模式影响最小l为进行迭代验证,模块组需要大量打桩工作;l无法实施尽早的系统集成;l无法实施开发测试拉通的实践;l不能有效积累多项目全面敏捷经验,难以培养更多人才Page 73 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 项目级敏捷通用过程模型Page 74 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 项目级敏捷过程样例(版本中项目组全都实施敏捷)Page 75 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 76项目级敏捷过程样例说明 首轮迭代启动前:首轮迭代启动前:1.需求分析将原始需求细化成Story,并形成产品Backlog;2.TR1前增加Anatomy活动,将用户需求映射到系统系统Anatomy图图;3.系统架构设计,输出系统架构系统架构,系统设计活动输出DS和模块和模块AR;4.对于复杂和新增的模块,建议TR2后先完成模块架构设计,再启动迭代开发;5.版本迭代计划会议输出版本迭代计划版本迭代计划和迭代完成标准迭代完成标准;6.无统一TR3点和TR4点,在PDCP前增加迭代启动评估活动,评估迭代启动入口条件是否具备。

      每轮迭代中:每轮迭代中:1.项目组迭代计划会议输出迭代迭代Backlog和Story完成标准;2.迭代0可选,做为特殊迭代,实现代码框架/公用机制部分,验证系统架构和模块架构的可行性;3.多项目组在版本迭代计划协同下进行迭代开发(周期2-4周),分批实现产品Story;4.每轮迭代包括Story开发和验证的小循环、迭代内部验收,用户代表现场验收和迭代回顾会议,达到迭代完成标准后再启动下一轮迭代; 所有迭代完成后:所有迭代完成后:1.TR4A前要进行全系统的功能回归验证全系统的功能回归验证;2.TR4A以后活动不变 关于工作件说明:关于工作件说明:1.工作件主要目的是:促进当前项目高效地、准确地沟通;用于智力资产传承,便于后续产品开发和维护2.本样例中工作件是推荐的最基础的交付文档Page 76 目录目录n敏捷概述敏捷概述n正确理解敏捷正确理解敏捷n我司敏捷开发实施策略我司敏捷开发实施策略n我司敏捷案例我司敏捷案例 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 我司敏捷实践案例产品线产品线案例点评案例点评案例敏捷实践案例敏捷实践中研ISAPiSAP 作为华为敏捷实践的开拓者,在敏捷系统性,深入程度和成熟度上都做的非常出色,本案例揭示了该TDT 实施敏捷的背景、思路、方法、遇到的问题和解决之道以及最终实施的成果,对新开展敏捷开发的团队有较强的借鉴作用。

      参见附件:中研 iSAP 敏捷案例.ppt网络VRPVRP 作为一个规模达 3000K 的超大平台,如何针对本平台的运作环境、人员素质和技术能力来稳妥的引入敏捷实践是一个巨大的挑战本案例描述了 VRP 的试点情况,生动展示了其选择敏捷实践方法背后的考虑及效果参见附件:网络 VRP V8敏捷案例.pptPage 78 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 敏捷辅助参考资料敏捷辅助参考资料1.《加深敏捷理解的学习指导书》2.《敏捷软件开发:原则、模式与实践》3.《硝烟中的Scrum和XP》4.《Scrum敏捷项目管理》以上资料获取步骤1.登录2.在左侧的栏目中选择“软件”3.进入“敏捷”论坛4.选择置顶文章:《华为敏捷软件开发解读》辅助参考材料 Page 79 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 结束语结束语 敏捷是来源于敏捷是来源于实践的思想和方法体系,具践的思想和方法体系,具备鲜明的明的实践特践特征,本材料主要是引征,本材料主要是引导大家入大家入门,真正要,真正要应用好敏捷开用好敏捷开发方法,方法,需要每个人在需要每个人在领会敏捷精髓的基会敏捷精髓的基础上,投入到敏捷上,投入到敏捷实践中,在践中,在实践中践中领悟,在悟,在实践中升践中升华。

      敏捷敏捷变革革过程中必然伴随着困程中必然伴随着困难、彷徨和、彷徨和阵痛,只要秉持痛,只要秉持开放开放进取的心取的心态和和坚定不移的决心,持定不移的决心,持续关注人关注人员培养,加培养,加强经验交流,精心准交流,精心准备,耐心,耐心实施,我施,我们就一定能就一定能够成功!成功!Page 80 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential THANK YOU感谢聆听,批评指导2020 。

      点击阅读更多内容
      相关文档
      【全国硕士研究生入学统一考试政治】2020年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2015年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2010年考研政治真题.docx 【全国硕士研究生入学统一考试政治】1996年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2001年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2016年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2000年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2007年考研政治真题.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2004年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2003年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2019年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2009年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2001年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2021年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2014年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2018年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2008年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2011年考研政治真题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.