程序猿遇上這樣的產(chǎn)品狗,會(huì)怎么辦?反正我想死!

我們先來(lái)看個(gè)段子:

去飯店,坐下來(lái)。

“服務(wù)員,給我來(lái)份宮保雞丁!”

“好嘞!”

——————這叫原始需求

大廚做到一半。

“服務(wù)員,菜里不要放肉。”

“不放肉怎么做???”

“不放肉就行了,其它按正常程序做,不就行了,難嗎?”

“好的您稍等”

——————中途需求變更

廚房:

大廚:“你大爺,我肉都回鍋了”

服務(wù)員:“顧客非要要求的嘛,你把肉挑出來(lái)不就行了嗎”

大廚:“行你大爺”

然而還是一點(diǎn)點(diǎn)挑出來(lái)了

——————改動(dòng)太大,部分重構(gòu)

餐廳:

“服務(wù)員,菜里能給我加點(diǎn)腐竹嗎?”

“行,這個(gè)應(yīng)該簡(jiǎn)單。”

——————低估改動(dòng)成本

廚房:

大廚:“你TMD,不知道腐竹得提前泡水?炒到一半才說(shuō)?跟他說(shuō),想吃腐竹就多等半天”

服務(wù)員:“啊你怎么不早說(shuō)?”

大廚:“早說(shuō)你MLGB我怎么知道他要往宮保雞丁里放腐竹”

然而還是去泡腐竹了

——————新需求引入了新研發(fā)成本

餐廳:

“服務(wù)員,還是把肉加回去吧”

“您不是剛說(shuō)不要肉嗎”

“現(xiàn)在又想要了”

“...好的您稍等”

——————某一功能點(diǎn)搖擺不定

廚房:

大廚:“日你啊,菜都炒過(guò)火了你讓我放肉?還好肉我沒(méi)扔”

服務(wù)員:“客戶提的要求你日我干嘛?”

大廚:“你就不能拒絕他?。堪??”

服務(wù)員:“人家是客戶嘛?!?/p>

——————甲方是大爺

餐廳:

“服務(wù)員!服務(wù)員!”

“來(lái)了來(lái)了,你好?”

“怎么這么半天???”

“稍等我給您催催啊”

——————改動(dòng)開(kāi)始導(dǎo)致工期延誤

廚房:

大廚:“催你M催,腐竹沒(méi)泡好,我還得重新放油,他要想吃老的也行,沒(méi)法保質(zhì)保量”

——————開(kāi)發(fā)者請(qǐng)求重新排期

餐廳:

服務(wù)員:“抱歉,加腐竹的話得多等半天,您別著急哈”

“我靠要等那么久?我現(xiàn)在就要吃,你們能快點(diǎn)嗎?”

“行...您稍等”

——————甲方催活

廚房:

大廚:“我日他仙人板板,中途改需求又想按期交付,逗我玩呢?”

服務(wù)員:“那我問(wèn)問(wèn),要不讓他們換個(gè)菜?”

大廚:“再換我就死了”

——————開(kāi)發(fā)者開(kāi)始和中間人PK

餐廳:

“服務(wù)員,這樣吧,腐竹不要了,換成蒜毫能快點(diǎn)嗎?對(duì)了,順便加點(diǎn)番茄醬”

——————因工期過(guò)長(zhǎng)再次改動(dòng)需求

廚房:

大廚:“我日了狗啊,你TM不知道蒜毫也得焯水?。窟€有你讓我怎么往熱菜里放番茄醬?。??”

服務(wù)員:“焯水也比等腐竹強(qiáng)吧,番茄醬往里一倒不就行了嗎?很難嗎?”

大廚:“草。腐竹我還得接著泡,萬(wàn)一這孫子一會(huì)又想要了呢?!?/p>

——————頻繁改動(dòng)開(kāi)始導(dǎo)致大量冗余

餐廳:

“服務(wù)員,菜里加茄丁了沒(méi)有?我去其它飯店吃可都是有茄丁的”

“好好好您稍等您稍等”

——————奇葩需求

廚房:

