“天下武功,唯快不破”,这句话用在互联网世界里尤其合适。互联网产品模型强调快速迭代和小步骤,业务和协作团队的快速变化是常态。但是,为了保证每个需求的执行不失控,成本和风险可控,项目质量在一个研发周期内得到保证,除了为产品写需求文档,为产品写代码,开发和改BUG,写测试用例和BUG报告验证,通常还有很多很重要很细节的事情要做,比如:项目经理创建需求沟通组,组织站会,产品manager写在线通知通知运营和客服人员等,有些工作是重复性的,需求相关的信息也是比较性的。很多,通常散落在各个地方,以后很难找到。对于PMO和开发组长来说,需要在多个需求并行的情况下,快速发现某些高风险的需求,并重点关注和推进。如何提高需求执行效率,降低并发需求管理成本?本文将分享马蜂窝教九PMO团队如何通过自研PMO系统驱动流程管理,降低项目管理的人力成本。Part.1背景介绍马蜂窝交通和酒店研发团队采用双周PK、双周迭代的模式。为了促进高效透明的研发过程,团队在成立初期就建立了使用工具管理研发项目全周期的方法。经过比较,最终选择TAPD作为产研过程的管理工具,主要是因为TAPD具有配置和操作简单、支持移动办公、项目间隔离性强等优点。1.1需求状态及分类需求分为日常、项目和在线问题三类。目前TAPD的“需求”功能主要用于管理需求,“迭代”功能用于管理迭代。日常需求迭代周期为2周,项目需求迭代周期为4周。日常和项目需求有以下九种状态:图1:需求状态1.2PMO日常1.组织项目实施线下R&D过程实际上是一个巨大的矩阵图。横轴代表需求的9个阶段,纵轴代表5个不同的角色——项目经理(PM)、产品经理、开发、测试、PMO,矩阵图明确规定了一个需求在不同阶段不同角色应该做什么.当需求处于不同的状态时,五个不同的角色有很多琐碎的事情要做,比如:准备阶段:当状态为“待执行”时,PM需要建立一个企业微信群,负责相关的工作人员实现及时的信息交流。开发阶段:进入“开发中”后,PM需要每天组织一次站会,并将站会纪要发送到需要的企业微信群。测试阶段:到达“测试”后,测试需要每天向企业微信群发送测试报告。上线后:需求状态变为“在线”后,产品经理需要发送上线通知邮件;当切换为“在线效果跟进”时,产品经理需要发送在线效果跟进邮件。其中很多事情都是重复性很强的工作,比如拉微信群。上述不同的信息,由于生成时间不同,同步方式不同,也会非常分散。有的是通过邮件,有的是微信群,以后很难找到。2.项目质量控制对于PMO、开发经理和开发总监,他们需要同时管控多个并行需求的执行质量,需要能够快速获取项目执行中的风险,例如:每天站会有哪些项目没通过交流,需要在企业微信群里一一搜索,和TAPD里的需求进行对比。如果有延期测试或上线的需求,需要在TAPD中一一查找项目的测试和上线状态,非常繁琐,容易遗漏。除了需求的落地和多个需求的并行管控,产品经理还需要向上级汇报本周的线上需求,每个业务线每周都有需求线上。多条业务线、多位责任人,使得周报的收集和汇总工作量非常大。有时难免漏掉一些内容,不能保证在固定时间发送。1.3PMO系统设计目标基于上述需求管理、风险控制和日常工作中存在的问题,交九PMO团队规划并实现了PMO系统,以高效实现需求从实施到上线的全过程管理。PMO系统的主要目标和定位如下:所有与信息需求相关的信息都在TAPD中统一录入和管理,包括站会纪要、测试日报、在线公告等。支持多条业务线,可配置不同业务线、不同业务线对应的邮件群、企业微信群的迭代开始时间和迭代周期。提高流程效率,包括自动创建企业微信群、查询台站会议纪要、测试日报等信息从TAPD发送到企业微信群,从TAPD查询网上公开信息并自动发送邮件等。并行的需求管理和风险管理。知识沉淀和管理,包括流程文档、PM知识分享等。向上汇报,多个业务线的产品经理在TAPD填写不同需求的上线通知后,系统会自动汇总所有线上需求和上线通知本周,定期向业务总经理发送周报。Part.2主要功能及实现2.1总体设计PMO系统将流程管理与PMO理论相结合,基于TAPDAPI和企业微信API获取远程数据进行项目数据扩展,可同时支持多条业务线的项目流程管理。PMO系统的核心是关键信息的收集和高效处理。具体来说,各业务条线将在项目实施的不同阶段通过创建企业微信群实现实时沟通和管理。一般可分为以下几类:短期群——需求企业微信群:需求变为“待执行”后创建,需求去后一定时间后可解散。在线的;小组成员包括需求的产品经理和产品组长,开发人员和开发组长,测试人员和组长,研发总监;以下简称“需求群体”。长线群——双周PK企业微信群:本业务线所有开发组长及所有产品参与PK会;以下简称“双周PK团”。另外,我们把每个业务线的邮箱群分为两个群:研发群和产品群。所有需求相关信息均由需求相关人员录入TAPD,PMO系统自动从TAPD中拉取信息并进行处理。PMO系统主要分为数据采集和数据处理两部分。总体流程图如下:图2:PMO系统流程图2.2主要功能实现PMO系统实现的功能主要包括:1.实施过程的管理和风险控制,实现迭代管理和需求管理2.向上管理,拉取一定时期内多个业务线的需求,定期向业务负责人发送周报3.数据支撑,按项目、迭代、季度、人员维度统计工时4.知识沉淀与管理,包括流程文档化、PM知识分享等,下面我们来看具体的实现方式。2.2.1实施过程管理实施过程的管理主要分为迭代管理和需求管理。迭代管理主要是帮助PMO和管理者管理并发需求和风险控制,而需求管理则着重于提高需求实施过程的效率。1.迭代管理(1)需求PK前后信息汇总刚开展PK会议时,一些参与PK的需求很晚才录入TAPD,参与者对参与PK的需求不是很了解.PK会议讨论需求,最长的PK会议甚至持续了3个小时。为了解决这个问题,PMO系统采用启动数据采集定时任务的方式,通过TAPDAPI统一获取PK类型的需求,定时发送到“PendingPK”需求列表中在PK前一天的下午,帮助参与PK会议的开发,测试人员尽早了解这些需求,提高PK会议的效率。并且规定一定时间后还没有进入TAPD的需求,将不再参加PK会议,以促使产品人员尽快明确自己的需求。图3:发送“PendingPK”需求消息流程图图4:发送“PendingPK”需求列表消息示例PK会议召开后,晚上8点。“待实施”需求汇总消息发送至“双周PK群”,发送格式为“需求名称|产品经理名称|优先级”。两次PK会议之间,除未决实施需求、偶发特殊需求、线上问题修复外,不再接受其他需求。图5:发送“待实施”需求消息流程图图6:发送“待实施”需求列表消息示例(2)在总结迭代需求进行中的进度前当并行需求较多时,需要检查TAPD一一了解整体执行情况,将需求和任务执行情况与计划时间进行对比。这个过程很耗时。因此,每周五晚6点,PMO系统向业务线的研发组&产品组发送邮件,向业务线的“双周PK组”发送消息,询问进度和延迟不同业务线的迭代需求。协助PMO和经理快速识别风险并取得有针对性的进展。图7:需求进度汇总流程图图8:每周需求进度汇总消息图9:每周需求进度汇总邮件2、需求管理主要有以下三类功能:自动创建企业微信群,自动同步消息,自动提示事项通过电子邮件进度详述如下。(1)自动创建企业微信群双周PK过后,PMO系统调用企业微信API,为每个待实施的需求自动创建一个企业微信群,并将群名修改为需求名称-PMXX-PDYY,节省PM创建微信群和邀请人加入的时间;需求状态变为“开发中”后,群组名称会自动更改,预计测试时间和预计上线时间会增加。图10:微信群图(2)自动发送消息和邮件PMO系统通过定期扫描所需评论,识别评论消息中的关键字,自动发送站会总结消息、延期风险邮件、在线通知邮件、每日测试报告和测试报告ETC。为了将所有需求相关的信息都放在TAPD中,方便后期查询,实现一些操作的自动化,PMO系统定义了一些需求评论模板,相关人员根据模板填写所有需求相关信息进行评论,PMO进行预定的数据采集系统任务每15分钟扫描一次需求评论,识别出模板中的关键词后,发送各种消息和邮件。目前共处理6类关键词:站会纪要(项目经理录入)、测试日报(测试人员录入)、测试总结(测试人员录入)、延误风险(项目经理录入))、在线通知(由产品经理录入)和在线跟进效果(由产品经理录入)。需求状态变为“开发中”后,项目经理在需求备注中填写站会纪要,PMO系统每天早上自动发送站会纪要消息;需求状态变为“测试”后,测试人员填写测试日,每晚自动发送“测试日”;当需求状态为“开发中”和“测试中”时,如果项目经理填写“延迟风险”,则会自动发送延迟风险邮件;需求状态变为“在线”后,产品经理在需求评论处填写在线通知,PMO系统会自动发送在线通知邮件。图11:信息收集和处理(3)项目进度自动提醒一个技术方案设计完成需求评审后,需要利用Wiki文档和TAPD中的任务功能对开发和测试进行调度,然后PM需要sendtheschedulingtable将其复制到电子邮件中并发送电子邮件给相关人员。复制过程重复且耗时。基于这些问题,PMO系统通过TAPD中的需求状态流,实现了KickOff邮件、测试邮件、超时控制消息等的自动发送。该类需求流程图如下图所示:图12:需求状态变更及风险控制当需求变更为“开发中”时,PMO系统会自动拉取该需求的任务计划并发送启动电子邮件。如果超过迭代周期,则需要进行特殊的审查过程。需求转移到“测试”,PMO系统会自动发送测试邮件。图13:启动邮件示例当需求未提交测试或未按时上线时,PMO系统会向需求组和双周PK组发送延迟测试和延迟启动的消息;当任务没有按时完成时,PMO系统会发送加班未完成消息给需求组和双周PK组,方便PM和TL进行风控和针对性处理。如果需求上线2周后未填写“线上效果跟进”,PMO系统会向需求组和双周PK组发送超时后未跟进线上效果的消息,提醒产品经理跟进线上效果。图14:加班提醒2.2.2向上管理为了省去产品经理周末整理本周线上内容,协调不同业务线产品经理写周报的工作,PMO系统将本周拉到6点:每周五晚上00发邮件给业务负责人,汇报本周需求的进度和每个需求的上线效果。图15:在线总结2.2.3数据统计经常有人问PK会时,一次迭代有多少需求合适?R&DTL也经常从需求实施效率的角度关注需求实施的效率。目前需要多少人日完成对于一个项目需求,未来的目标是减少多少人日完成一个相同规模的项目需求?PMO系统支持项目需求迭代统计、季度统计,为总监级人员决策提供数据支持。图16:数据统计2.2.4知识积累和管理团队经常有新血液加入,PMO流程向全员宣讲的频率还比较低,因此在PMO系统中增加了一些项目流程的基础知识,以方便新人熟悉流程,加快流程实施。图17:知识沉淀2.3实现效果PMO系统分为3个阶段,均已上线。综上所述,目前取得的主要效果是:信息统一汇总到TAPD后,所有人员都可以方便的在TAPD中查询到所有与需求相关的信息,包括评论、站会纪要、测试日报、测试报告、在线通知、在线效果等。PMO系统提取所有需求的风险并发送到微信群,协助PMO和管理者关注某些高风险的需求。自动发送KickOff邮件、测试邮件、stand-upmeetingminutes,总结提示需求和任务延迟风险,可以节省PM大量时间。自动汇总本周所有上线的所有需求和通知,并发送周报给业务总负责人,节省大量产品经理写周报的时间。帮助开发人员自动发送测试邮件,帮助测试人员自动发送测试日报和测试报告。知识积累功能帮助PM和新人尽快熟悉流程,互相学习。Part.3未来规划通过应用PMO系统,高效实现需求从实施到上线的全过程管理,充分利用资源,实现项目高效化。在PMO系统运行和推广的同时,我们也在收集用户反馈,优化系统。同时,DevOps系统也在交通业务中得到了开发和落地。DevOps体系涵盖了需求从开发中到上线的四种状态:目前延迟测试或延迟上线的风险预警依据主要来自于“实际时间”与“预测时间”的对比,其中“actualtime”通过PM手动维护TAPD状态变化后,填写“测试时间”、“实际在线时间”等信息。后续的DevOps系统会与TAPD对接。例如,开发在DevOps系统中转为“拟议”或“在线”后,需求在TAPD中会自动变为“拟议”和“在线”,减少人工填写不确定因素,PMO系统在时会更加准确计算延迟测试和延迟启动的需求。我们相信,未来随着PMO系统与DevOps的对接,以及与TAPD等外部工具的更深层次的对接,我们的项目管理会变得更加高效,研发流程也会更加敏捷。
