XY Problem 会阻碍沟通,对解决真正的问题造成困扰,那什么是 XY Problem?原文: The XY Problem
什么是 XY 问题?
XY 问题是关于正在尝试的解决方案,而不是实际的问题。无论是对于寻求帮助的一方,还是提供帮助的一方,这都会造成大量时间、精力的浪费。
- 用户想做 X。
- 用户不知道怎么做 X,但觉得如果能做到 Y,就能摸索出解决方案。
- 用户也不知道怎么做 Y。
- 用户请求对问题 Y 的帮助。
- 其他人试图帮助用户解决 Y,但却感到困惑,因为尝试解决 Y 似乎是个奇怪的问题。
- 经过大量互动和浪费的时间后,终于发现用户其实需要 X 方面的帮助,而 Y 甚至不是对 X 的合适解决方案。
当人们被自认为的解决方案卡住,无法退一步完整解释问题时,问题就出现了。
怎么办?
- 在提供任何尝试过的解决方案时,请始终包含更广泛图景的信息。
- 如果有人询问更多信息,一定要提供细节。
- 如果已经排除了其他解决方案,分享为什么排除,这会提供更多关于需求的信息。
记住,如果你的诊断理论是准确的,就不会寻求帮助了,对吧?
示例
示例 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",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!