华为流程规范分享_第1页
华为流程规范分享_第2页
华为流程规范分享_第3页
华为流程规范分享_第4页
华为流程规范分享_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华为研发流程规范分享Ai学测试:李志目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程IPD流程介绍IPD的核心内容是以市场为导向的产品开发,关注客户需求,另外IPD把产品开发在公司内部也作为一项投资来看待。IPD流程需要建立了虚拟的投资决策委员会(IPMT),对产品开发团队(PDT)的活动在一些关键点上进行决策,此外IPD所建立的产品开发团是跨部门的,可以打破部门之间的沟通壁垒,并给出了跨部门业务流程指导跨部门团队运作。IPD:集成产品开发,英文“IntegratedProductDevelopment”的缩写。概念计划开发发布验证生命周期概念决策评审点计划决策评审点可获得性决策评审点生命周期结束决策评审GATR1TR2TR3TR4TR4ATR5TR6LAUNCHTR点:技术评审点,在各个阶段要交付技术文档CMM介绍CMM软件开发过程的演进进行描述,为软件组织的开发过程定义、实施、测量、控制和改进等活动提供指导;为软件组织选择过程改进战略提供指导。CMM是由美国卡内基梅隆大学的软件工程研究所(SEI:SoftwareEngineeringInstitute)受美国国防部委托研究制定并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。CMM:能力成熟度模型,英文全称为“CapabilitymaturityModel”。初始级(1)不可预测并且缺乏控制可重复级(2)可重复以前的主要经验Level3Defined

已定义级(3)过程被描述,并得到良好理解Level4Managed已管理级(4)过程被测量并受控Level5Optimizing优化级(5)持续自觉的改进有纪律的过程标准一致的过程可预测的过程不断改进的过程华为IPD-CMM介绍IPD关注整个产品的开发管理,包括市场、开发(软件、硬件)、结构、生产、采购、财务等各个方面。IPD-CMM流程关注其中的软件研发过程的管理。IPD-CMM流程CONCEPTDEVELOPQUALIFYCYCLELIFECDCPADCPPLANPDCPGALAUNCHSRSHLDLLDCODEUTITSTTR1TR2TR3TR4TR4ATR5TR6IPD流程LAUNCHIPD-CMM是IPD的软件使能流程目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程X产品版本规划1)研发周期长,半年迭代2)技术优势考虑领先2年3)前期技术瓶颈和性能瓶颈突破在研版本维护版本1)研发周期为2周到1个月,持续迭代2)修改线上bug和合入定制化需求(有钱)3)补偿前期遗留bug技术债1)命名全新版本2)支持老版本功能3)性能更好更稳定维护bug合入到新版本上线之后华为敏捷开发流程部分名词解释:CDCP(ConceptDCP):概念决策评审

PDCP(PlanDCP):计划决策评审

