為什么產(chǎn)品與技術(shù)溝通起來總是那么痛苦?
為什么產(chǎn)品與技術(shù)溝通起來總是那么痛苦?有時候你覺得很簡單的一件事,在程序的世界里很有可能變得紛繁復(fù)雜。
編程語言,它終歸是一門語言,只是它的使用者是電腦軟件和硬件。
產(chǎn)品經(jīng)理和程序員對于需求理解的思維體系、語言體系、語言上下文環(huán)境不同。
比如這個需求:一包中華45元,產(chǎn)目經(jīng)理給你50元,讓程序員去買包煙把找的5塊錢拿回來。
產(chǎn)品經(jīng)理覺得非常簡單,一句話的事。
而對于程序員而言:
- 50元是不是假錢?
- 如果不是假錢,去哪買煙?
- 如果去西安買煙,西安賣煙的地方關(guān)門了?是回去給產(chǎn)品經(jīng)理說賣煙的地方關(guān)門了還是一直找,直到找到一個沒有關(guān)門的賣煙的地方?
- 如果這里的一包中華是40元,或者一包中華是50元,買不買?不管多錢都買?還是征求產(chǎn)品經(jīng)理同意后再買?
- 怎么判斷買的煙不是假煙?還是不管真假買了一包中華就算?
- 買了之后是郵寄給項目經(jīng)理?還是自己給帶回來?還是讓順道的同事給捎回去?
- 如果買回來買的是50元一包的中華,產(chǎn)品經(jīng)理嫌貴了怎么辦?如果買回來的是40元一包的中華,是給產(chǎn)品經(jīng)理退5元錢還是給他退10元?
- 如果產(chǎn)品經(jīng)理一定要45元的中華怎么辦?
- 如果產(chǎn)品經(jīng)理突然不想要這煙了,讓你退回去怎么辦?
- 如果賣煙的人不退怎么辦?
- 如果產(chǎn)品經(jīng)理讓你退了重新在別的地方買一包怎么辦?
- 如果賣煙的老王退了,但是再沒有別的賣煙的地方了怎么辦!
- 如果又找到一個賣煙的地方,并且一包中華也是45元。帶給項目經(jīng)理。項目經(jīng)理聽說你是從西安買的,他要抽北京買的煙怎么辦?
……
你會發(fā)現(xiàn)問題沒完沒了。
這會你可能會說程序員太死腦筋。錯!產(chǎn)品經(jīng)理所說的,中華45元,給你50元,買完找5元。這句話是建立在一系統(tǒng)上下文語境,人類生活習(xí)慣,生活常識當(dāng)中的。產(chǎn)品經(jīng)理的潛臺詞是說找最近的有賣煙的買一包45的不是假煙的中華煙,找的五塊錢給我。
而對于程序語言,還是開頭那句話:編程語言是一門語言,它的使用者是軟件和硬件。對于計算機(jī)而言,它沒有情感,不理解人類的這一系統(tǒng)語言環(huán)境,生活習(xí)慣,生活常識。
它只嚴(yán)格按照它的語言規(guī)則,編譯原理一步一步,老老實實,絲毫不露地往下執(zhí)行。
如果沒有分歧,一切妥當(dāng)。
如果有分歧,完蛋了。
人類千百萬年來進(jìn)化形成的臨機(jī)應(yīng)變,相機(jī)行事等等這些本能,計算機(jī)及編程語言一丁點不具備。它就認(rèn)準(zhǔn)程序員寫的程序,就乖乖地聽你程序,指哪打哪。
所謂的人工智能也只是程序員把每一種可能,人類面對問題所會面對的問題事先寫好程序語言錄入進(jìn)計算機(jī)。
如果意外在之前所料之中,程序完美執(zhí)行,如果意外所料不及,那就是BUG,就是錯誤。而這些BUG和錯誤都要程序員去一點一點補(bǔ)充產(chǎn)品經(jīng)理所謂“需求”之外的所有潛臺詞。
這是在需求確定的情況下,如果程序員正在買煙的路上,產(chǎn)品經(jīng)理打電話說,剩下5塊錢回來再買瓶水。那之前所有的邏輯程序員又得再執(zhí)行一遍。如果產(chǎn)品經(jīng)理過一會又打電話說再買個面包。。。那就折騰死程序員了。
從需求方面說完,再從程序員編碼實現(xiàn)方面來說。
還是剛才的需求:產(chǎn)品經(jīng)理給程序員50元,讓買一包45元的中華煙,找回來5元錢。
程序員一聽,程序里面寫死了,從線路1去西大街,買完煙再沿線路2返回。
但是中途產(chǎn)品經(jīng)理說你再買點零食回來。
程序員傻眼了?。?!
得,只能程序重新設(shè)計,從線路2出發(fā)。
試想,從初中開始學(xué)英語,初中三年,高中三年,大學(xué)四年,十年下來,有幾個人能面對外國人說一口標(biāo)準(zhǔn)的英語?
編程語言也一樣,有些程序員大學(xué)沒好好研究編程,或者根本不是計算機(jī)系,上過幾天培訓(xùn)班,知道編程是怎么一回事,會寫if/else/for,就業(yè)所迫,就開始商業(yè)編程了。
寫程序必然是指哪打哪,別的情況我不管。
這樣的程序,脆弱的不敢碰,一有改動就是要性命啊。
最后一方面是:國內(nèi)軟件開發(fā),開發(fā)流程不完善。有活就趕緊埋頭干,干了不對再說。最終需求理解不到位,項目周期比火車還長,項目成本居高不下。
有時候拖著下巴想想,編程真是一門藝術(shù)活。
作者:莫西兒
來源:知乎
鏈接:https://www.zhihu.com/question/40712955/answer/88072793
本文為作者@莫西兒 在知乎《如何向外行解釋產(chǎn)品經(jīng)理頻繁更改需求為什么會令程序員煩惱?》問題下的回答,本文已獲作者授權(quán)。
題圖來自PEXELS,基于CC0協(xié)議
怪不得大多數(shù)程序員叫碼農(nóng),一點沒告訴到就大喊大叫;要原型的時候,恨不得當(dāng)天就要給他;急急忙忙畫完了原型和ui,該他們寫代碼了,自己在那劃水,還有借口說產(chǎn)品設(shè)計的不合理,老板也會覺得是產(chǎn)品的鍋;我tm1天做的原型,能想的多周全!我把要實現(xiàn)的效果已經(jīng)告訴你,怎么建表需要什么字段一個不落全都要告訴你?干脆我自己寫得了。
產(chǎn)品最好是有一年的技術(shù)經(jīng)驗
這一年的技術(shù)經(jīng)驗都能了解到什么呢?
你覺得要幾年的技術(shù)經(jīng)驗?zāi)??還是不要技術(shù)經(jīng)驗?
我認(rèn)為需要技術(shù)經(jīng)驗,不知道這個時間長短,時間短了也不能了解到多少呀,完了心態(tài)還不一樣了,覺著自己做過研發(fā)寫起需求來更肆無忌憚了
這就是異常場景分析處理了,這些我一般在搞業(yè)務(wù)流程圖的時候考慮到方方面面,我一般是參照友商產(chǎn)品對比分析,以及想盡辦法還原場景給出對應(yīng)的處理,但是即使是這樣還是會漏掉一些,程序員能提出來問題我覺得很好可以查漏補(bǔ)缺。
如果產(chǎn)品和技術(shù)這么簡單描述的話,肯定會被打死的;很多情景和異常情景都得提前想好了······
舉例不恰當(dāng)。正向流程、逆向流程、異常處理機(jī)制……等等,這些東西都是產(chǎn)品經(jīng)理需求去設(shè)計的,而不是直接扔給開發(fā)。
感覺你舉例子是典型的一句話需求,經(jīng)常遇到的是業(yè)務(wù)口提給產(chǎn)品的需求。別說開發(fā)了,產(chǎn)品聽了都想打人 ??
業(yè)務(wù)提給產(chǎn)品的需求總是這么簡單明了,不管不顧的
產(chǎn)品的工作就是梳理需求,業(yè)務(wù)方可以直接告訴研發(fā)一句話。研發(fā)就去做的話,還要你這個傳話的產(chǎn)品做什么捏。 ??
嘿嘿 說的有道理,之前看到一句話,好的產(chǎn)品就是抗領(lǐng)導(dǎo)層的壓力然后傳給研發(fā)一個完善的可執(zhí)行方案,一看就是經(jīng)歷過什么才能說的出來
業(yè)務(wù)提需求,產(chǎn)品來理需求,再把有疑慮的地方跟業(yè)務(wù)核實,難道不是產(chǎn)品價值的體現(xiàn)嗎?如果業(yè)務(wù)都能把需求提清楚了,產(chǎn)品早就淪為文職工作了
對