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