l

2014年3月19日 星期三

組織要如何解決更複雜的問題?

Mar. 10 16:07~17:48

image

 

前陣子讀了《你要如何衡量你的人生?》這本書,書中提到一家公司的能力取決於三個因素:

  • 資源
  • 流程
  • 企業的優先順序

引用書中的說法:「員工互動、協調、溝通、做決定,凡此種種就是流程。透過流程,組織才能得以解決更加複雜的問題。」

嗯,「透過流程,組織才能得以解決更加複雜的問題」,很有意思的一句話。以前對於流程的看法,大體脫離不了把事情做的更快、品質做得更好、讓員工可以過著「人」的生活。一個問題,就算是複雜的問題(大型專案),流程好不好也只會影響東西做出來的品質、成本、時間,反正到最後只要使出「加班」這個大絕招,萬事一定OK。

但是這本書告訴大家,透過流程,組織才能得以解決更加複雜的問題。換句話說,流程不佳會限制組織解決問題的能力,讓組織變得「無能」。也就是說,流程的好壞會影響到公司的競爭力。

***

Alexander說:「A pattern is a process and a thing(模式是流程也是東西)」,(請參考〈Pattern是個雙面人(上)〉、(〈Pattern是個雙面人(下)〉),Teddy覺得軟體開發方法中,很多東西同時都具備有「process」與「thing」的面向。例如,Scrum方法,本身是一個敏捷開發的框架,藉由角色、活動、產出物來描述Scrum這個「thing」。但Scrum本身也包含了「流程」的面向,也就是如何做好這些「thing」的步驟與心法。

再舉個例子,TDD(測試驅動開發)的「process」與「thing」的這兩個面向的輪廓就更清楚了。從「process」面向來看,先寫test code、再寫production code,最後再做refactoring。從「thing」面向來看,先寫test code是要界定solution的context(因為直接設計出solution可能不容易,或是不小心會陷入over design的陷阱),然後寫一個可以動的production code作為初版的form(solution)。經過幾個輪迴等form已經完備了,再透過refactoring來改善form內部的設計品質。結論就是,TDD要完成的「thing」就是最小可以work的production code,以及驗證與測試這些production code是否「合適」(fitness)的test code(context)。

***

Pattern本身是一個流程也是東西,但是一個pattern只能解決一個小問題。要解決更大、更複雜的問題,就需要套用Pattern Language。而每一個Pattern Language本身也是為了產生一個「thing」而存在,套用Pattern Language本身的方法、步驟,就是「process」。

所以說,流程重不重要?請參考〈什麼東西才是有三小路用呢?

***

友藏內心獨白:想太多,還是洗洗睡吧挑眉質疑

沒有留言:

張貼留言