You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
9.8 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 第15讲 | 定制高效研发流程
当我们的研发团队组织架构搭建完毕后,接下来需要思考的是,如何让这个架构跑起来、跑得快、跑得稳。此时,我们需要定义出一个高效的研发流程,还要尽可能降低研发过程中所遇到的风险,确保在流程的每个环节中都不能出错。
在定义具体的研发流程之前,我们需要从整体入手,先把研发流程体系架构定义清楚,便于让团队从全局上把控整个过程。接下来需要从局部入手,将研发流程中所涉及的操作步骤罗列出来,便于指导团队完成具体的工作。
现在我们就从整体开始,对研发流程的体系架构进行探讨。
## 研发流程体系架构
高效的研发过程应该具备“多线程”的特性,仿佛多条并行流淌的河流,上游是业务,中游的是产品,下游是技术,流量取决于业务,流速取决于产品和技术。
需要说明的是,这里的“业务”其实包括两类人:一是公司内部使用产品的业务同事,二是公司外部使用产品的最终用户。为了便于描述,下文统一将他们称为“业务需求方”或“业务方”,简称“业务”。
根据我的上篇文章可知,整个研发工作流程体系架构是职能团队与项目团队的有机结合,团队职责清晰且协作高效(如图 1 所示)。
![](https://static001.geekbang.org/resource/image/5b/9d/5b3dcf013499bbdd21ef7a2dc003809d.png)
图 1研发流程框架图
在职能团队中,产品委员会的产品专家们将业务需求统一记录到“需求池”中。需求池中的每一个需求都要描述业务的当前现状,还要包括业务对产品的未来期望。每隔一段时间(一般是 1~2 周),产品委员会将根据需求池中所记录的需求细节加以讨论,并将优先级较高的需求进行立项和排期,项目团队可知晓近期需要实现的业务需求是什么,整个团队的方向感也更加清晰了。
需求池中一个典型的需求可包括以下字段:
需求名称用一个关键词描述最多15个字。
需求来源:该需求来自于哪里?包括业务、运营、财务、法务、市场、其他。
业务痛点:为何要实现该需求?即业务当前的现状。
需求描述:该需求具体是什么?即业务将来的诉求。
渴望程度:期待何时可以上线?包括:本周、本月、下月、本季度、下季度、未来、或具体截止日期。
需求类型:包括:新功能(从 0 到 1、优化从 1 到 100
需求规模:包括:大(两周以上)、中(一至两周)、小(一周以内)、未知。
备注:可写下对该需求的补充或疑问,以便深入交流。
附件:可通过相关文档对需求进行补充描述。
创建人:该需求被谁创建?
处理状态:包括:未处理(默认)、处理中、已处理、关闭。
优先级包括A重要&紧急、B重要&不紧急、C不重要&紧急、D不重要&不紧急、X待定
负责人:该需求由谁跟进?
简单情况下可使用电子表格的方式来维护需求池比如Numbers、Excel 等,当然也可通过在线方式来管理,比如:石墨文档、金数据等。
需要注意的是,需求池对公司全员共享,由产品委员会管理并维护,其他人员只能阅读但无法编辑。产品专家们首先需要和业务需求方进行有效沟通,深刻理解他们的业务痛点与未来期望后,才能将这些需求入池。
从需求池中挑出的高优先级需求将分别“流入”对应的项目团队中,在项目的执行过程中难免会遇到技术上的遗留问题,然而团队不希望因为这些问题而导致项目工期受到影响。因此,这些技术遗留问题将被列为“技术债”,技术委员会中的技术专家们将对这些技术债加以管理和跟踪,在后期会有针对性地解决这些技术问题,偿还这些技术债。
了解了研发流程体系架构后,下面我们进入具体的研发流程操作步骤。
## 研发流程操作步骤
将需求转化为项目,是一个复杂的过程,如果只是一个体系架构,恐怕也只是空中楼阁,因此我们有必要对整个研发流程体系架构进行细化,为其设计具体的操作步骤,以便让整个流程可以顺利落地。
我们可定义了以下 10 个操作步骤,将需求转化为产品,将产品转换为项目,将项目顺利上线(如图 2 所示)。
![](https://static001.geekbang.org/resource/image/bc/49/bc69a1e8c1a0f59d05ad425c5f7d4349.png)
图 2研发流程操作图
以上 10 个阶段,涉及到不同角色的人员,每个阶段需要包含当前所需完成的任务,也涉及到相关例行会议。我们可将这份操作步骤打印下来,发给每一位研发人员,并贴在会议室的墙壁上,每日站立会的时候,团队都能看得见它。我们会慢慢发现,每个项目团队都有相同的工作习惯,大家还可不断优化这份操作步骤以及其中的相关细节。
需要注意的是,产品经理在需求调研阶段,必须了解业务的当前现状,搞清楚业务痛点是什么?我们不妨这样做业务调研:如果没有这项功能,业务同事需要花多长时间、多少人力来完成自己的工作?当前的获客成本是多少?订单转化率是多少?产品经理需要将这些信息和数据记录下来,并丰富到需求池中。此外,在每次启动项目之前,需要得知该执行项目的目标是什么?如何来验证这个目标?
我们需定期对已上线项目进行复盘,可通过“复盘四步法”来完成:
审视目标:当初设定的目标是什么?目前达成的现状是什么?差异是什么?
回顾过程:回顾整个过程是如何进行的?大致分为几个阶段?每个阶段发生了什么?
分析得失:哪些方面做得好?哪些方面做得不好?为什么?
总结规律:再次做同类事情应该怎么做?对未来工作有何指导?有何规律、原则、方法论?
使用以上项目流程与复盘方法,可确保以正确的方法将事情做正确。但是,只能解决研发内部的闭环问题,似乎无法解决研发和业务之间的外部闭环问题,也就是说,研发和业务之间的高效协作问题还需进一步探讨。
## 研发与业务如何协作?
这个问题也许在许多企业中会存在,毕竟业务和研发的工作性质不同,关注点也不同,因此考虑问题的方式也会不同。
业务心中可能会这样认为:为何我们提出的需求,研发总是迟迟不解决?
研发心中可能会这样认为:为何我们上线的功能,业务总是迟迟不反馈?
我们似乎遇到了一个“死锁”问题,彼此都在等待对方。业务提出需求,得不到及时响应;当研发响应后,却得不到反馈。久而久之,业务和研发之间会失去信任,从而严重影响企业的可持续发展。
这里我向大家介绍一种新玩法,它能让业务和研发得到更好的闭环,而且让双方的协作过程变得更加顺畅。我们称这个方案为“特赞之声”(如图 3 所示)。
![](https://static001.geekbang.org/resource/image/b3/b2/b30a8efa8832346f59b2c47b2e6393b2.jpg)
图 3特赞之声
在公司内部,我们制作了一种叫做“特赞币”的虚拟货币,其实它只是普通的磁铁,币上贴了一个自制的图案而已。我们给业务部门发放固定数量的特赞币,为了避免“通货膨胀”现象,我们一次性不会发太多币,后期可根据实际情况适当增发。
当业务部门遇到痛点时,可在痛点卡片上手动填写具体痛点,并用特赞币将卡片固定在白板上。此时需要消耗一个或多个特赞币,如果一次性使用多个币,表示优先级更高。项目上线后,当业务部门提供使用反馈后,将得到一个特赞币,提出的反馈包括对已有功能的称赞或吐槽。
也就是说,提需求要“花钱”,提反馈可“赚钱”,这样可确保业务所提需求都是最大痛点,由于币数是固定的,因此需要通过提反馈来获取新币,这样研发和业务自然就建立了有效循环。
除了痛点和反馈以外,公司全员也可以提出脑洞,也就是对产品的奇思妙想,脑洞被产品委员会采纳后,可赠送一定数量的特赞币。痛点会使用特赞币将其吸附在白板上,反馈和脑洞可使用普通磁铁来固定。
使用特赞之声,我们得到了以下收益:
业务人员:业务痛点得到更好的重视,得以更快速地解决。
研发人员:产品价值得到更好的体现,产生更高的成就感。
彼此双方:业务与研发不再孤立,从而形成了完美的闭环。
## 写在最后
没有人愿意在一个复杂的流程上投入自己更多的时间,流程是帮助我们更规范地做事情,目的是避免犯错误。因此,在流程的定义上,我们可以先简单后精细,简单才便于操作,精细才易于管理。
以上我们提到的研发流程十步骤,对于大家而言只是一个参考模型,大家需要根据自身实际情况,作出合理调整,流程才能发挥出最大的作用。否则,它可能会变成一种负担,反而约束了我们前进的速度。
研发流程是团队的行动规范,是大家共同智慧的沉淀,流程高效,产出才能高效。
_**作者简介**_
黄勇现任特赞科技tezign.comCTO图书《架构探险》作者Smart 开源项目作者,[TGO鲲鹏会](http://tgo.geekbang.org)上海分会董事会成员QCon 讲师。十年以上互联网软件架构与技术管理经验,擅长敏捷开发,推崇“轻量级”架构思想。喜欢阅读,热爱交流,乐于分享。