產(chǎn)品經(jīng)理頻繁更改需求,為什么會(huì)令程序員煩惱?
本文關(guān)鍵詞:編譯原理,由筆耕文化傳播整理發(fā)布。
來人人都是產(chǎn)品經(jīng)理【起點(diǎn)學(xué)院】,BAT實(shí)戰(zhàn)派產(chǎn)品總監(jiān)手把手系統(tǒng)帶你學(xué)產(chǎn)品、學(xué)運(yùn)營(yíng)。點(diǎn)此查看詳情
我們先來看個(gè)段子:
去飯店,坐下來。
“服務(wù)員,給我來份宮保雞。
“好嘞!”
——————這叫原始需求
大廚做到一半。
“服務(wù)員,菜里不要放肉!
“不放肉怎么做。俊
“不放肉就行了,其它按正常程序做,不就行了,難嗎?”
“好的您稍等”
——————中途需求變更
廚房:
大廚:“你大爺,我肉都回鍋了”
服務(wù)員:“顧客非要要求的嘛,你把肉挑出來不就行了嗎”
大廚:“行你大爺”
然而還是一點(diǎn)點(diǎn)挑出來了
——————改動(dòng)太大,部分重構(gòu)
餐廳:
“服務(wù)員,菜里能給我加點(diǎn)腐竹嗎?”
“行,這個(gè)應(yīng)該簡(jiǎn)單!
——————低估改動(dòng)成本
廚房:
大廚:“你TMD,不知道腐竹得提前泡水?炒到一半才說?跟他說,想吃腐竹就多等半天”
服務(wù)員:“啊你怎么不早說?”
大廚:“早說你MLGB我怎么知道他要往宮保雞丁里放腐竹”
然而還是去泡腐竹了
——————新需求引入了新研發(fā)成本
餐廳:
“服務(wù)員,還是把肉加回去吧”
“您不是剛說不要肉嗎”
“現(xiàn)在又想要了”
“...好的您稍等”
——————某一功能點(diǎn)搖擺不定
廚房:
大廚:“日你啊,,菜都炒過火了你讓我放肉?還好肉我沒扔”
服務(wù)員:“客戶提的要求你日我干嘛?”
大廚:“你就不能拒絕他。堪。俊
服務(wù)員:“人家是客戶嘛。”
——————甲方是大爺
餐廳:
“服務(wù)員!服務(wù)員!”
“來了來了,你好?”
“怎么這么半天?”
“稍等我給您催催啊”
——————改動(dòng)開始導(dǎo)致工期延誤
廚房:
大廚:“催你M催,腐竹沒泡好,我還得重新放油,他要想吃老的也行,沒法保質(zhì)保量”
——————開發(fā)者請(qǐng)求重新排期
餐廳:
服務(wù)員:“抱歉,加腐竹的話得多等半天,您別著急哈”
“我靠要等那么久?我現(xiàn)在就要吃,你們能快點(diǎn)嗎?”
“行...您稍等”
——————甲方催活
廚房:
大廚:“我日他仙人板板,中途改需求又想按期交付,逗我玩呢?”
服務(wù)員:“那我問問,要不讓他們換個(gè)菜?”
大廚:“再換我就死了”
——————開發(fā)者開始和中間人PK
餐廳:
“服務(wù)員,這樣吧,腐竹不要了,換成蒜毫能快點(diǎn)嗎?對(duì)了,順便加點(diǎn)番茄醬”
——————因工期過長(zhǎng)再次改動(dòng)需求
廚房:
大廚:“我日了狗啊,你TM不知道蒜毫也得焯水?還有你讓我怎么往熱菜里放番茄醬啊??”
服務(wù)員:“焯水也比等腐竹強(qiáng)吧,番茄醬往里一倒不就行了嗎?很難嗎?”
大廚:“草。腐竹我還得接著泡,萬一這孫子一會(huì)又想要了呢!
——————頻繁改動(dòng)開始導(dǎo)致大量冗余
餐廳:
“服務(wù)員,菜里加茄丁了沒有?我去其它飯店吃可都是有茄丁的”
“好好好您稍等您稍等”
——————奇葩需求
廚房:
大廚:“我去他二大爺他吃的是斯里蘭卡三流技校炒的宮保雞丁嗎?宮保雞丁里放茄。?”
服務(wù)員:“茄丁抄好了扔里邊不就行了嗎?”
大廚:“那TM還能叫菜嗎?哪個(gè)系的?”
服務(wù)員:“客戶要,你就給炒了吧!
大廚:“MB你順道問問他腐竹還要不要,我這盆腐竹還占著地方呢不要我就扔了”
——————奇葩你也得做
餐廳:
“服務(wù)員,還要多久能好啊”
“很快,很快...”
“再給我來杯西瓜汁!
“...好”
“我再等10分鐘,還不好我就走了,反正還沒給錢!
“很快,很快...”
——————黑暗前的最后黎明
10分鐘后
“咦,我上次吃的不是這個(gè)味啊?”
從廚房殺出來的大廚:“我TM就日了你的狗...”
——————最終決戰(zhàn)——————
你=客戶
服務(wù)員=客戶經(jīng)理+產(chǎn)品經(jīng)理
大廚=碼農(nóng)
請(qǐng)自行轉(zhuǎn)換...
注:以上場(chǎng)景已極度夸張,實(shí)際生產(chǎn)生活中碼農(nóng)和PM是和睦友好的相親相愛的一家人
以上內(nèi)容來源于知乎用戶@貓愛吃魚不吃耗子。
編程語言,它終歸是一門語言,只是它的使用者是電腦軟件和硬件。產(chǎn)品經(jīng)理和程序員對(duì)于需求理解的思維體系、語言體系、語言上下文環(huán)境不同。
比如這個(gè)需求:一包中華45元,產(chǎn)目經(jīng)理給你50元,讓程序員去買包煙把找的5塊錢拿回來。
產(chǎn)品經(jīng)理覺得非常簡(jiǎn)單,一句話的事。
而對(duì)于程序員而言:
......
你會(huì)發(fā)現(xiàn)問題沒完沒了。
這會(huì)你可能會(huì)說程序員太死腦筋。錯(cuò)!產(chǎn)品經(jīng)理所說的,中華45元,給你50元,買完找5元。這句話是建立在一系統(tǒng)上下文語境,人類生活習(xí)慣,生活常識(shí)當(dāng)中的。產(chǎn)品經(jīng)理的潛臺(tái)詞是說找最近的有賣煙的買一包45的不是假煙的中華煙,找的五塊錢給我。
而對(duì)于程序語言,還是開頭那句話:編程語言是一門語言,它的使用者是軟件和硬件。對(duì)于計(jì)算機(jī)而言,它沒有情感,不理解人類的這一系統(tǒng)語言環(huán)境,生活習(xí)慣,生活常識(shí)。它只嚴(yán)格按照它的語言規(guī)則,編譯原理一步一步,老老實(shí)實(shí),絲毫不露地往下執(zhí)行。如果沒有分歧,一切妥當(dāng)。如果有分歧,完蛋了。人類千百萬年來進(jìn)化形成的臨機(jī)應(yīng)變,相機(jī)行事等等這些本能,計(jì)算機(jī)及編程語言一丁點(diǎn)不具備。它就認(rèn)準(zhǔn)程序員寫的程序,就乖乖地聽你程序,指哪打哪。所謂的人工智能也只是程序員把每一種可能,人類面對(duì)問題所會(huì)面對(duì)的問題事先寫好程序語言錄入進(jìn)計(jì)算機(jī)。如果意外在之前所料之中,程序完美執(zhí)行,如果意外所料不及,那就是BUG,就是錯(cuò)誤。而這些BUG和錯(cuò)誤都要程序員去一點(diǎn)一點(diǎn)補(bǔ)充產(chǎn)品經(jīng)理所謂“需求”之外的所有潛臺(tái)詞。
這是在需求確定的情況下,如果程序員正在買煙的路上,產(chǎn)品經(jīng)理打電話說,剩下5塊錢回來再買瓶水。那之前所有的邏輯程序員又得再執(zhí)行一遍。如果產(chǎn)品經(jīng)理過一會(huì)又打電話說再買個(gè)面包。。。那就折騰死程序員了。
從需求方面說完,再?gòu)某绦騿T編碼實(shí)現(xiàn)方面來說。還是剛才的需求:產(chǎn)品經(jīng)理給程序員50元,讓買一包45元的中華煙,找回來5元錢。
程序員一聽,程序里面寫死了,從線路1去西大街,買完煙再沿線路2返回。但是中途產(chǎn)品經(jīng)理說你再買點(diǎn)零食回來。程序員傻眼了。!得,只能程序重新設(shè)計(jì),從線路2出發(fā)。
程序員一聽,程序里面寫死了,從線路1去西大街,買完煙再沿線路2返回。但是中途產(chǎn)品經(jīng)理說你再買點(diǎn)零食回來。程序員傻眼了。!得,只能程序重新設(shè)計(jì),從線路2出發(fā)。
試想,從初中開始學(xué)英語,初中三年,高中三年,大學(xué)四年,十年下來,有幾個(gè)人能面對(duì)外國(guó)人說一口標(biāo)準(zhǔn)的英語?編程語言也一樣,有些程序員大學(xué)沒好好研究編程,或者根本不是計(jì)算機(jī)系,上過幾天培訓(xùn)班,知道編程是怎么一回事,會(huì)寫if/else/for,就業(yè)所迫,就開始商業(yè)編程了。寫程序必然是指哪打哪,別的情況我不管。這樣的程序,脆弱的不敢碰,一有改動(dòng)就是要性命啊。
最后一方面是,國(guó)內(nèi)軟件開發(fā),開發(fā)流程不完善。有活就趕緊埋頭干,干了不對(duì)再說。最終需求理解不到位,項(xiàng)目周期比火車還長(zhǎng),項(xiàng)目成本居高不下。
有時(shí)候拖著下巴想想,編程真是一門藝術(shù)活。
正文作者:支兩招
原文地址:https://www.zhihu.com/question/40712955
本文由作者@貓愛吃魚不吃耗子、@支兩招授權(quán)發(fā)布。未經(jīng)許可,禁止轉(zhuǎn)載。
本文關(guān)鍵詞:編譯原理,由筆耕文化傳播整理發(fā)布。
本文編號(hào):36676
本文鏈接:http://sikaile.net/wenshubaike/dxkc/36676.html