产品文档烂成渣:研发如何自救?

391 阅读10分钟

研发这四年来给老板和外界部门的体感不太理想,开发速度慢、返工多、功能模块不能复用。

造成问题有以下原因:

  1. 老板需求紧急,给的交付期限非常有限,最后担心做不完交付质量受影响。
  2. 产品思考不深入,写的文档不具体,只是简单传达需求。
  3. 研发专注于业务代码,技术架构考虑不足,扩展性、维护性都有待提高。

站在各自角度,我能分析他们这么做的原因和面临的困境。

  1. 老板:市场是变化的,必须快速做出响应,要的东西越快越好。
  2. 产品:这是产品能力有限,产品思维不足,做事深度不够,不能把老板脑子里抽象的概念具象化,交付给研发更完善的产品文档。
  3. 研发:基于产品文档实现功能,问题是文档质量不高,产品层面就要不停的返工,业务细节更是模棱两可,要研发自己猜测,时间都用在推测老板需求上,猜错了就返工代码上,没有时间想技术架构。

每方都有的局限,如何破局?我结合最近的项目聊聊我的做法,这也是一个任务众包项目,老板希望我们结合 AI 从 0 做一套任务协作系统,包含 H5 和 Admin,交付周期 7 天。

原始流程

  1. 产品以众包平台为核心写了个背景文档和产品文档,AI 痕迹明显,可用信息不多。
  2. 老板、产品、研发一起开会过这个背景和文档,讲了很多不够具体的内容,上万行的文档,一次会议就过完了,没有评审、拆任务环节,只知道交付周期 7 天。
  3. 研发没办法,条件反射的问那要做什么东西,分了几个抽象的领域,开始写代码。
  4. 写的时候业务流程一点不知道,AI 写什么就是什么。

2 天后我们做完了 Admin 后台功能,但只保证了从前端接口到后端服务器的调用,没有业务逻辑。

我对这个过程非常困惑,这样做出来的东西,真的是老板想要的吗?他真实的目的是什么?

于是我放下来代码,从背景开始,重新思考整个流程。

优化流程

核心目的

首先我要搞清楚,我们做项目的目的。

背景中只说明了当下的市场情况,没有对做事目的阐述,结合之前开的会,老板提到希望借用项目让我们在未来做 SAAS 平台时提效,同时这个项目想嵌入到 SAAS 中成为能力的一部分。

到这里有两个目的

  1. 使用 AI 给产研提效。
  2. 做个任务协作项目未来嵌入 SAAS。

还要更深度的思考一下,核心目标是什么,如果只能留一个目的,要留哪个?

最核心的目的只有一个,其他是由这个目标分散出来。不会既要又要。

所以核心目的是让产研学会使用 AI 提效,而且任务协作项目,只是手段,用于为目标提供案例。

那如何向老板证明我们达成了目的?是把任务协作系统做好吗?

我觉得不是,把任务协作系统做好,是 AI 提效的结果。

AI 提效需要重新设计 AI 嵌入后的工作流程,每个步骤 AI 怎么提效,即下面这张图。

