当我们的研发团队组织架构搭建完毕后,接下来需要思考的是,如何让这个架构跑起来、跑得快、跑得稳。此时,我们需要定义出一个高效的研发流程,还要尽可能降低研发过程中所遇到的风险,确保在流程的每个环节中都不能出错。
在定义具体的研发流程之前,我们需要从整体入手,先把研发流程体系架构定义清楚,便于让团队从全局上把控整个过程。接下来需要从局部入手,将研发流程中所涉及的操作步骤罗列出来,便于指导团队完成具体的工作。
现在我们就从整体开始,对研发流程的体系架构进行探讨。
研发流程体系架构
高效的研发过程应该具备“多线程”的特性,仿佛多条并行流淌的河流,上游是业务,中游的是产品,下游是技术,流量取决于业务,流速取决于产品和技术。
需要说明的是,这里的“业务”其实包括两类人:一是公司内部使用产品的业务同事,二是公司外部使用产品的最终用户。为了便于描述,下文统一将他们称为“业务需求方”或“业务方”,简称“业务”。
根据我的上篇文章可知,整个研发工作流程体系架构是职能团队与项目团队的有机结合,团队职责清晰且协作高效(如图 1 所示)。
图 1:研发流程框架图
在职能团队中,产品委员会的产品专家们将业务需求统一记录到“需求池”中。需求池中的每一个需求都要描述业务的当前现状,还要包括业务对产品的未来期望。每隔一段时间(一般是 1~2 周),产品委员会将根据需求池中所记录的需求细节加以讨论,并将优先级较高的需求进行立项和排期,项目团队可知晓近期需要实现的业务需求是什么,整个团队的方向感也更加清晰了。
需求池中一个典型的需求可包括以下字段:
需求名称:用一个关键词描述,最多 15 个字。
需求来源:该需求来自于哪里?包括业务、运营、财务、法务、市场、其他。
业务痛点:为何要实现该需求?即业务当前的现状。
需求描述:该需求具体是什么?即业务将来的诉求。
渴望程度:期待何时可以上线?包括:本周、本月、下月、本季度、下季度、未来、或具体截止日期。
需求类型:包括:新功能(从 0 到 1)、优化(从 1 到 100)。
需求规模:包括:大(两周以上)、中(一至两周)、小(一周以内)、未知。
备注:可写下对该需求的补充或疑问,以便深入交流。
附件:可通过相关文档对需求进行补充描述。
创建人:该需求被谁创建?
处理状态:包括:未处理(默认)、处理中、已处理、关闭。
优先级:包括:A(重要 & 紧急)、B(重要 & 不紧急)、C(不重要 & 紧急)、D(不重要 & 不紧急)、X(待定)。
负责人:该需求由谁跟进?
简单情况下,可使用电子表格的方式来维护需求池,比如:Numbers、Excel 等,当然也可通过在线方式来管理,比如:石墨文档、金数据等。
需要注意的是,需求池对公司全员共享,由产品委员会管理并维护,其他人员只能阅读但无法编辑。产品专家们首先需要和业务需求方进行有效沟通,深刻理解他们的业务痛点与未来期望后,才能将这些需求入池。
从需求池中挑出的高优先级需求将分别“流入”对应的项目团队中,在项目的执行过程中难免会遇到技术上的遗留问题,然而团队不希望因为这些问题而导致项目工期受到影响。因此,这些技术遗留问题将被列为“技术债”,技术委员会中的技术专家们将对这些技术债加以管理和跟踪,在后期会有针对性地解决这些技术问题,偿还这些技术债。
了解了研发流程体系架构后,下面我们进入具体的研发流程操作步骤。