【伯樂線上導讀】:
「不就加個按鈕麼?怎麼要做三四天?」類似的外行問話,經常在網上能看到。有程式設計師在 Quora 提問,該如何向外行解釋自己工作的複雜度。
下面是 Channing Walton 的用泡茶的例子來解釋,非常形象。
請他們描述泡出一杯茶需要哪些步驟,他們會這麼說:
- 燒水
- 把茶葉放到茶壺裡
- 水燒開後倒入茶壺
- 等待5分鐘
- 把茶倒進杯子
- 加牛奶
- 喝
現在,有趣的開始了。你要開始問這樣的問題:
燒水?
- 水哪來的?
- 熱水壺在哪裡?
- 你怎麼把水倒進熱水壺?
- 你怎麼知道熱水壺壺裡要倒多少水?
- 如果沒有水/熱水壺/電怎麼辦呢?
- 假如加水感測器失效怎麼辦?
- 假如煮水感測器失效怎麼辦?
茶葉放到茶壺裡?
- 茶壺在哪裡,如果沒有茶壺怎麼辦?燒水之前我們應該考慮到這些問題嗎?
- 茶葉在哪裡,要用哪一種茶葉?我們是否應該先問清楚,或許如果沒有對應的茶葉,我們甚至都不應該開始泡茶?
- 關於加水和感測器也可以有類似的問題要問
倒開水?
- 你確定水已經開了麼?你怎麼能確保“倒水”的機器從熱水壺那收到“燒水完成”的訊號呢?
- 你如何確保倒水的機器知道熱水壺在哪裡?
- 如果熱水壺在倒水的過程翻了怎麼辦呢?
- 等等
諸如此類——這樣的問題你可以問幾個小時。他們會厭煩說,“問到這麼細節真是太蠢了”,你但可一笑“的確很蠢”。
ps. 最後,告訴他們,客戶其實真正想要的是濃縮咖啡而不是日本茶道——當然,你肯定知道了,這不是顯而易見的需求嗎?
小編最後想到了一張趣圖。
(左:外行眼中的專案;右:開發眼中的專案)