l

2016年5月10日 星期二

看不到的成本

May 09 22:50~23:59

螢幕截圖 2016-05-10 00.10.09

▲養貓有很多隱藏成本

 

前一陣子有一位曾經上過「Design Patterns這樣學就會了–入門實作班」的學員問Teddy一個設計的問題,大體就是大客戶提出一個他們之前從來沒有考慮過的新需求,不但和現行的設計完全不相容,而且要求在很短的時間內完成。為了在期限內滿足客戶的要求,團隊討論出一個變通方案(work around),修改原本程式的好幾個地方,加上一些特殊判斷式與邏輯。聽起來雖然不是很好的設計,但時間緊迫,也只能先過了這關再說。

聽完學員對於他們的系統架構描述,細節雖然方面還是不太清楚,但Teddy提了另外一個可以符合「開放封閉原則(open-closed principle)」的設計建議。對方想了一下回應說:「好像也可以這樣做,但我們之前沒往這個方向思考,系統也已經動手改了,只能這次改完之後再看看有沒有機會重構的時候再套用你的建議。」

***

討論結束之後Teddy突然有種感觸,這種感觸以前工作的時候就有,現在又浮上心頭:

  • 老闆、專案經理或主管,通常只關心「進度」,而不管實作(此為正常現象),然後隨便訂出一個「反攻大陸時程表」要求團隊使命必達。時程的合理性通常無法質疑,也許存在討價還價的空間,但彈性有限。
  • 在進度緊迫之下,人的思考力很可能降低,最後採用看起來比較快,實際上卻沒有比較快,而且會損及系統可修改性與可維護性的方案。
  • 最可怕的是,軟體驗收的標準通常只要「看起來可以動就好了」。所以團隊採用的「設計方案」到底是否「合適(fit)」,幾乎無法(無人)評斷。

既然技術上是否採用比較合適的解決方案「外人」看不出來,那除非團隊成員有自謔傾向,否則又何必持續在技術上精進呢?

***

前幾天Erica傳了這篇文章〈Airbnb 組織流程大改版!設計副總:不創造新的方法,就無法創造新的產品〉給Teddy,文內提到:

《The Timeless Way of Building》 的作者 Christopher Alexander 曾經說過,「當語言共享,其中個別的模式就會更精練。」

想必Airbnb的設計副總也讀過《The Timeless Way of Building》。為什麼設計副總要讀建築師所寫的書?為什麼很多軟體大師也讀《The Timeless Way of Building》?假定他們頭殼沒有壞掉,這本書一定有某種「神奇的藥效」以至於吸引眾多大師的目光。讀了之後不會讓你拳拳到肉,也無法讓你具備即戰力,但卻是一窺眾多大師思維共同點的一條途徑。

***

友藏內心獨白:無法變大師但可以讀大師讀的書。

1 則留言:

  1. err....文中沒有任何證據顯示Airbnb的設計副總有讀過The Timeless Way of Building這本書,而Teddy的結論是讀過=,Teddy有點太神話那本書了。另外不覺得Airbnb有多厲害,至少今年肯定不怎麼樣,哈

    回覆刪除