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",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

目录
相关文章
|
负载均衡 Dubbo 应用服务中间件
Docker Overlay网络的一些总结
在早期的docker版本中,是不支持跨主机通信网络驱动的,也就是说如果容器部署在不同的节点上面,只能通过暴露端口到宿主机上,再通过宿主机之间进行通信。随着docker swarm集群的推广,docker也有了自家的跨主机通信网络驱动,名叫overlay,overlay网络模型是swarm集群容器间通信的载体,将服务加入到同一个网段上的Overlay网络上,服务与服务之间就能够通信。
1251 0
Docker Overlay网络的一些总结
|
数据采集 存储 架构师
上进计划 | Python爬虫经典实战项目——电商数据爬取!
在如今这个网购风云从不间歇的时代,购物狂欢持续不断,一年一度的“6.18年中大促”、“11.11购物节”等等成为了网购电商平台的盛宴。在买买买的同时,“如何省钱?”成为了大家最关心的问题。 比价、返利、优惠券都是消费者在网购时的刚需,但在这些“优惠”背后已产生灰色地带。
|
缓存 Kubernetes 数据安全/隐私保护
k8s1.18多master节点高可用集群安装-超详细中文官方文档
k8s1.18多master节点高可用集群安装-超详细中文官方文档
|
边缘计算 Kubernetes 物联网
Kubernetes 赋能边缘计算:架构解析、挑战突破与实践方案
在物联网和工业互联网快速发展的背景下,边缘计算凭借就近处理数据的优势,成为解决云计算延迟高、带宽成本高的关键技术。而 Kubernetes 凭借统一管理、容器化适配和强大生态扩展性,正逐步成为边缘计算的核心编排平台。本文系统解析 Kubernetes 适配边缘环境的架构分层、核心挑战与新兴解决方案,为企业落地边缘项目提供实践参考。
716 0
|
人工智能 小程序 搜索推荐
分享5款让电脑更加有趣的小工具
介绍几款实用电脑小工具,提升工作学习效率:1) EmEditor,高效文本编辑器,支持大文件处理和语法高亮;2) QTTabBar,增强版Windows文件管理器,提供多标签页操作;3) 3171.cn,在线AI工具箱,集多种办公学习工具于一身;4) CrystalDiskInfo,硬盘健康监测,预防数据丢失;5) Deskreen,屏幕共享软件,适用于远程协作。推荐大家根据需要自行搜索下载使用。
606 1
|
机器学习/深度学习 存储 自然语言处理
使用Python实现深度学习模型:语言翻译与多语种处理
【7月更文挑战第21天】 使用Python实现深度学习模型:语言翻译与多语种处理
721 0
|
Android开发 C++
so兼容32位和64位
在Android开发中遇到32位`xxx.so`动态库在64位设备上运行失败的问题,导致应用崩溃。错误提示因缺少64位版本的库。尝试创建`arm64-v8a`目录并复制库文件后,依然崩溃,因为库本身是32位。解决方案是在`build.gradle`中添加配置,指定支持的ABI滤镜,并在`gradle.properties`中设置`android.useDeprecatedNdk=true`,以解决兼容性问题。
935 7
|
前端开发 API
nuxt.config.js 配置
我们在使用Nuxt.js提供的create-nuxt-app 创建项目后,更希望对它自定义一些东西,这里我们可以在根目录下找到nuxt.config.js
447 7
|
存储 开发框架 网络协议
深入了解Java中的嵌入式开发
深入了解Java中的嵌入式开发
501 0
|
存储 缓存 移动开发
前端开发中常用的存储方法(带解析)
前端存储方法包括Cookie、localStorage、sessionStorage、IndexedDB和已废弃的WebSQL。Cookie用于存储小量数据,每次请求时发送到服务器,可设置过期时间。localStorage和sessionStorage都是HTML5提供的,前者数据永久存储,后者会话关闭后清除。IndexedDB是存储大量结构化数据的数据库,支持索引和事务。WebSQL已废弃,但部分浏览器仍支持。Cache Storage用于缓存响应,提高离线访问性能,通过Service Worker控制。