X-Y PROBLEM
X-Y Problem
對于X-Y Problem的意思如下:
1)有人想解決問題X
2)他覺得Y可能是解決X問題的方法
3)但是他不知道Y應(yīng)該怎么做
4)于是他去問別人Y應(yīng)該怎么做?
簡而言之,沒有去問怎么解決問題X,而是去問解決方案Y應(yīng)該怎么去實現(xiàn)和操作。 于是乎:
1)熱心的人們幫助并告訴這個人Y應(yīng)該怎么搞,但是大家都覺得Y這個方案有點怪異。
2)在經(jīng)過大量地討論和浪費了大量的時間后,熱心的人終于明白了原始的問題X是怎么一回事。
3)于是大家都發(fā)現(xiàn),Y根本就不是用來解決X的合適的方案。
X-Y Problem最大的嚴重的問題就是:在一個根本錯誤的方向上浪費他人大量的時間和精力!
示例
舉個兩個例子:
Q) 我怎么用Shell取得一個字符串的后3位字符?
A1) 如果這個字符的變量是$foo,你可以這樣來 echo ${foo:-3}
A2) 為什么你要取后3位?你想干什么?
Q) 其實我就想取文件的擴展名
A1)我靠,原來你要干這事,那我的方法不對,文件的擴展名并不保證一定有3位啊。
A1) 如果你的文件必然有擴展名的話,你可以這來樣來:echo ${foo##*.}
再來一個示例:
Q)問一下大家,我如何得到一個文件的大小
A1) size = ls -l $file | awk ‘{print $5}’
Q) 哦,要是這個文件名是個目錄呢?
A2) 用du吧
A3) 不好意思,你到底是要文件的大小還是目錄的大小?你到底要干什么?
Q) 我想把一個目錄下的每個文件的每個塊(第一個塊有512個字節(jié))拿出來做md5,并且計算他們的大小 ……
A1) 哦,你可以使用dd吧。
A2) dd不行吧。
A3) 你用md5來計算這些塊的目的是什么?你究竟想干什么啊?
Q) 其實,我想寫一個網(wǎng)盤,對于小文件就直接傳輸了,對于大文件我想分塊做增量同步。
A2) 用rsync啊,你妹!
這里有篇文章說明了X-Y Problem的各種案例說明,我從其中摘出三個來讓大家看看:
你試圖做X,并想到了用Y方案。所以你去問別人Y,但根本不提X。于是,你可以會錯過本來可能有更好更適合的方案,除非你告訴大家X是什么。
— from Re: How do I keep the command line from eating the backslashes?
by revdiablo
有些人問怎么做Y,但其它他想做的是X。他問怎么做Y是因為他覺得Y是最好搞定X的方法。
于是大家不斷地回答“試試這個,試試那個”來幫助他,而他總是在說“這個有問題,那個有問題,因為……”。基本不同的情況,其它的方案可能會更好。
— from Re: Re: Re: Re: regex to validate e-mail addresses and phone
numbers by Limbic~Region
X-Y Problem又叫“過早下結(jié)論”:提問者其實并不非常清楚想要解決的X問題,他猜測用Y可以搞定,于是他問大家如何實現(xiàn)Y。
— from Pine.GHP.4.21.0009061210570.8800-100000@hpplus03.cern.ch by
Alan J. Flavell
其實這個問題在我之前的《你會問問題嗎》里提到的那篇How To Ask Questions the Smart Way中的提到過,你可以移步去看一下。
所以,我們在尋求別人幫助的時候,最好把我們想解決的問題和整個事情的來龍去脈說清楚。
一些變種
我們不要以為X-Y Problem就像上面那樣的簡單,我們不會出現(xiàn),其實我們生活的這個世界里有各種X-Y Problem的變種。下面是我個人覺得非常像XY Problem的變種:
其一、大多數(shù)人有時候,非常容易把手段當(dāng)目的,他們會用自己所喜歡的技術(shù)和方法來反推用戶的需求,于是很有可能就會出現(xiàn)X-Y Problem – 也許解決用戶需求最適合的技術(shù)方案是PC,但是我們要讓他們用手機。
其二、產(chǎn)品經(jīng)理有時候并不清楚他想解決的用戶需求是什么,于是他覺得可能開發(fā)Y的功能能夠滿足用戶,于是他提出了Y的需求讓技術(shù)人員去做,但那根本不是解決X問題的最佳方案。
其三、因為公司或部門的一些戰(zhàn)略安排,業(yè)務(wù)部門設(shè)計了相關(guān)的業(yè)務(wù)規(guī)劃,然后這些業(yè)務(wù)規(guī)劃更多的是公司想要的Y,而不是解決用戶的X問題。
其四、對于個人的職業(yè)發(fā)展,X是成長為有更強的技能和能力,這個可以擁有比別人更強的競爭力,從而可以有更好的報酬,但確走向了Y:全身心地追逐KPI。
其五、本來我們想達成的X是做出更好和更有價值的產(chǎn)品,但最終走到了Y:通過各種手段提升安裝量,點擊量,在線量,用戶量來衡量。
其六、很多團隊Leader都喜歡制造信息不平等,并不告訴團隊某個事情的來由,掩蓋X,而直接把要做的Y告訴團隊,導(dǎo)致團隊并不真正地理解,而產(chǎn)生了很多時間和經(jīng)歷的浪費。
所有的這些,在我心中都是X-Y Problem的變種,這是不是一種刻舟求劍的表現(xiàn)?
參考
- StackOverflow: What is XY Problem?
- PerlMonks: XY Problem
- Greg’s Wiki
轉(zhuǎn)載自: 酷 殼 – CoolShell
原作者: 陳皓
原文鏈接 : X-Y PROBLEM
總結(jié)
以上是生活随笔為你收集整理的X-Y PROBLEM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 执行maven clean packag
- 下一篇: 输入某年某月某日,判断这一天是这一年的第