ADCP(AvailabilityDCP):可获得性决策评审产品Backlog:产品带班列表Anatomy:系统解剖AR:AllocationRequirement,分配需求部分名词解释:TDD:Test-DrivenDevelopment,测试驱动开发LLT:LowleveltestUT:单元测试MIT:模块集成测试MST:模块系统测试目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程优秀实践1:每日站立会议什么是每日站立会议每日工作前,团队成员的例行沟通机制,由ScrumMaster组织,Team成员全体站立参加聚焦在下面的三个主题:我昨天为本项目做了什么?我计划今天为本项目做什么?我需要什么帮助以更高效的工作?每日站立会议的关键要点准时开始:按计划会议制定的时间地点开会,形成团队成员的自然习惯;高效会议:会议限时15分钟,每个人都保持站立,依次发言,不讨论与会议三个主题无关的事情(如技术解决方案等);问题跟踪:ScrumMaster应该记录下所有的问题并跟踪解决;每日站立会议的好处增加团队凝聚力,产生积极的工作氛围及时暴露风险和问题;促进团队内成员的沟通和协调。每日站立会议促进团队沟通协调,及时暴露问题优秀实践2:可视化管理可视化管理的好处简单,一目了然,降低管理成本;实时状态显示,及时暴露问题;信息同源使团队理解一致,提升团队凝聚力;激励先进,鞭策后进,增强团队进取心。什么是可视化管理将项目状态(进度、质量等)通过物理实体(如白板,大屏幕)实时展示,让团队所有成员直观地获取当前项目进展信息。可视化管理的关键要点物理实体:可视化一定要做到物理上的实体化,大家在公开场所都容易看到,触摸到,(存在电脑中的文件不是可视化的);内容精简,易懂:信息展示一目了然,切实对团队有帮助,切忌贪多求全,难以分辨;实时刷新:延迟的信息拖延问题暴露,降低运作效率。可视化管理及时暴露问题,激励团队Story墙(展示Story进度)缺陷走势图(展示缺陷解决进展)优秀实践3:迭代回归会议迭代回顾会议的好处激励团队成员;帮助团队挖掘优秀经验并继承;避免团队犯重复的错误;营造团队自主改进的氛围。什么是迭代回顾会议在每轮迭代结束后举行的会议,目的是分享好的经验和发现改进点,促进团队不断进步;围绕如下三个问题:本次迭代有哪些做得好本次迭代我们在哪些方面还能做得更好我们在下次迭代准备在哪些方面改进?迭代回顾会议的关键要点会议气氛:Team全员参加,气氛宽松自由,畅所欲言,头脑风暴发现问题,共同分析根因;关注重点:Team共同讨论优先级,将精力放在最需要的地方(关注几个改进就够了);会议结论要跟踪闭环:可以放入迭代backlog中。迭代回顾会议是促进团队持续改进的最有效手段好的能做得更好的将来改进的优秀实践4:结对编程什么是结对编程两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;操作键盘和鼠标的程序员被称为“驾驶员”,负责实时评审和协助的程序员被称为“领航员”;领航员检视的同时还必须负责考虑下一步的工作方向,比如可能出现的问题以及改进等。结对编程的好处有助于提升代码设计质量;研究表明结对生产率比两个单人总和低15%,但缺陷数少15%,考虑修改缺陷工作量和时间都比初始编程大几倍,所以结对编程总体效率更高(source:TheEconomist);结对编程能够大幅促进团队能力提升和知识传播。结对编程的关键要点程序员应经常性地在“驾驶员”和“领航员”间切换,保持成员间平等协商和相互理解,避免出现一个角色支配另一个角色的现象;开始一个新Story开发的时候即可变换搭档,以增进知识传播;培养团队成员积极、主动、开放、协作的心态能够增进结对编程效果;实施初期需要精心辅导,帮助团队成员克服个性冲突和习惯差异。结对编程提高代码质量和工作效率优秀实践5:测试驱动开发什么是测试驱动开发TDD以测试作为编程的中心,它要求在编写任何代码之前,首先编写定义代码功能的测试用例,编写的代码要通过用例,并不断进行重构优化;TDD要求测试可以完全自动化运行。测试驱动开发的好处和代码同步增长的自动化测试用例,能为代码构筑安全网,保证代码重构的质量;TDD有助于开发人员优化代码设计,提高代码可测试性。测试驱动开发的关键要点测试代码和源代码一样都需要简洁,可读性好;测试用例的设计要保证完备,覆盖被测单元的所有功能;每个测试用例尽量保持独立,减少依赖,提高用例的可维护性;当功能单元较大时,为降低难度,可分解为多个更小的功能单元,并逐一用TDD实现。测试驱动开发保证代码整洁可用(Cleancodethatworks)优秀实践6:持续集成(CI)什么是持续集成持续集成(CI)是一项软件开发实践,其中团队的成员经常集成他们的工作,通常每人每天至少集成一次,每次集成通过自动化构建完成。持续集成的好处大幅缩短反馈周期,实时反映产品真实质量状态;缺陷在引入的当天就被发现并解决,降低缺陷修改成本;将集成工作分散在平时,通过每天生成可部署的软件;,避免产品最终集成时爆发大量问题。

持续集成的关键要点持续集成强调“快速”和“反馈”,要求完成一次系统集成的时间尽量短,并提供完备且有效的反馈信息;自动化测试用例的完备性和有效性是持续集成质量保障;修复失败的构建是团队最高优先级的任务;开发人员须先在本地构建成功,才可提交代码到配置库;持续集成的状态必须实时可视化显示给所有人;大系统持续集成需分层分级,建立各层次统一的测试策略。持续集成提供产品质量的快速反馈,保证随时拥有可工作的软件目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程优秀实践1:严格评审制度开发评审,参与者:开发\测试\版本经理1)SRS评审2)HLD评审3)LLD评审4)bug修改方案评审【完成后】所有文档归档保存决策类评审,参与者:SE\TSE\版本经理\测试经理\开发经理1)每个版本迭代需求排期评审2)版本迭代bug修改时间评审3)上线前,决策评审当前需要修改的bug和可以不修改的4)重大线上问题解决方案评审测试评审,参与者:开发\测试\版本经理1)测试需求分析方案评审2)测试方案评审3)测试用例评审4)bug测试用例评审【完成后】所有文档归档保存评审保证开发和测试的方向和质量的正确性优秀实践2:全员Code-Review开发必须组织Code-Review何时组织:在代码Check-in之前参与者:开发经理、周边相关开发、测试怎么做:开发讲解自己的开发思路浏览代码结构和调用关系确认代码规范性确认代码引用无问题确认经常踩得坑可以避免Code-Review保证开发思路和规范,避免继续入坑优秀实践3:控制版本合入在研版本开发控制1)每天早上编译一个版本2)白天开发,晚上改问题3)早上给测试合入需求和修改问题列表维护版本测试控制1)每个版本转测试2次2)第一次修改bug3)第二次修改第一次发现的bug和未完成修复的bugPS:1)如果bug过多,可以双方确认转测试次数,但是不能大于2次。2)超过2次编译,需要开发部长审批线上紧急bug版本经理控制1)紧急版本紧急处理不做控制2)可以开发直接修改并编译,测试直接测试3)保证问题第一时间解决并上线发布控制版本合入次数保

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论