`
lelong
  • 浏览: 554840 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于华为敏捷项目管理(转)

阅读更多

 IPD – 集成产品开发,华为花重金从IBM购买的一套产品集成开发流程,业界有一本书,PACE讲的就是这一套IPD流程,而IPD并不去讲你的开发要怎么做,IPD做的就是“投资决策、市场驱动”,更多的是决定做不做这个事情,做这个事情对于投资人员是不是受控的,所以在IPD里面会有DCP点(决策评审点),每个点上都会去考虑该不该做、值不值得去做,在引入这个东西以前,华为实际上是技术驱动的,并不是市场驱动的,就是说以前华为听说有个新技术,然后就开始做,做了很多这样的东西,但是后来都卖不出去,所以后来就引入了IPD,以市场驱动。在引入IPD后,是解决了做什么的问题,但是怎么做,还是按照自己的想法去做,后来就引入了CMM,引入CMM后对华为确实起了非常大的作用,其产品开发的质量确实是比起前提高了,所以在前几年,通过IPD+CMM使得华为走向了一个非常成熟的过程。在这个基础之上,关于质量管理、项目管理华为提出一些自己的体系,比如从项目的开始到项目的结束,有项目review、度量分析、根因分析、缺陷预防等一系列活动,在项目管理方面有风险管理、问题跟踪管理等活动,同时还会有质量审计以及相关的推动等事情,通过这些项目管理和质量保证使得IPD和CMM很正常的运作下去,但是现在行业已经发生了一些变化,比如需求变化快等方面华为也碰到了一些问题,以前产品质量是可控的,大多数产品的发布周期也是稳定的,比如对客户承诺什么时间提交产品基本上是有保证的,另外项目在管理层的进展也是非常清晰化的,你在向某某领导汇报的时候只用告诉他比方项目到了SRS阶段了,基本上这个项目的老大就知道这个项目还有多少事情需要去做,比如告诉他到单元测试阶段了,他就知道快搞定了,这样确实使得这个进展能够口头化。其实,流程存在的价值,就是能够给我们的管理层提供进展的可视化,所以从目前来看,对于客户、员工、管理层这三个利益相关人来讲确实达到了这样一个目的。

但是现在行业中,需求变化太快,不管我们怎么努力去做,发现还是不能满足客户的需要,不管需求搞得多么细,到交付产品给客户的事情,总是有这样那样的问题,这个时候就不得不去修改我们的软件,这是华为面临的一个挑战,如何解决这个问题?

软件开发中有三个要素:人、过程、技术和工具。对于一个软件项目成功来说,这三个要素都不可省,而在以前大家强调IPD和CMM,更多的是强调大家规范的把它运作起来,对于人、技术和工具基本上不提了,忽略了,所以后来就反馈出一个问题,就是很多项目,看起来那个过程做的那个漂亮,那个报告写得那个完美,但是交出去的产品那个烂,其实这三个因素是缺一不可的,你必须得均匀的发展,还有一个是人的方面,因为人是具备创造能力的,所以从华为的教训给我启发,过度的关注过程而忽视人、忽视技术和工具,我们就得要思考和反省了。

针对这些问题,华为也就提出了敏捷。华为在99年之前基本上都是土生土长游击队的做法,到了2001年的时候就引入了IPD和CMM,到2006年的时候,就发现了瀑布模型的问题,如交付周期特别长,就是每做一个客户的需求,然后一分析,这样一走半年就过去了,所以就引入了RUP,最初的想法就是加速我们项目的交付周期,能够快速的给客户响应,但是敏捷实际上已经进入了一个低谷期,所以当时就引入了迭代,实施了一年之后也发现,RUP里面的东西实际上也是挺多的,所以后来就接触了XP、SCRUM这些方法,这样就从07年开始向敏捷这个方向在走。

有一个图在业界流传比较广泛,也叫洋葱图,共分三圈,也就是从三个不同层面描述了敏捷开发方面的一些最佳实践。XP为什么叫极限编程?如果你觉得这个软件开发的实践是一个好的实践,那么你就把它发挥到极致。比如,结对编程,一个在编,一个人在看,实际上看的人不会白看,其实起到了一个review的作用,既然review这个作用有效,那么为什么不把这个作用发挥到极致,所以就采用了结对编程将review这个作用发挥到极致。在敏捷中有一个8个字的原则:沟通、反馈、交流、勇气。它认为项目团队中的成员这个沟通是比较重要的,既然你非常重要,那么我也要把你发挥到极致,所以两个人一起在干活的时候就会不停的有交流与沟通,所以,结对编程是一个典型的把review、沟通交流发挥到极致的实践。另外,TDD也可以认为是那刚好够用的事情发挥到极致。我们以前传统的软件开发的做法是,先做好这个软件,然后去测,看看是不是实现了这样一个功能,但是我们总会发现这里面有很多代码其实是从来就没有用过的,只是在下代码的时候顺手就把它写了,在分析那些产品的时候发现有的产品这样的没用到的代码高达50%,而TDD的思想是,我既然要实现什么功能,然后我就先写对应的用例来验证它,然后在开发的时候就开始写代码,使得这个用例刚好通过,这样就使得我们写出来的代码是刚好满足这个系统的功能的代码,这样,前面出现的50%就可以不用做了,这就是把刚好够用发挥到极致。其他的就不一一讲了。XP在2001年到2003年之间非常的红火,过了之后又相对的沉寂了一点,现在又冒出来一个新的敏捷的方法论,就是SCRUM。XP是过分的强调将软件开发里面的实践发挥到极致,而这些实践都是同编程实践相关,但是在管理方面就比较弱,所以,在用了几年之后,大家发挥XP不是起到那么大的作用,所以就开始沉寂下来。这个时候就出现一个流派,就是SCRUM。SCRUM其实就是一个非常非常轻量的项目管理框架,基本上没有什么编码实践方面的东西,你说看到的都是管理上的活动,这个管理上的活动很多人就会有一种似曾相识的感觉,记得前不久,同华为的一个项目团队在聊,就谈到这个项目的backlog,一讲,项目团队的人就说其实他就是那样子做的,他以前也没与听说过什么SCRUM,就是把这些需求一条一条的列出来,镍镉优先级,估个工作量,一看,就是这个东西。SCRUM的核心其实比较简单,2分钟就能讲出来,就是3个3。一、3个角色。Product Owner,负责决定产品要做什么,做成什么样子;SCRUM Master,保证项目能够遵循SCRUM的方式运作下来;项目团队成员,包含开发、测试、质量等等所有的人。二、3种会议。迭代的计划会议、中间的站立式会议、迭代的评估会议,属于三个管理的活动。三、3个交付件。待开发的任务列表、待修复的缺陷任务列表、项目的进度图。SCRUM就是通过这3个3将项目非常简洁的管理起来,有一个思考就是关于PMP里面讲到的9大领域多少活动不一定对这种敏捷项目适用。那么大家可能提出一个疑问,就是项目的进度是不是就不可视了。其实,敏捷项目的进度可视很简单,就是通过一个白板(进度墙、任务看板),将每个人的进度情况这么一贴,这就是最简单最直接的管理方式,一看,所有人都知道,就算你去开发一些什么复杂的一些IT支撑系统,可能都起不到这个白板的作用。在华为关于敏捷的一些项目管理工具,用Scrumworks、Bingo这些管理工具也能够把项目的进度管理起来,但是你要做的就是必须得把电脑打开,要把浏览器打开,这样才能看到你的进度是什么样子的,而在办公区直接树一个白板就能够很简单、很方便的知道我的这个进度情况。所以,在华为,对于敏捷项目,管理的框架上是采用的SCRUM,指导如何编码实现上就采用了一些XP的实践,当然XP的实践不会全部去选,会根据项目的实际情况去选一些实践,如果你把所有实践都选的话,实际上的效果是非常差的。那么如何来选择就得根据项目的实际情况去评价。华为在实践的过程中也引入了精益、消除浪费的思想。比如,在平时的工作中存在停工等活的浪费。什么是停工等活的浪费呢?比如我们开发在做开发的时候,我们的测试就会轻松一点,那么测试在做测试的时候我们的开发就会轻松一点,大家觉得这样也挺好的,但是你从整个组织角度去分析,实际上是停工等活的,开发时测试在等着,测试时开发在等着,如果你从精益的角度考虑的话,为何不通过迭代的方式把开发和测试等待的时候整合在一起来工作,使得效益得到提升。有很多项目团队自己去做了,确实效果比较明显。其实在2006年实践RUP的时候就感觉到这样的好处了是非常明显的。引入敏捷之后,自然而然的就会想到同公司已有流程之间的关系,原来是IPD+CMM,所以就有同事问到是不是我这个就不用了。分析可以知道,IPD是决定做不做,决定之后如何去做就可以采用敏捷开发,所以对于敏捷产品的流程就是IPD+敏捷的方式,所以有很多以前采用瀑布型的团队逐步的被敏捷代替了,还有些团队正在代替中,还有些团队就觉得原来那套玩得很流畅就继续采用原来的方式。所以目前在华为,项目团队是可以自己来选择采用哪种方式进行,现在可以发现,那些愿意选择敏捷方式走的往往就是原来那些顽固不化的烂项目,因为以前在推流程的时候,那帮人整天在那里叫,有问题,我不干,我不愿意做,实际上,后来做深入分析发现,他的那种模式并不适合按照瀑布型去做,但现在成了积极分子,所以每个项目的模式是不一样的。

在做敏捷的时候也存在一些容易做的事情和不容易做的事情。比如说SCRUM的项目管理是比较容易去实践的,就是3个3,对于那些想敏捷的,我建议可以先做这个,还有也会做一些结对编程、持续集成的实践。比较难的,有这么几点。华为从99年开始都是按照开发、测试等团队去运作的,团队与团队之间就会形成部门的墙(华为有一个外籍员工给起了一个名字叫Chinese Wall),对每个部门来说,希望把这个墙树高一点,这样能获取更多的资源非常顺利的开展工作,所以墙就会越树越高,很多部门甚至还有checklist,你只要给我什么东西,我就按照checklist打勾,打勾不通过的就要干啥干啥,这样通过约束管理层,罚款的制度就来了,而这个问题就很难搞,涉及到很多很多的人员,涉及到部门角色定位的问题,这是华为觉得最难的一点。第二难的问题就是TDD,在很多项目都试过,但是试过之后,很多项目都无疾而终,或者诉苦说这个我实在搞不下去,分析后发现,是涉及人做事情方法的改变,这个挺难的,以前写代码都是边想编写,就能写出来,现在你就得先想好、验证好等等,然后再想办法填进去,就发现这个很难,这是一个开发习惯的改变,这也是很难的一件事情。第三个,就是Customer Tester,就是要客户参与验证,可能对于互联网企业可以部署一个系统,用户参与测试就可以做起来了,但是对于华为而言,客户是电信企业,而电信是买方,买了之后再供他们的客户去用,这个里面客户就存在好几层,所以要客户真的参与进来还是比较难的。第四点,也是很难的,我们有一个团队,要到各个团队去宣传为什么做敏捷,这涉及到观念的转变,所以这也是非常难的事情。(一夜的引入,长时间的改变。)比如你说你这个团队敏捷了,明天就开始站立式会议,但是你最后会发现,要真正敏捷实际上是一个漫长的过程。

在华为实施敏捷的过程中,也有一些经验性的东西。第一个是QA从警察的角色转变到一个教练的角色。在以前,团队实施CMM的时候,QA更多的是一个警察的角色,他整天拿着一个checklist、报告什么的到处去团队里面看,你是否ok,不ok就要怎么怎么样,整天就干这个活,但是引入敏捷之后,QA就觉得有点失落,都敏捷了,我都不知道该怎么下手了,然后,在华为,就把QA转变了一下,将QA更多的充当教练的角色,充当SCRUM Master的角色,他去指导项目团队该如何去开这个站立式会议,该怎么去做迭代的计划等等指导性的工作,这样QA也觉得挺好,这样他能参与到在不同的团队中去,这样他见得也多,所以在敏捷的实践里面是需要这么一些人来干这么一些事情。第二个就是要营造一个一体化的团队,也就是将所有有墙的部门通通打掉,直接按照项目型运作,把大家拉到一起,不要考虑你原来是什么部门,先把项目做出来再说,这就是在XP的外圈中的Whole Team实践,因为大家就真正是一条船上的。在很对项目中,总是存在这样的一些人,项目成功不成功对他们是无关紧要的,但是有些人项目不成功对他们是非常重要的,而真正的敏捷项目就要这些人来挂帅,并且这些人是站在一条战线上的,所以就叫拉到一体化的团队里面来,大家都对交付负责。第三个就是办公环境最好也能够随着改变。以前大家都是那种小格间的方式,但是这种方式是非常不利于做交流和做项目的。第四个就是现身说法。前面讲到有很多这样的人会到团队中去说敏捷怎么怎么好,但是如果你让一些对项目成功不成功都不相关的人去讲是没用的,因为大家一听,首先就会质疑50%,所以华为当初经常搞的活动就是让项目经理他们在讲,将他们当时是怎么开展敏捷的,这样别人一听才能理解到原来你是这么这么做的。

分享到:
评论

相关推荐

    华为公司实际的敏捷项目管理经验

    【华为敏捷项目管理经验】 华为公司在实施敏捷项目管理过程中积累了丰富的经验,这主要涉及到角色转变、流程优化以及敏捷方法的应用。首先,华为的QA角色发生了显著变化,从传统的警察式监督转变为教练式指导。在...

    华为项目管理方法理论IPD研发项目敏捷项目管理课件模板材料.zip

    华为-IPD模式VS敏捷项目管理模式.pptx 华为-IPD项目管理“六步一法”.ppt 华为-IPD项目管理培训材料.pptx 华为-PDT经理角色认知培训教材(87p).pptx 华为-《华为内部资料-成功的项目管理》.pdf 华为-客户重大项目...

    华为项目管理金种子培训教材全集(低、中、高级).zip

    在这个阶段,学员将探索如何在多个项目之间进行优先级排序和资源平衡,理解并应用敏捷项目管理理念,如Scrum或Kanban,同时强化作为项目经理所需的战略思考和领导力。 整个培训教材涵盖了PMBOK(项目管理知识体系...

    华为敏捷开发介绍

    华为敏捷软件开发解读 为落实敏捷软件开发在我司的顺利推行,使广大软件开发管理者和开发人员深刻领会敏捷核心理念,熟练掌握敏捷实践方法,从而达到增强应对需求变化的能力、提高产品质量、提升开发效率和缩短交付...

    华为敏捷开发介绍经典devops

    华为敏捷开发介绍,非常经典,值得学习。讲述敏捷转型的内在含义,分析企业现状,差距,如何转型,转型要求、步骤等

    项目管理全套:华为项目管理-敏捷项目管理-研发项目管理-PMI CMM3-PMO-软件项目测试等

    18敏捷项目管理 17 研发项目管理 05 研发项目立项 报告 04 研发项目立项管理 03 研发项目管理制度 02 研发项目奖惩制度 0 1 研发项目管理培训 16 PMI CMM3 15 项目管理讲座培训 14 华为 项目管理 13 PMO合集 12产品...

    华为项目管理机密-成功的项目管理

    《华为项目管理机密》是华为公司在其丰富的项目管理实践中提炼出的一套高效管理方法,对其他通讯公司乃至各类企业都有着重要的参考价值。这个压缩包包含了一份123页的PDF文档,详细阐述了华为在项目管理上的核心理念...

    华为培训-成功的项目管理(123页PDF)

    11. **敏捷项目管理**:可能涉及敏捷方法,如Scrum或Kanban,强调迭代开发和快速反馈循环。 12. **华为项目管理实践**:分享华为自身的项目管理流程、工具和案例,以展示实际操作中的最佳实践。 通过学习这份资料...

    敏捷项目管理

    它倡导团队协作、客户合作和灵活应对变化,其核心思想体现在《敏捷项目管理——如何改变软件思维模式》一文中,该文由钱安川在2011年的中国软件技术大会上进行分享。钱安川是腾讯搜搜研发管理组的领导,拥有超过五年...

    项目管理培训华为内部-公司精简版

    华为公司内部的"项目管理培训华为内部-公司精简版"是针对员工进行的一种专门训练,旨在提升项目管理的专业能力和效率。下面将详细阐述项目管理的核心流程,特别是启动阶段的重点内容,并结合实际案例探讨可能遇到的...

    华为公司实际的敏捷项目管理经验.pdf

    《华为公司的敏捷项目管理经验》 华为公司在项目管理领域有着丰富的实践经验,特别是在引入IPD(集成产品开发)和CMM(能力成熟度模型)后,实现了显著的提升。IPD的核心理念是“投资决策”和“市场驱动”,强调在...

    华为软件项目管理全过程文档模

    华为作为全球知名的ICT解决方案提供商,其在软件项目管理方面的实践具有极高的参考价值。这个“华为软件项目管理全过程文档模板”集合了华为在项目管理中的关键环节,为其他企业和个人提供了一个系统的指导框架。...

    华为培训-成功的项目管理

    在IT行业中,项目管理是一项至关重要的技能,尤其对于华为这样的全球科技巨头而言,高效、科学的项目管理是推动企业持续发展和创新的关键。本培训资料“华为培训-成功的项目管理”深入探讨了华为在项目管理方面的...

    成功的项目管理华为绝密培训资料

    【华为项目管理】是华为公司内部一套严谨且高效的管理方法,旨在确保项目的成功执行和卓越交付。这份"成功的项目管理华为绝密培训资料"包含了华为在项目管理领域积累的宝贵经验,是提升项目经理专业能力的重要参考...

    精选华为IPD流程管理体系需求管理项目管理产品研发流程评审要素学习参考资料(27份).zip

    华为的IPD模式VS敏捷项目管理模式.pptx 华为需求管理培训方案基于IPD思想-【76页】.pptx 基于IPD流程管理的研发体系(73页).pptx 研发项目管理(IPD流程管理 88页).pptx 研发项目管理—IPD流程管理(96页).pptx ...

    华为的项目管理体系建设.pdf

    华为的 CEO 郭平认为,公司的项目管理体系建设应与眼镜蛇的身体结构相似,即头部可以灵活转动,整个身体的行动十分敏捷,可以前后左右甚至垂直窜起发起攻击。 以项目为中心的根本诉求是要激发一线活力,提高运营...

    华为敏捷软件开发解读V1.01.ppt

    华为敏捷软件开发解读,可以全面了解华为成熟的敏捷开发实践,对使用敏捷开发有很好的帮助

    华为敏捷校园网解决方案设计.pdf

    【华为敏捷校园网解决方案设计】 华为敏捷校园网解决方案旨在应对高等教育机构网络的复杂性和独特需求。该方案的设计基于对当前校园网市场的深入理解和分析。在中国,教育信息化的投入不断增长,预计2015年教育信息...

    华为敏捷开发介绍华为敏捷软件开发解读V101.ppt

    华为敏捷软件开发解读V101.ppt是华为公司的一份关于敏捷开发的介绍文档,旨在提高软件开发管理者和开发人员对敏捷开发的理解和掌握。该文档涵盖了敏捷开发的概述、正确理解敏捷、我司敏捷开发实施策略、我司敏捷案例...

Global site tag (gtag.js) - Google Analytics