為什么產品與技術溝通起來總是那么痛苦?

13 評論 8537 瀏覽 38 收藏 7 分鐘

為什么產品與技術溝通起來總是那么痛苦?有時候你覺得很簡單的一件事,在程序的世界里很有可能變得紛繁復雜。

編程語言,它終歸是一門語言,只是它的使用者是電腦軟件和硬件。

產品經理和程序員對于需求理解的思維體系、語言體系、語言上下文環境不同。

比如這個需求:一包中華45元,產目經理給你50元,讓程序員去買包煙把找的5塊錢拿回來。

產品經理覺得非常簡單,一句話的事。

而對于程序員而言:

  • 50元是不是假錢?
  • 如果不是假錢,去哪買煙?
  • 如果去西安買煙,西安賣煙的地方關門了?是回去給產品經理說賣煙的地方關門了還是一直找,直到找到一個沒有關門的賣煙的地方?
  • 如果這里的一包中華是40元,或者一包中華是50元,買不買?不管多錢都買?還是征求產品經理同意后再買?
  • 怎么判斷買的煙不是假煙?還是不管真假買了一包中華就算?
  • 買了之后是郵寄給項目經理?還是自己給帶回來?還是讓順道的同事給捎回去?
  • 如果買回來買的是50元一包的中華,產品經理嫌貴了怎么辦?如果買回來的是40元一包的中華,是給產品經理退5元錢還是給他退10元?
  • 如果產品經理一定要45元的中華怎么辦?
  • 如果產品經理突然不想要這煙了,讓你退回去怎么辦?
  • 如果賣煙的人不退怎么辦?
  • 如果產品經理讓你退了重新在別的地方買一包怎么辦?
  • 如果賣煙的老王退了,但是再沒有別的賣煙的地方了怎么辦!
  • 如果又找到一個賣煙的地方,并且一包中華也是45元。帶給項目經理。項目經理聽說你是從西安買的,他要抽北京買的煙怎么辦?

……

你會發現問題沒完沒了。

這會你可能會說程序員太死腦筋。錯!產品經理所說的,中華45元,給你50元,買完找5元。這句話是建立在一系統上下文語境,人類生活習慣,生活常識當中的。產品經理的潛臺詞是說找最近的有賣煙的買一包45的不是假煙的中華煙,找的五塊錢給我。

而對于程序語言,還是開頭那句話:編程語言是一門語言,它的使用者是軟件和硬件。對于計算機而言,它沒有情感,不理解人類的這一系統語言環境,生活習慣,生活常識。

它只嚴格按照它的語言規則,編譯原理一步一步,老老實實,絲毫不露地往下執行。

如果沒有分歧,一切妥當。

如果有分歧,完蛋了。

人類千百萬年來進化形成的臨機應變,相機行事等等這些本能,計算機及編程語言一丁點不具備。它就認準程序員寫的程序,就乖乖地聽你程序,指哪打哪。

所謂的人工智能也只是程序員把每一種可能,人類面對問題所會面對的問題事先寫好程序語言錄入進計算機。

如果意外在之前所料之中,程序完美執行,如果意外所料不及,那就是BUG,就是錯誤。而這些BUG和錯誤都要程序員去一點一點補充產品經理所謂“需求”之外的所有潛臺詞。

這是在需求確定的情況下,如果程序員正在買煙的路上,產品經理打電話說,剩下5塊錢回來再買瓶水。那之前所有的邏輯程序員又得再執行一遍。如果產品經理過一會又打電話說再買個面包。。。那就折騰死程序員了。

從需求方面說完,再從程序員編碼實現方面來說。

還是剛才的需求:產品經理給程序員50元,讓買一包45元的中華煙,找回來5元錢。

程序員一聽,程序里面寫死了,從線路1去西大街,買完煙再沿線路2返回。

但是中途產品經理說你再買點零食回來。

程序員傻眼了?。?!

得,只能程序重新設計,從線路2出發。

試想,從初中開始學英語,初中三年,高中三年,大學四年,十年下來,有幾個人能面對外國人說一口標準的英語?

編程語言也一樣,有些程序員大學沒好好研究編程,或者根本不是計算機系,上過幾天培訓班,知道編程是怎么一回事,會寫if/else/for,就業所迫,就開始商業編程了。

寫程序必然是指哪打哪,別的情況我不管。

這樣的程序,脆弱的不敢碰,一有改動就是要性命啊。

最后一方面是:國內軟件開發,開發流程不完善。有活就趕緊埋頭干,干了不對再說。最終需求理解不到位,項目周期比火車還長,項目成本居高不下。

有時候拖著下巴想想,編程真是一門藝術活。

 

作者:莫西兒

來源:知乎

鏈接:https://www.zhihu.com/question/40712955/answer/88072793

本文為作者@莫西兒 在知乎《如何向外行解釋產品經理頻繁更改需求為什么會令程序員煩惱?》問題下的回答,本文已獲作者授權。

題圖來自PEXELS,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 怪不得大多數程序員叫碼農,一點沒告訴到就大喊大叫;要原型的時候,恨不得當天就要給他;急急忙忙畫完了原型和ui,該他們寫代碼了,自己在那劃水,還有借口說產品設計的不合理,老板也會覺得是產品的鍋;我tm1天做的原型,能想的多周全!我把要實現的效果已經告訴你,怎么建表需要什么字段一個不落全都要告訴你?干脆我自己寫得了。

    來自江蘇 回復
  2. 產品最好是有一年的技術經驗

    回復
    1. 這一年的技術經驗都能了解到什么呢?

      來自北京 回復
    2. 你覺得要幾年的技術經驗呢?還是不要技術經驗?

      來自四川 回復
    3. 我認為需要技術經驗,不知道這個時間長短,時間短了也不能了解到多少呀,完了心態還不一樣了,覺著自己做過研發寫起需求來更肆無忌憚了

      來自北京 回復
  3. 這就是異常場景分析處理了,這些我一般在搞業務流程圖的時候考慮到方方面面,我一般是參照友商產品對比分析,以及想盡辦法還原場景給出對應的處理,但是即使是這樣還是會漏掉一些,程序員能提出來問題我覺得很好可以查漏補缺。

    來自廣東 回復
  4. 如果產品和技術這么簡單描述的話,肯定會被打死的;很多情景和異常情景都得提前想好了······

    來自北京 回復
  5. 舉例不恰當。正向流程、逆向流程、異常處理機制……等等,這些東西都是產品經理需求去設計的,而不是直接扔給開發。
    感覺你舉例子是典型的一句話需求,經常遇到的是業務口提給產品的需求。別說開發了,產品聽了都想打人 ??

    來自廣東 回復
    1. 業務提給產品的需求總是這么簡單明了,不管不顧的

      來自北京 回復
    2. 產品的工作就是梳理需求,業務方可以直接告訴研發一句話。研發就去做的話,還要你這個傳話的產品做什么捏。 ??

      來自四川 回復
    3. 嘿嘿 說的有道理,之前看到一句話,好的產品就是抗領導層的壓力然后傳給研發一個完善的可執行方案,一看就是經歷過什么才能說的出來

      來自北京 回復
    4. 業務提需求,產品來理需求,再把有疑慮的地方跟業務核實,難道不是產品價值的體現嗎?如果業務都能把需求提清楚了,產品早就淪為文職工作了

      來自四川 回復
    5. 來自上海 回復