大廚:“我去他二大爺他吃的是斯里蘭卡三流技校炒的宮保雞丁嗎?宮保雞丁里放茄?。??”

服務(wù)員:“茄丁抄好了扔里邊不就行了嗎?”

大廚:“那TM還能叫菜嗎?哪個(gè)系的?”

服務(wù)員:“客戶要,你就給炒了吧。”

大廚:“MB你順道問(wèn)問(wèn)他腐竹還要不要,我這盆腐竹還占著地方呢不要我就扔了”

——————奇葩你也得做

餐廳:

“服務(wù)員,還要多久能好啊”

“很快,很快...”

“再給我來(lái)杯西瓜汁?!?/p>

“...好”

“我再等10分鐘,還不好我就走了,反正還沒(méi)給錢?!?/p>

“很快,很快...”

——————黑暗前的最后黎明

10分鐘后

“咦,我上次吃的不是這個(gè)味?。俊?/p>

從廚房殺出來(lái)的大廚:“我TM就日了你的狗...”

——————最終決戰(zhàn)——————

你=客戶

服務(wù)員=客戶經(jīng)理+產(chǎn)品經(jīng)理

大廚=碼農(nóng)

請(qǐng)自行轉(zhuǎn)換...

注:以上場(chǎng)景已極度夸張,實(shí)際生產(chǎn)生活中碼農(nóng)和PM是和睦友好的相親相愛(ài)的一家人


圖片來(lái)源網(wǎng)絡(luò) ? 產(chǎn)品汪你的眼神有淡淡的憂傷


編程語(yǔ)言,它終歸是一門語(yǔ)言,只是它的使用者是電腦軟件和硬件。產(chǎn)品經(jīng)理和程序員對(duì)于需求理解的思維體系、語(yǔ)言體系、語(yǔ)言上下文環(huán)境不同。

比如這個(gè)需求:一包中華45元,產(chǎn)目經(jīng)理給你50元,讓程序員去買包煙把找的5塊錢拿回來(lái)。

產(chǎn)品經(jīng)理覺(jué)得非常簡(jiǎn)單,一句話的事。

而對(duì)于程序員而言:

50元是不是假錢?

如果不是假錢,去哪買煙?

如果去西安買煙,西安賣煙的地方關(guān)門了?是回去給產(chǎn)品經(jīng)理說(shuō)賣煙的地方關(guān)門了還是一直找,直到找到一個(gè)沒(méi)有關(guān)門的賣煙的地方?

如果這里的一包中華是40元,或者一包中華是50元,買不買?不管多錢都買?還是征求產(chǎn)品經(jīng)理同意后再買?

怎么判斷買的煙不是假煙?還是不管真假買了一包中華就算?

買了之后是郵寄給項(xiàng)目經(jīng)理?還是自己給帶回來(lái)?還是讓順道的同事給捎回去?

如果買回來(lái)買的是50元一包的中華,產(chǎn)品經(jīng)理嫌貴了怎么辦?

如果買回來(lái)的是40元一包的中華,是給產(chǎn)品經(jīng)理退5元錢還是給他退10元?

如果產(chǎn)品經(jīng)理一定要45元的中華怎么辦?

如果產(chǎn)品經(jīng)理突然不想要這煙了,讓你退回去怎么辦?

如果賣煙的人不退怎么辦?

如果產(chǎn)品經(jīng)理讓你退了重新在別的地方買一包怎么辦?

如果賣煙的老王退了,但是再?zèng)]有別的賣煙的地方了怎么辦!

如果又找到一個(gè)賣煙的地方,并且一包中華也是45元。帶給項(xiàng)目經(jīng)理。項(xiàng)目經(jīng)理聽(tīng)說(shuō)你是從西安買的,他要抽北京買的煙怎么辦?

......

你會(huì)發(fā)現(xiàn)問(wèn)題沒(méi)完沒(méi)了。

