原文链接: mp.weixin.qq.com
今天和大家说一个互联网工作流中常见的问题,不管是 PM 还是开发、测试、设计、运营等等,都会涉及到,这就是 “X-Y问题”。
为什么我今天要写这个内容
之所以想起这个话题,起源于最近身边的学生遇到的一些面试问题:
- “请简单列举一下在以往的工作中有什么遇到的难点,如何解决?”
- “有没有总结过在以往工作中自己解决问题的一些方法论?”
- “在设计某某产品时,你觉得最难的是什么?最后怎么梳理完成的?”
...巴拉巴拉~ 看似很难回答的问题,但其实面试官问的中心点就两个:
- 一是看你有没有真实的工作经验,若没有,这是你很难编出来的故事;
- 二是通过你回顾以往的解决方式来判断你的各方面能力(产品重要的一些技能,比如沟通能力,分析能力,产品能力,管理能力等等...)
以及在入职做产品经理后,在我的互联网圈群里,朋友们经常吐槽 XX 开发就是想推卸责任,XX 领导就是个垃圾,XX 运营要看别人做了 XX 也要我们做 XX,请问 XX 怎么做?求支招~
太多的吐槽,其实总结来看大部分都是被称为 X-Y 问题(X-Y problem)
的矛盾映像。
X-Y problem到底是什么意思呢?
简单解释就是:
有人想解决问题 X,他觉得 Y 可能是 解决 X 问题的方法,但是他不知道 Y 应该怎么做,于是他去问身边的人 Y 应该怎么做?
热心的人会帮助并告诉他 Y 应该怎么搞,但是大家都觉得 Y 这个方案有点怪异。在经过大量地讨论深挖问题和浪费了大量的时间后,热心的人终于明白了原始的问题 X 是怎么一回事。于是大家都发现,Y 根本就不是用来解决 X 的合适的方案。
了解 X-Y problem 问题的基本概念后,大家回想一下,在工作中是不是经常遇到类似很让人恼火的问题,其原因正源于此,会让产品在一个根本错误的方向上浪费很多人大量的时间和精力!
针对上面说的面试问题,如何能更好的作答呢,这就是一个摆道理举例子的“药引子”了;
举例理解 X-Y 问题
我曾在工作中遇到太多的 X-Y 问题了,先来一个程序猿圈子里很简单的例子给大家感受一下:
👨💻程序员之猜猜猜
reasonml
实习生:我需要一些帮助工程师:说下去实习生:我该怎么取得字符串最后的 3 个字符呢?比如:applebee ➡️ bee工程师:用这个方法 str.subString(str.length - 3)实习生:好嘞!多谢工程师:你等会!你是不是要获取一个文件名中的扩展名?实习生:对呀!工程师:那你咋不直接问?!要是扩展名是 2 位或 4 位的怎么办?工程师:用 path.getExtension(filename) 解决工程师:下次记住啦,不要复杂化问题,直接问你要做的真正的问题!
以上是一段开发者直接很真实的对话,如果不是有经验的工程师主动询问,怕是又埋了一个大 bug 了。
🏃 产品经理之转转转
再举一个曾经在我带过的项目中,产品层面的一个 X-Y problem:
tp
该项目是一个软硬件结合的项目,硬件是在家庭客厅场景中使用的 TV 智能盒子,软件是我们团队开发的智能盒子里的平台系统。产品上线后,商务同学和运营同学都很给力,用户量上得很快,随之即来的问题就出来了,运营反馈用户问题“一旦在平台上下载的应用、游戏,或缓存的视频过多,就会导致应用商店或者游戏商店闪退,再也无法打开;唯一的解决方案就是重刷盒子,就等于让用户初始化系统,这对用户体验伤害很大”(X问题);而这个需求从运营给到我们的时候,变成了“TV盒子硬件不行,存储空间太少,用户下载的应用或者游戏经常运行不起来,请求产品部门去解决这个空间问题”(Y问题);当我们部门收到这个需求时,COO 很重视,所以开会中把需求给到产品部门的时候,也把底层开发的资源接口人和外接硬盘的厂家接口人都对接了;经历了近两个月无数个电话会议、视频会议、出差、数百个邮件沟通 -- 最终以嵌入式开发的 leader 总结为“与硬件接口对接难点太多,成本太高,做不了这个需求”而告终。但问题还存在,而产品部门的使命就是解决问题的呀,那就硬着头皮找源头,跟运营深入沟通需求时才挖出“X问题”的存在;用时一周完成了系统缓存限额预警规则以及系统实时显示内存状态的设计,嗯!软件层做两处小小的产品设计,就完美解决了用户体验的 X问题,nice吗?
更进一步找到 Z 问题
其实工作中太多这些事例,但若在面试中突然被问题可能需要大脑回忆、思考、总结才能有逻辑的描述案例;so 请各位童鞋像我课上说的那样,提前做好这些的准备,才能更有信心的展现自身能力哈;
作为产品经理,本性之一好奇心让我陷入沉思,为什么会有 X-Y problem的存在呢?
剖析于源头还是人性,等同于七宗罪里人性的“傲慢”;因为当人们问“简单的问题”时,他们会感到被轻视 -- 这也就是 Y 问题背后的 Z 问题了。
检查以下示例:
- X问题 "获取文件扩展名" vs. Y问题 "获取保证长度> 3的非空字符串的最后三个字符?"
- X问题 "今天会下雨吗?" vs. Y问题 "空气中降水和湿度密度的概率是多少?风速更大能影响降水的可能性吗?"
尤其在第二个示例中,通过询问复杂的问题,你将自己投入了更多的工作。问题是你可能无法仅使用这些参数来准确解决是否会下雨是否需要带雨伞。当然如果你关心细节,比如雨大还是雨小来判断是否带雨伞或者穿雨衣,那很好。但是,如果你关心的仅仅是否需要一把雨伞 ,请坚持使用简单的 X问题 来提出。