flowchart TD
    %% 后端流程节点 - 左侧主线
    背景["背景<br>(产品主+AI辅)"]
    业务架构["业务架构<br>(产品主+AI辅)"]
    后端功能["后端功能<br>(产品+后端+AI)"]
    数据库设计["数据库设计<br>(后端主+AI辅)"]
    接口文档["接口文档<br>(产品+后端+AI)"]
    后端代码["后端代码实现<br>(AI主+后端辅)"]
    
    %% 测试流程节点 - 右中侧
    测试["测试流程<br>(测试+AI)"]
    
    %% 前端流程节点 - 右上侧
    UI图["UI图<br>(产品+UI+AI)"]
    前端页面["前端页面<br>(AI主+前端辅)"]
    
    %% 主线连接 - 垂直流向(后端流程)
    背景 --> 业务架构
    业务架构 --> 后端功能
    后端功能 --> 数据库设计
    数据库设计 --> 接口文档
    接口文档 --> 后端代码
    
    %% 测试连接 - 直角连接避免交叉
    业务架构 -..-> |测试流程| 测试
    接口文档 --> |测试流程| 测试
    
    %% 前端连接 - 直角连接避免交叉
    业务架构 -..-> |前端流程| UI图
    UI图 --> 前端页面
    
    %% 前后端对接 - 直角连接避免交叉
    接口文档 --> |前后端对接| 前端页面
    
    %% 布局调整
    %% 把后端代码放在接口文档下方
    %% 把前端页面放在接口文档右侧
    %% 把测试放在UI图前面
    
    %% 样式设置
    classDef 人主导 fill:#FFE6CC,stroke:#D79B00,stroke-width:1px;
    classDef 后端 fill:#DAE8FC,stroke:#6C8EBF,stroke-width:1px;
    classDef 前端 fill:#D5E8D4,stroke:#82B366,stroke-width:1px;
    classDef 测试 fill:#E1D5E7,stroke:#9673A6,stroke-width:1px;
    
    %% 样式应用
    class 背景,业务架构 人主导;
    class 后端功能,数据库设计,接口文档,后端代码 后端;
    class UI图,前端页面 前端;
    class 测试 测试;
    
    %% 连接线样式 - 后端流程线
    linkStyle 0,1,2,3,4 stroke:#6C8EBF,stroke-width:1.5px;
    %% 测试虚线
    linkStyle 5 stroke:#9673A6,stroke-width:1.5px,stroke-dasharray: 5 5;
    %% 测试实线
    linkStyle 6 stroke:#9673A6,stroke-width:1.5px;
    %% 前端虚线
    linkStyle 7,8 stroke:#82B366,stroke-width:1.5px,stroke-dasharray: 5 5;
    %% 前后端对接线 
    linkStyle 9 stroke:#D79B00,stroke-width:1.5px;

这是我最终把流程打通后画的图,具体每个步骤的细节不多赘述。

分析到这种地步,才算把目的分析透彻。

产品业务

背景中大致业务流程是,创业者需要找人帮忙做事,大学生有时间,我们要做个通用的任务众包平台链接他们。

粗略一看好像很简单也很具体,我们之前的需求也类似这样,实际上这就是个初步的想法,具体细化一下场景,全都不确定。

我们研发向老板反馈产品文档不够完善、不清晰不具体,老板总会反过来问我们产品哪里做的不好,这其实是对研发比较大的挑战,这相当于在教产品怎么做产品。

往往研发说不出具体问题,又会被老板责备,那我今天就以这个项目为例,演示下我们研发期望的产品是怎样的,我是怎么做的。

调研

我调研了市面上任务众包平台,猪八戒网、一品威客、闲鱼、BOSS直聘、青团社,每个平台都注册了发单方、接单方,至少体验一次接发单流程。

只要做到这一步,再回头看之前写的业务流程,就知道有多不具体和模糊。

业务边界

盈利模式

这里每一家平台的盈利模式都不一样。

青团社是纯给发单方卖流量,不做订单和交易。

闲鱼以订单交易手续费为主,默认 0.6%,超过 1万元限额或 10 单,超出的部分额外收取 1%。

并且闲鱼做担保能力非常强,他直接和支付宝联动,钱不需要走三方平台支付提现,直接在支付宝做冻结。

BOSS 直聘比青团社更优秀,他不仅卖发单方流量,还卖接单方流量,而且在流量之上,他还卖服务、数据。

如果我要做个任务协作平台,靠什么盈利?

系统体系有订单、资金,所以我做的线上业务,和闲鱼类似,靠手续费盈利。

那能不能模仿线下类型的卖流量呢?

闲鱼没有直接买卖流量入口,只能通过内部的虚拟货币兑换流量,只有老用户、日活高的用户才能获取更多虚拟货币,闲鱼的内部流量非常稀缺,他们不做可能是出于平台某些目的,比如维护流量整体平衡、维护老用户利益等,而不仅仅是盈利方面的考虑。

