前言
Hi 你好,我是东东拿铁,一个正在探索个人IP&副业的后端程序员。
今天我想和大家聊聊我的一些想法:面对需求,界定问题,比解决问题重要100倍。
起因
事情的过程是这样的。
团队里最近来的新产品小伙,提了一个需求,因为用户的错误操作,我们需要提供一个类似于MVCC的回滚逻辑。
需求功能描述是这样的
增加取消xxx功能,对于xxx错的数据,可以取消,然后重新操作。
因为涉及到的表差不多有10多个,涉及到数据的删除操作,如果回滚的话,多表操作影响面比较广,需求描述也比较模糊,于是我和产品发生了一下对话
我:"为啥需要回滚?错误数据为什么会产生呢?"
产品:"用户误操作"。
我:"我们有列表,列表也有基础信息,为什么会误操作?"
产品:"需求方也没描述出具体场景,反正就说是误操作。"
我:"。。。。那你先去弄明白。"
产品一脸严肃的走了。
过了一会,产品又来了。
产品:"哥我知道为什么会误操作了。他们线下用纸手写交接信息,提供的信息有问题,导致用户无法对应某些数据,所以操作错了。"
我:"那这不是瞎搞吗,数据都没对应上,就去操作系统??"
我接着问:"那么有没有可能前置帮助他们解决数据不准确的问题呢? 有什么方案吗?"
产品:"还没想过。"
我:"。。。。。那要不咱再想想。"
产品又一脸严肃的走了。
大家有没有遇到过类似的场景呢?
What+Why+How思维模型
是什么
有一种思维模型叫What+Why+How思维模型。
- What:先搞清楚问题定义,界定问题比解决问题重要100倍。
- Why:为什么,起心动念是什么,目的是什么。
- How:最后才是方法论、怎么做。
其实大部分人,在做事情的时候,只关心How的部分,却忽视了问题的界定,不知道我们为什么做,为什么出发。
那对于我们程序员,怎么利用好What+Why+How的思维模型呢?
什么是产品
是什么构成了产品需求?
- 场景
- 用户
- 需要
- 公司提供的产品和服务
一个好的产品,应该具备哪些意识呢?
- 商业意识
- 用户意识
- 数据意识
我们只聊第二个,用户意识。
所谓用户意识,就是说做产品时,你要能挖掘出用户的真实需求,让产品有好的用户体验。这需要你要有同理心,能站在用户的角度去思考和体验产品。
大部分程序员可能更多的专注于程序上,大部分产品只专注于客户的要求的解决方案上,所以用户意识有所欠缺,开头的那个例子就很明显。
这个产品功能,细节没有定义清楚,只有短短20个字。我不主动提出,影响面不能够清楚定义,可能做出来的也不好用。
思考清楚,多提问题
当产品提出的需求缺少背景信息,不清楚解决了什么问题时,我们该怎么做呢?
在需求评审的时候,多问几个问题
- 这个功能的需求是什么?
- 我是否完全理解了需求?
- 如果你是这个功能的用户,你觉得还有哪些地方值得改进?
- 哪些方式可以帮助提升用户体验?
- 这个 API 用起来是不是好用?有没有更好的设计?
- 除了对产品的思考,日常工作中,遇到一些问题,也可以从产品思维的角度去想想。
完成方案梳理
回到开头的那个例子,面对这个需求,我最后的思路是怎么样的。
what(是什么)
用户因为误操作、功能不好用,导致数据被错误处理。
why(为什么)
功能的数据对应,因为牵扯到两个部门,所以在交接的时候,是线下用手写的方式,把数据从A部门给到B部门。
问题1:手写的方式,及其容易记错顺序,比如把1记成2,或者下一个该3了,但是写成了4.
问题2:工作人员下班,忘记交接,或者注意事项忘记嘱咐。
how(怎么办)
无论什么系统,都是有可能产生错误操作,或者形成错误数据的, 人工介入的成本,是无法避免的。
回滚操作,是一件投入产出比不高的事情,可能人工处理只需要花费10分钟时间,而且在前置做好校验的情况下,发生的概率很低。
那么如果这个功能需要花3天时间来研发,那么大家可以看出,研发人员投入的时间,可能在现场永远也节约不回来这些时间。
那么我们把线下手写信息的方式线上化,数据能够在平台上查看,当用户操作前,先根据线上信息去确认,然后在操作时,增加校验,假设数据存在问题,给予用户提示,让误操作的概率降低到最低。
说在最后
好了,文章到这里就要结束了,感谢你能看到最后。
最近看到AI代码生成的新闻越来越多了,已经可以提供交互,自动生成代码,并且也能有30%的采纳率。
为什么采纳率是30%?我觉着仅靠交互,AI是不知道what+why的,他只知道how。
如果我们也不去多思考思考,只一味的执行,那你说AI是不是真的就能把我们取代了。
不知道你是不是也有类似的经历呢?欢迎在评论区留言,也欢迎加我wx:Ldhrlhy10,一起交流~