摘要:随着云计算、大数据、AI智能等前沿科技的发展,传统的研发速度,越来越难满足企业快速发展的需求。研发效能也成了继商业模式、技术突破之后的另一核心竞争力。在由阿里云研发协同RDC以及阿里云联合举办的首届阿里巴巴研发效能嘉年华上,菜鸟测试专家、菜鸟网络双11项目PMO乐学为大家分享了菜鸟技术双11项目管理实践案例,266个项目,3大军团,覆盖近600多人的2016年菜鸟技术双11项目如何做项目管理?如何利用RDC的项目管理进行多层项目的透明化管理、如何双维度、逐层汇报做好风险控制,如何用电子看板和物理看板结合的方式,实现项目的完整沉淀,精彩内容不容错过。
直播视频点击观看
嘉宾简介:
于旭东,花名乐学,目前工作在阿里巴巴菜鸟网络工程效能团队,关注研发效能的改进和提升,同时带领PMO团队支持公司内部重大项目管理如双十一、双十二、年货节、618等,具有丰富的敏捷产品开发经验和项目管理经验;工作之余,个人积极参与杭州敏捷社区建设。
以下内容根据演讲嘉宾现场视频以及PPT整理而成
本次的分享主要将会围绕以下几个方面:
- 项目管理
- 双11项目组合管理挑战
- 项目组合管理透明可视化
- 研发效能度量
- 总结
一、项目管理
什么是项目呢?其实,项目就是为创造独特的产品、服务或成果而进行的临时性工作。在项目管理的角度存在一个经典的项目管理铁三角,这个铁三角由项目的范围、项目的时间进度、项目的成本以及项目的整体质量这些部分组成,而项目管理就是要在这四者之间寻找一个良好的平衡。
在进行项目管理的过程中通常会需要借助一些工具,有的项目经理比较喜欢使用像如下图所示的这样的Excel的工具。在这样的一张Excel表格中,表格的最上面可以介绍一下项目的一些基础的背景、负责人以及相关的时间情况;在Excel的左边则是把项目管理做了一定的拆分,拆分成为几个阶段或者几个大的任务,并且为每个任务指定了相关的负责人;在表格的右边则是项目的相关时间,这里会将项目整体进行情况的甘特图画出来;在表格的下面则会记录一些与项目相关的风险、问题、负责人以及成员的一些投入的情况。所以对于一些比较简单的项目,使用Excel就可以进行项目的管理。
而对于另外一些项目管理的同学而言,他们认为现在已经进入了敏捷开发的时代,所以需要更加强调如何才能更加敏捷地进行开发,并且需要更快地响应变化。下图所展现的就是在阿里巴巴自身的实践中某些团队采用的看板这样的项目管理方式,下图展现的是一个非常简单的看板,它主要分成了几个部分,第一部分是比较简单的BACKLOG,这里用于存放一些正在做的需求,之后的部分则是一些阶段,主要分为了开发、测试、验收和完成等。从横向来看,这个看板也主要分了几个部分:云平台、虚商二期以及其他等等,这样通过一个看板就可以知道整个项目的整体进展情况。
综上所述,对于简单的项目管理而言,使用一个Excel或者通过看板的模式就可以实现简单的项目管理了。
二、双11项目组合管理挑战
对于双11而言,所需要管理的就不再是一个个简单的项目了,而是很多项目的组合。这样的项目组合是为了实现阿里巴巴的战略目标而组合在一起进行管理的项目、项目集、子项目的组合以及运营工作的集合。而在菜鸟2016年的双11的项目组合里就包含了3大军团,一共有266个项目,并且总共涉及到600多个研发同学。
那么在这样的一个复杂的项目组合的情况下,又会面临哪些挑战呢?
第一个挑战:大家都知道双11有一个不可妥协的截止时间点,所以必须要保证所有的东西都能够在双11零点这个时间点之前高质量地上线。回想一下刚刚提到的项目管理的铁三角,它包括了范围、时间、成本和质量,那么对于双11而言,时间是固定的,人员基本上也是固定的,而对于阿里巴巴而言,我们一直强调产品的质量,所以唯一可以调整的东西就是项目的范围。可以说面对这样一个不可妥协的截止时间,我们需要进行范围的管理,区分出重点的项目和需求,给予不同项目或者不同需求以不同的优先级,并进行区别对待,同时必须要清楚地知道不同项目的进展情况,而这样的情况依赖于统一的里程碑进行管理,在后面也会分享如何使用RDC进行统一的管理。
第二个挑战:大家都知道双11这个项目组合所涉及的人和项目众多,并且结构非常复杂,刚才提到了有3大军团、266个项目涉及到600多个研发同学,同时还会涉及到很多的对外的合作伙伴,比如快递公司、仓储以及商家等等,总之涉及的人和项目非常多,而且结构非常复杂。所以需要进行信息的透明可视化,降低彼此的沟通成本,同时也能够给大家一个检视和调整的机会。
第三个挑战:在这样的一个情况下,项目如此之多并且时间不可妥协,那么整个项目中会充斥非常多的不确定性,这样就会涉及到很多的风险。这时候就需要涉及到需要进行风险的管理,那么在风险管理的时候和普通的项目可能不太一样,需要对于这些风险进行分级、分层以及分类。
第四个挑战:最后一个挑战就是过程经验不易沉淀,阿里巴巴经过这样几年的双11的挑战,自己也不乏一些非常有能力的项目管理的同学能将整个双11的相关项目管理的非常棒,但是还是很难将这样的项目管理的经验沉淀下来。如果能够将历年双11的项目组合管理经验沉淀下来,就能对于很多出现的问题在未来有一个更好的预防,我们希望能够借助流程规范的工具能够将经验流程沉淀下来。
那么面对这些挑战应该如何去做呢?还是使用Excel或者看板吗?在项目组合如此复杂的情况下,似乎很难去使用Excel或者看板帮助我们进行这样的复杂的项目的管理工作。
这时候我们就需要工具的帮助,借助项目管理工具将业务流程规范和工具化,能够将项目的信息透明可视出来,并且能够在这个过程中沉淀下研发效能的数据。
这个时候就要非常感谢阿里巴巴的RDC平台,从最开始需求的提出,到迭代计划和项目计划,到项目之间的合作以及风险的管理、以及任务的跟踪以及事后的反馈,RDC提供了一个一站式的项目管理的流程。在2016年的菜鸟双11项目中,就借用了RDC来帮助我们进行整个项目组合的管理,接下来也会详细介绍如何借助RDC平台实现组合项目的管理。
三、项目组合管理透明可视化
首先,因为菜鸟双11的项目组合涉及到266个项目以及600多个研发同学,而中国有句古话叫做“大事化小,小事化了”,当然对于双11这件事情是不能够化了的,但是可以把大事化小一些,所以当时也提出了一个“分而治之”的理念,也就是将266个项目分成了三大军团。第一个军团做业务项目,也就是对于来自于不同业务线的需求保证在双11零点的时候上线;另外一方面需要关注于系统的稳定性,谁都不希望在双11零点的时候系统出现任何故障影响大家的购物体验;除此之外还有一个军团称之为创新军团,我们都希望能够通过技术赋能商业,使得技术带来一些商业的价值,所以在创新军团里更多地是强调如何通过技术带来一些创新,使得业务更加高效,也为客户带来更高的价值。
这里更多的是关注于业务的项目,在下图中大家也可以看到,第一层就是业务项目的组合,即使是业务项目的组合的下面也会有非常多的项目,所以还进行了第二次拆分,基于业务领域进行拆分,比如菜鸟的业务分为仓配、快递、末端等等几大业务领域,在这个情况下做了业务领域的拆分,在这个基础之上又进行了进一步的对于子业务领域的拆分,这样的每个业务子领域大概会有十到二十个项目,这样就可以保证子领域是比较轻量化的,而最下面的一层就是具体的业务的项目。
当有了对于项目结构的清晰了解之后,就可以知道这里面包含了哪些项目,因为之前也提到了存在一个不可调和的截止时间点,所以必须要知道哪些才是需要重点关注的项目,那么可以通过打标这些重点项目完成对于它们的标识,这样在整个项目组合的进行过程中对于这些重点项目进行重点关注,并且保证这些项目在双11之前可以顺利上线。而在这部分的右边则可以看到项目的整体的健康度,可以根据风险情况或者需求的完成情况来进行评判,除此之外还有项目组合进度,这个项目组合进度如果标识为100%,那就意味着这个项目组合是全部完成的,比方说一个项目组合下面有10个项目,这10个项目都在开发阶段,那么就只能说项目组合进度为0%,因为没有一个项目完成,所以项目组合进度实际上是展示了项目完成的进度。上图中在最右边则是一个整体项目的风险情况和完成情况,这样就可以借助这样一个大的视图帮助我们掌控项目整体的进度和风险情况。
接下来分享在有了对于项目组合管理的整体概况之后,在往下看到具体的项目。其实可以通过刚才的页面进入到如下图所示的项目的具体页面。在项目的页面中就可以看到当前的这个项目的相关需求有哪些,这些需求的优先级是什么样子的,这些需求的状态是否是已经完成,对于每个项目而言需要确保在项目中高优先级的需求最先被完成。
在了解项目的相关需求之后,需要知道这些需求要通过一些拆解和任务分配被研发同学完成。于是在明确了项目需求的情况下,又做了项目任务的拆分,下图所展现的就是项目相关任务的看板,从左到右可以看到这些是一些待处理、处理中、已经完成和已经取消的一些相关任务,这样从项目的整体情况、项目需求再到项目的相关任务,就可以把整个双11所包含的一些项目、需求和任务做非常好的透明可视化出来,让关心这些的同学随时都可以获取到项目最新的信息。
在完成了范围的透明可视化之后,接下来分享一下如何使得整体的进度透明可视化。如果大家都使用不同的进度标识就会造成一些混乱,所以在整体的项目管理过程中使用了统一的项目里程碑。当创建一个项目的时候会使用一个标准的里程碑帮助将整个项目的里程碑创建起来。在这里主要包含了几块,主要有项目的开始、PRD评审、技术方案、提审、验收、项目发布以及项目回顾的完成,这样每个项目都可以及时地更新项目里程碑,通过项目的总体视图可以看到最新完成的里程碑的状况。这样就可以知道在某个时间点完成了多少个项目,有多少项目处于需求阶段,有多少项目处于开发阶段,有多少项目处于测试阶段,就可以使得项目的过程和进度透明可视化出来。
下图是项目组合统一里程碑的视图,在最上面是一个时间轴,最左边是一些项目的列表,可以在这些时间轴上看到相关的项目的进展情况。在下图上面可以看到一些标记为绿色的里程碑,这表明的是在这时间点这个里程碑已经完结,而红色的标识表明这些项目存在延期,已经超出了计划完成的时间,这样就可以一目了然地看到整体项目组合的进度情况。
因为整个项目组合非常复杂,所以也充满了很多的不确定性,那么就需要对于风险进行非常有效的管理,能够对于风险也做一个透明可视化出来。在这过程中,项目其实也进行了分层,从业务领域到项目,对于风险也进行了分层,从下图的最右边来看,首先会根据项目对于整个阿里巴巴集团、菜鸟集团、这条业务线以及这个项目的不同程度的影响来标识一个高中低的风险等级,并且所有的风险都是归属到一个项目中的,如图所示的这个风险就是归属到2016年双11的一个项目中的。
与此同时为什么要关联项目呢?这是因为在整个的研发过程中会发现有很多的风险其实存在于团队之间的依赖,那么如何能够很方便地让一个团队的同学知道自己这边的项目存在一个风险可能会依赖在对方的项目上呢?那么就可以在这风险里进行一些项目的关联,也就是比如说这个风险关联了三个项目,另外三个项目的PM或者项目组合领域的PM就可以知道有一个团队的风险在依赖自己,而且可以通过这个风险看到相关的项目以及相关的负责人,这样通过一个数据源就可以非常清楚地使得不同角色的人都看到这个风险。另一方面在风险透明可视化中还可以对于风险进行打标签,对于不同的风险需要采用不同的处理方式,比如对于依赖于其他团队的依赖风险而言,通常需要在向上一层进行一些协调。在这个过程中也会对于风险进行分层,也就是项目的风险可以在这个项目之内进行处理,那么这个风险就会停留在项目之内;但是如果这个风险在自己的项目中解决不了,那就需要向上升级,那么通过关联上一级的项目就可以将风险的等级进行提升;如果上一层发现这个风险也无法处理,那么就会继续上升,直到负责整个双11的PM来进行沟通和协调。那么这样就可以在不同的层级上看到不同的风险,不至于导致很多风险都放在同一个地方,这样通过风险的分级、分层和分类,能够使得不同层次的项目管理人员看到不同的风险,降低其他风险的干扰。在这个过程中还可以对于风险进行评论和修订,于是在整个过程中就可以对于风险的处理过程的经验沉淀下来,为未来的风险处理增加可以参考的经验,可以在未来想办法将这些风险更好地处理或者规避掉。
刚才谈到了具体的风险,下图所示的就是风险的整体视图,这个风险整体视图是与项目整体视图存放在一起的。通过这个视图就可以看到在不同的层次、不同的领域上有哪些风险,这些风险的情况又是怎样的,目前已经完成了多少风险,还剩余多少风险,剩余的风险有多少是高风险、中风险和低风险。这样就可以将项目的风险做一个非常好的透明可视化出来。
在了解了项目的进度、范围和风险这些事情之后,还需要了解到底谁需要对这些事情来负责,最开始需要知道这些项目、项目组合或者业务域的项目组合的负责人以及负责部门是什么样子的,也需要知道这个项目上的有哪些成员参与了哪些工作。
所以需要人员透明可视化,这时候也需要知道项目的这些需求到底是谁正在负责,这样遇到问题就可以直接找到相关的同学进行询问,可以非常方便地了解需求的进展情况。
另外一方面就是对于项目任务负责人的透明可视化,这样就可以方便项目的PM更好地把握项目的进度,通过提供如下图所示的这样一个看板就能了解当前的项目已经完成了多少任务,还剩余多少任务。
除此之外还涉及到项目风险,项目风险会分为风险的创建者和负责人,创建者并不一定是负责人,同时在项目里面还会有一个抄送人员。也就是对于风险而言,除了有创建者、负责人还需要将风险通知给一些相关的同学,这样在整个项目中,不同的人就会收到不同的信息,并且对于这些不同信息进行一定的反馈,而最终需要有一个人对于这些信息进行负责。
四、研发效能度量
在双11这个过程中菜鸟做了这么多的项目,也希望能够在整个过程中有一些研发效能的度量,希望能够实现一些数据化的驱动。在研发过程的效能度量分为了几个部分,第一个是结果数据,另外一个是过程数据。在结果数据里会主要关注几个方面:质量、效率和业务。首先来讲一下业务,业务包含了两个指标,第一个就是项目目标的达成率,另外一个就是项目资源的有效率。为什么关注这两个指标呢,其实是因为不希望在花了很多力气而做了很多没有业务价值的项目,希望把有限的精力放到更有价值的项目上去,所以需要关注项目的目标是否达成,在这些目标达成的项目上又投入了多少资源,这些资源占整体的情况又是什么样子的,用这些指标来评判一下,希望能够更加快速地交付业务价值,而不仅仅是需求和产品。
更进一步研发效能的度量会关注到研发的内部,研发内部的度量更加关注的质量和效率,也就是研发效能。对于质量而言,更加关注的是故障总数,比如说当一个产品上线之后,客户那边反馈回来的问题是哪些,通过这个可以了解产品整体的线上的质量情况是什么样的,没有人会希望交付给客户的东西是无法使用的。另外一方面关注的是研发的效率,研发效率主要有几个指标:第一个就是需求完成率,这指的是从业务方接收了很多需求,其中有多少已经完成,用其中已经完成的需求除以整体的需求数量来表示整体的需求完成率,这样的指标能够反映出完成业务方的需求的速度如何。第二个指标则是人均需求数,也就是在这个过程中希望能够看到团队的能力在不断增强,人均能够完成的需求数量也越来越多,这个指标评定的是研发做了多少需求。第三个指标就是需求周期,也就是业务方从提出需求到需求真正上线的周期是多长时间,也就是表明了能够以多快的速度完成业务方的需求。总而言之,在研发过程中希望“多快好省”地完成业务需求并且保证这些业务需求是真正有价值的,这就是结果数据的作用。
另一方面则包含了一些过程数据,过程数据在不同的团队或者不同的公司有不同的过程数据点。菜鸟在这里主要关注这样的几点:第一点是质量,也就是在研发过程中有多少个Bug,包括了多少个低级Bug以及提测的通过率情况。在效率方面则会关注两个部分,第一就是需求和测试周期在整个项目周期中的占比情况,这样就可以知道在整体的项目周期中的瓶颈到底出现在什么地方,针对于所发现的瓶颈实现研发效能的整体提升。希望最终能够对于研发的效能进行度量,然后通过研发的数据化驱动整个研发效能的提升。
五、总结
在对于像菜鸟双11这样有3大军团、266个项目、涉及到600多个研发同学,并且存在不可妥协的时间点,信息沟通非常复杂,充满了不确定性,并且过程经验不易沉淀的情况下,怎样来通过工具以及RDC将项目流程规范化、工具化下来,并且沉淀出项目组合管理经验都是一个很大的挑战。通过项目组合,通过管理透明可视化,通过范围、进度、人员以及风险的透明可视化能够将这些信息开放出来,能够提供一个调整和检视的机会,在这个过程中也可以通过使用工具将整个研发效能的数据能够沉淀下来,并且将研发效能能够进一步数据化。而在研发效能数据化中包括了结果和过程数据,也包括了质量和效率以及业务,通过这样的工具能够帮助我们将项目组合管理做得更好。
最后稍提一句,双11是一个非常复杂的项目,以上的分享只介绍到了一点,也就是如何通过RDC等工具将项目流程规范化、透明可视化并且将其数据化下来。当然仅仅依靠工具是不可能解决所有的问题,最终还是需要让正确的人使用这些工具去做对的事情。