所以未来后期做大了,可以尝试卖流量、服务、数据,现阶段只通过的交易手续费、提现手续费盈利。

用户

用户是谁?从哪来?用户有什么特征?

调研中有的平台发单方是大企业,接单方是服务商;有的是发单方是企业主、小企业,接单方是个人;而像闲鱼,发单方和接单方几乎都是个人的。

后来了解到这个项目最开始给我们公司内部使用,发单方是我们自己,接单方是兼职人员,未来对外开放,还提到兼职人员愿意接受较低的单价。

所以我理解我们最开始发单方是微小企业,接单方是个人,跟青团社类似,未来发单方可能发展到有个人,比如工作室,所以在用户模块要保留下扩展性。

如果我们能构建一批兼职接单方,我们就有资格反向要求发单方,比如保证金、认证费、门槛费等。这和市面上常见的发单方市场不同,他们平台做各种妥协吸引发单方,比如一品威客承诺验收满意再付款。

任务和订单

这就更加丰富多彩了,调研显示每家平台都不一样。

有的是服务商打包商品类型售卖;有的对任务做了各种分类,发单方自行选择发布;有的有悬赏、计件、投标交易模式,会影响后续订单流程;有的是用一下担保平台,随便写点什么两个人就交易了。

结合上面说的,我们是先做个给自己用,那我得去调研下我们自己会发布哪些任务,比如找人剪视频、代运营等。

代运营的场景很特殊,可能还需要接单方缴纳押金,要设计到流程中,剪视频是计件付费。

还有没有其他交易方式?我需要找公司内部发单方聊聊,问一问他们还有哪些任务类型,现在是怎么解决的。

要划分任务和订单的边界,我需要更多信息。

资金

调研中有的有钱包,有的没钱包,主要是订单支付和余额钱包支付区别。

余额钱包的研发工作量、代码复杂度、对账难度比订单支付大,这两者对发单方来说他们更倾向哪一种?我觉得更倾向于余额钱包,但引入余额后发单流程的支付也会跟着调整。

我需要调研自身业务的发单方,获取更多信息,判断余额钱包是否核心诉求。

其他

合法合规、财务税务、违规行为防范、运营成本、沟通成本(不像淘宝可以不建联直接下单)、任务匹配度、客服成本等等,这是众包平台都会面临的问题,先有个概念,后续做增量的时候要考虑到。

总结

以上是我在做任务协作项目思考的过程。

现在再回头看背景中提到的业务流程「创业者需要找人帮忙做事,大学生有时间,我们要做个通用的任务众包平台链接他们。」,还觉得清晰具体吗?

研发面临大量的业务模棱两可的情况,比如

  1. 发单方和接单方共用一个账户吗?金额可以互转吗?
  2. 付款在发布任务时还是接单后?
  3. 任务和订单的边界在哪里?
  4. 任务的状态机,订单的状态机,他们两个状态如何对应?
  5. 订单售后和仲裁如何设计?能否在完单后发起?
  6. 任务是否需要进行中和订单联动?

任何看似模棱两可怎么做都行的情况,一定是没想好,想到一定程度,就会发现缺少信息,要再去获取更多信息。

比如我最开始思考付款在发布任务还是接单后?看似都可以,于是我想对比下两者区别,发现对比不出来,因为缺少任务更具体的边界。

所以我去问老板我们的用户是谁?他们会发布什么任务?

得知我们要先做给自己内部人发任务用,我要去调研自己人会发什么任务,才能分析出两者区别,再做决策。

综合看来这句话非常非常关键,把广泛的、通用的众包系统,聚焦到具体行业,以兼职人员为接单方,企业为发单方的任务协作平台系统。

这些本该产品梳理的场景,到研发执行阶段全部爆发,代码已经写了一部分,不得不返工重新思考场景,产品也想的不深刻,随意给一个方案,最后系统存在漏洞,一旦出问题,研发负责。

这就是研发的困境,我们对产品的期望是能解决所有业务上模棱两可的场景,能有理有据的说明为什么这么设计。