1 分钟搞懂什么是 XY 问题

简介: 1 分钟搞懂什么是 XY 问题

XY Problem 会阻碍沟通,对解决真正的问题造成困扰,那什么是 XY Problem?原文: The XY Problem

什么是 XY 问题?

XY 问题是关于正在尝试的解决方案,而不是实际的问题。无论是对于寻求帮助的一方,还是提供帮助的一方,这都会造成大量时间、精力的浪费。


  • 用户想做 X。
  • 用户不知道怎么做 X,但觉得如果能做到 Y,就能摸索出解决方案。
  • 用户也不知道怎么做 Y。
  • 用户请求对问题 Y 的帮助。
  • 其他人试图帮助用户解决 Y,但却感到困惑,因为尝试解决 Y 似乎是个奇怪的问题。
  • 经过大量互动和浪费的时间后,终于发现用户其实需要 X 方面的帮助,而 Y 甚至不是对 X 的合适解决方案。


当人们被自认为的解决方案卡住,无法退一步完整解释问题时,问题就出现了。

怎么办?

  1. 在提供任何尝试过的解决方案时,请始终包含更广泛图景的信息。
  2. 如果有人询问更多信息,一定要提供细节。
  3. 如果已经排除了其他解决方案,分享为什么排除,这会提供更多关于需求的信息。


记住,如果你的诊断理论是准确的,就不会寻求帮助了,对吧?

示例

示例 1

n00b 实际上不想要文件名中的最后 3 个字符,而是想要获取文件扩展名,为什么要问最后 3 个字符?


<n00b> How can I echo the last three characters in a filename?
<feline> If they're in a variable: echo ${foo: -3}
<feline> Why 3 characters? What do you REALLY want?
<feline> Do you want the extension?
<n00b> Yes.
<feline> There's no guarantee that every filename will have a three-letter extension,
<feline> so blindly grabbing three characters does not solve the problem.
<feline> echo ${foo##*.}

复制代码

示例 2

如果 Angela 一开始就解释她想防止别人发现她的操作系统,可能讨论会更短、更有成效。


Angela: 'nmap -O -A 127.0.0.1' returns some lines starting with 'OS:'. How to change it?
Obama: Look in the sourcecode for nmap, find how it figures out the Linux part, then rewrite your TCP/IP stack to not operate in a way nmap can detect.
Angela: Yeah, but I don't know about linux system api at all.
Obama: Well, nmap's fingerprint is based on the way the TCP/IP stack works, there's no real way except to rewrite the appropriate parts of said stack.
Angela: I really need to avoid these messages. Can iptables do this work?
Obama: Well, don't use OS detection or version scanning
Angela: I want to prevent others from knowing the type of my OS

复制代码




你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

目录
相关文章
这一篇让你彻底搞懂贝塞尔曲线
贝塞尔曲线不懂画?不知道怎么回事?看这一篇就够了!用图形,点曲线运动图和公式推导,让你彻底搞懂贝塞尔曲线的运行原理!
2078 0
这一篇让你彻底搞懂贝塞尔曲线
|
1月前
|
机器学习/深度学习 算法
让星星⭐月亮告诉你,HashMap之tableSizeFor(int cap)方法原理详解(分2的n次幂和非2的n次幂两种情况讨论)
`HashMap` 的 `tableSizeFor(int cap)` 方法用于计算一个大于或等于给定容量 `cap` 的最小的 2 的幂次方值。该方法通过一系列的无符号右移和按位或运算,逐步将二进制数的高位全部置为 1,最后加 1 得到所需的 2 的幂次方值。具体步骤包括: 1. 将 `cap` 减 1,确保已经是 2 的幂次方的值直接返回。 2. 通过多次无符号右移和按位或运算,将最高位 1 后面的所有位都置为 1。 3. 最终加 1,确保返回值为 2 的幂次方。 该方法保证了 `HashMap` 的数组容量始终是 2 的幂次方,从而优化了哈希表的性能。
33 1
一文搞懂:关于laplacian坐标的编译
一文搞懂:关于laplacian坐标的编译
|
5月前
|
Web App开发 移动开发 前端开发
程序员必知:【Canvas与数学】幂函数y=x^3的图像
程序员必知:【Canvas与数学】幂函数y=x^3的图像
54 2
|
5月前
一文搞懂:三角形的余弦定理
一文搞懂:三角形的余弦定理
56 0
|
6月前
|
机器学习/深度学习 算法
面试题 01.07:旋转矩阵
面试题 01.07:旋转矩阵
31 0
|
6月前
|
算法
面试题 01.08:零矩阵
面试题 01.08:零矩阵
26 0
|
监控 数据可视化 Java
Matrix原理分析系列之开篇
Matrix原理分析系列之开篇
473 0
Matrix原理分析系列之开篇
numpy的使用说明(六):一招帮你彻底搞懂axis=0和axis=1
numpy的使用说明(六):一招帮你彻底搞懂axis=0和axis=1
numpy的使用说明(六):一招帮你彻底搞懂axis=0和axis=1