這會(huì)你可能會(huì)說(shuō)程序員太死腦筋。錯(cuò)!產(chǎn)品經(jīng)理所說(shuō)的,中華45元,給你50元,買完找5元。這句話是建立在一系統(tǒng)上下文語(yǔ)境,人類生活習(xí)慣,生活常識(shí)當(dāng)中的。產(chǎn)品經(jīng)理的潛臺(tái)詞是說(shuō)找最近的有賣煙的買一包45的不是假煙的中華煙,找的五塊錢給我。

而對(duì)于程序語(yǔ)言,還是開(kāi)頭那句話:編程語(yǔ)言是一門語(yǔ)言,它的使用者是軟件和硬件。對(duì)于計(jì)算機(jī)而言,它沒(méi)有情感,不理解人類的這一系統(tǒng)語(yǔ)言環(huán)境,生活習(xí)慣,生活常識(shí)。它只嚴(yán)格按照它的語(yǔ)言規(guī)則,編譯原理一步一步,老老實(shí)實(shí),絲毫不露地往下執(zhí)行。如果沒(méi)有分歧,一切妥當(dāng)。如果有分歧,完蛋了。人類千百萬(wàn)年來(lái)進(jìn)化形成的臨機(jī)應(yīng)變,相機(jī)行事等等這些本能,計(jì)算機(jī)及編程語(yǔ)言一丁點(diǎn)不具備。它就認(rèn)準(zhǔn)程序員寫的程序,就乖乖地聽(tīng)你程序,指哪打哪。所謂的人工智能也只是程序員把每一種可能,人類面對(duì)問(wèn)題所會(huì)面對(duì)的問(wèn)題事先寫好程序語(yǔ)言錄入進(jìn)計(jì)算機(jī)。如果意外在之前所料之中,程序完美執(zhí)行,如果意外所料不及,那就是BUG,就是錯(cuò)誤。而這些BUG和錯(cuò)誤都要程序員去一點(diǎn)一點(diǎn)補(bǔ)充產(chǎn)品經(jīng)理所謂“需求”之外的所有潛臺(tái)詞。

這是在需求確定的情況下,如果程序員正在買煙的路上,產(chǎn)品經(jīng)理打電話說(shuō),剩下5塊錢回來(lái)再買瓶水。那之前所有的邏輯程序員又得再執(zhí)行一遍。如果產(chǎn)品經(jīng)理過(guò)一會(huì)又打電話說(shuō)再買個(gè)面包。。。那就折騰死程序員了。

從需求方面說(shuō)完,再?gòu)某绦騿T編碼實(shí)現(xiàn)方面來(lái)說(shuō)。還是剛才的需求:產(chǎn)品經(jīng)理給程序員50元,讓買一包45元的中華煙,找回來(lái)5元錢。

程序員一聽(tīng),程序里面寫死了,從線路1去西大街,買完煙再沿線路2返回。但是中途產(chǎn)品經(jīng)理說(shuō)你再買點(diǎn)零食回來(lái)。程序員傻眼了?。?!得,只能程序重新設(shè)計(jì),從線路2出發(fā)。

試想,從初中開(kāi)始學(xué)英語(yǔ),初中三年,高中三年,大學(xué)四年,十年下來(lái),有幾個(gè)人能面對(duì)外國(guó)人說(shuō)一口標(biāo)準(zhǔn)的英語(yǔ)?編程語(yǔ)言也一樣,有些程序員大學(xué)沒(méi)好好研究編程,或者根本不是計(jì)算機(jī)系,上過(guò)幾天培訓(xùn)班,知道編程是怎么一回事,會(huì)寫if/else/for,就業(yè)所迫,就開(kāi)始商業(yè)編程了。寫程序必然是指哪打哪,別的情況我不管。這樣的程序,脆弱的不敢碰,一有改動(dòng)就是要性命啊。

最后一方面是,國(guó)內(nèi)軟件開(kāi)發(fā),開(kāi)發(fā)流程不完善。有活就趕緊埋頭干,干了不對(duì)再說(shuō)。最終需求理解不到位,項(xiàng)目周期比火車還長(zhǎng),項(xiàng)目成本居高不下。

有時(shí)候拖著下巴想想,編程真是一門藝術(shù)活。

文章來(lái)源:知乎 @貓愛(ài)吃魚(yú)不吃耗子

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容