神解釋:向外行介紹程式設計師工作的複雜程度

十旋轉45度發表於2016-03-07

【伯樂線上導讀】

「不就加個按鈕麼?怎麼要做三四天?」類似的外行問話,經常在網上能看到。有程式設計師在 Quora 提問,該如何向外行解釋自己工作的複雜度。

下面是 Channing Walton 的用泡茶的例子來解釋,非常形象。

請他們描述泡出一杯茶需要哪些步驟,他們會這麼說:

  1. 燒水
  2. 把茶葉放到茶壺裡
  3. 水燒開後倒入茶壺
  4. 等待5分鐘
  5. 把茶倒進杯子
  6. 加牛奶

現在,有趣的開始了。你要開始問這樣的問題:

燒水?

  • 水哪來的?
  • 熱水壺在哪裡?
  • 你怎麼把水倒進熱水壺?
  • 你怎麼知道熱水壺壺裡要倒多少水?
  • 如果沒有水/熱水壺/電怎麼辦呢?
  • 假如加水感測器失效怎麼辦?
  • 假如煮水感測器失效怎麼辦?

茶葉放到茶壺裡?

  • 茶壺在哪裡,如果沒有茶壺怎麼辦?燒水之前我們應該考慮到這些問題嗎?
  • 茶葉在哪裡,要用哪一種茶葉?我們是否應該先問清楚,或許如果沒有對應的茶葉,我們甚至都不應該開始泡茶?
  • 關於加水和感測器也可以有類似的問題要問

倒開水?

  • 你確定水已經開了麼?你怎麼能確保“倒水”的機器從熱水壺那收到“燒水完成”的訊號呢?
  • 你如何確保倒水的機器知道熱水壺在哪裡?
  • 如果熱水壺在倒水的過程翻了怎麼辦呢?
  • 等等

諸如此類——這樣的問題你可以問幾個小時。他們會厭煩說,“問到這麼細節真是太蠢了”,你但可一笑“的確很蠢”。

ps. 最後,告訴他們,客戶其實真正想要的是濃縮咖啡而不是日本茶道——當然,你肯定知道了,這不是顯而易見的需求嗎?


小編最後想到了一張趣圖。

(左:外行眼中的專案;右:開發眼中的專案)

相關文章