l

2014年4月1日 星期二

沒好沒壞,因人而異

Mar. 14 09:00~10:33

螢幕快照 2014-03-12 下午5.56.11

畫面節錄自電影「達摩祖師傳」


前幾天有鄉民在〈Architect-Builder〉這篇Teddy在2009年寫的舊文章上面留言,讓Teddy又回頭讀了一次,順便在Facebook上面轉貼了這篇文章。後來引起一小搓「熱心鄉民」猜測:「到底誰是K大師?」

是誰現在看來已經不重要了。網路時代「民智大開」,資訊很多,大家已經可以由不同管道得到各種看法。就好像有人喜歡CMMI那一套嚴謹的「評分方法」,有人喜歡「隨遇而安」的敏捷開發,也沒什麼「對錯」可言,就是喜好不同而已。

鄉民甲:生魚片和羊肉爐哪一種比較好吃?

Teddy:不知道,看你喜歡吃什麼。

***

說起來K大師提倡的那一套軟體開發作法在當時也是主流方法之一,希望藉由嚴謹的塑模(modeling),完成所謂的「系統設計」之後就可以把實作交給別人「代工」。由於系統設計非常嚴謹,因此施工階段只剩下實作細節,不至於出什麼大亂子。做好設計的架構師拍拍屁股準備收錢,然後趕快去接手另外一個案子繼續賺更多錢,沒什麼不好。有一陣子軟體界還流行「軟體工廠」,希望效法硬體工廠那種有效率、大量生產的方式,來開發軟體。

Teddy個人在分別嘗試Waterfall、RUP與敏捷開發之後,不是很贊同「軟體設計的產出物就是UML設計圖或是一堆厚厚文件」這種強調嚴謹塑模的開發方法。以前看K大師的書只覺得自己功力不夠所以無法體會大師精隨,後來因緣際會聽了他的演講之後才豁然開朗,原來自己對於軟體開發的想法和他不同,所以也就不用再學習他的那一套方法。但這不代表他的方法就沒用,有可能有人套用之後很成功也說不定。

***

達摩大師:無所謂好壞,端看造化而定。

上面這句話最近已經用了第四次,鄉民們應該都會背了。什麼叫做「造化」?網路字典查到的解釋:

  1. 創造演化,指自然界自身發展繁衍的功能,例如造化者、造化神功。
  2. 指自然界,例如造化鐘神秀、以造化為大冶。
  3. 福分、命運,例如有此善果,乃是你的造化、造化弄人。

用Alexander的講法,造化就是context,就是大家當下所處的情境。如果你要幫美國太空總署開發探測太陽的機器人,也許採用較多的「事前設計(up-front design)」會比較好。如果你要在一個月內寫出一隻遊戲APP然後趕快上架,採用敏捷開發也許是不錯的選擇。如果你只有一個人接外包案子,收錢之後就不管後續維護的問題,甚至只要採用「敷衍開發法」就可以了。

所以說,「無所謂好壞,端看造化而定」。

***

鄉民甲:只會打嘴砲,事情哪有那麼簡單。

的確是沒有那麼簡單,俗話說:「造化弄人」,我們凡夫俗子很容易被眼前的花花世界給作弄了。要知道自己身處在哪種「造化」(context)底下,有時候是一件很困難的事情。為什麼?因為「造化」不是一成不變的靜態世界,而是不停改變的動態環境。人很容易因為外在環境改變而跟著改變:

  • 用什麼方法都不重要,員工有向心力、大家一起加班解決問題最重要啦。
  • 愛因斯坦說:「瘋狂就是一再用相同的方法做事,卻期待出現不同的結果」。還是要選對做事方法才能事半功倍。現在敏捷開發好流行,Scrum又是敏捷開發最熱門的方法,我們也來學Scrum吧。
  • 聽說有一種叫做Kanban的方法,比Scrum更簡單,我們改用Kanban吧。
  • Scrum和Kanban都是空的框架,軟體要開發的好,基本功夫還是很重要。快來學OO、Design Pattern、TDD/BDD、CI、Refactoring…。
  • 需求是一切的源頭,需求錯了,後面軟體做得再好也是白搭。所以快來學UX,讓你找到可以感動客戶的真正需求。
  • 在這個時代已經不講求產品,而是要談文創、談服務。設計服務可以讓你的企業改頭換面,讓傳統產業升級,讓台灣重回亞洲四小龍之首,進一步可以打進世界盃,統一全宇宙。還發什麼呆,名額有限,趕快上網報名。
  • 設計服務要做得好,必須了解設計師如何思考。快來參加國際知名設計公司所舉辦的設計思考活動。

迷之音:我的臉好腫啊。

老闆:醒一醒,今天還要繼續加班喔…揪咪。

***

在追尋solution的過程中,很多時間其實是花在弄清楚context上面。

***

友藏內心獨白:何時才能得道呢。

沒有留言:

張貼留言