June 09 14:37~15:23
報告「班長」,我可以套用Design Patterns嗎?
曾經上過「Design Patterns這樣學就會了:入門實作班 」的學員問Teddy:「要怎樣說服老闆(主管)採用Design Patterns?」聽到這個問題Teddy有點不知道該怎麼回答…在程式開發過程中要用Design Patterns,為什麼要老闆同意?難道你新增一個class,寫一個function,都要先請示老闆?應該不用吧!那為什麼套用Design Patterns需要老闆同意哩?
於是Teddy開始回想1997~1998年自己開始學習與使用Design Patterns的情境,一開始專案包含Teddy一共有三位程式設計師,自己一邊讀GoF的書,一邊套用合適的patterns。然後在中午吃飯的時候,跟同事分享自己套用的心得,引發同事的興趣。不久Teddy在公司內部舉辦教學,介紹GoF這本書。現在回想起來,當初只是一知半解,但因為實際使用在專案上的經驗,還有與公司其他同事(約10人)分享學習Design Patterns的經驗,日後公司所有程式設計師在專案中使用Design Patterns已成為一種習慣。可以用的時候,就用。還不知道能不能用,就先不用。用錯了,就改。也無所謂要不要「老闆」同意,因為老闆根本不是技術出身,也不管實做細節,只要大家把軟體做對、做好就行了。
***
Design Patterns只是紀錄前人使用物件導向技術設計軟體的好方法,算不上是什麼「高科技」或進階技巧。要說難,Teddy覺得微積分、三角函數都比Design Patterns難上數十倍。微積分、三角函數高中生都可以學會,沒道理程式設計師學不會Design Patterns。更沒道理要套用Design Patterns還需要老闆或主管同意,這只是一種設計軟體的常見方法而已,不是什麼偉大的發明或創新。
所以,認真學習,開始用,然後感染、感動身邊的人,試著讓自己成為Kent Beck口中所說的那種「很厲害的人」(請參考〈多層次,非傳銷XD〉)。這就是Teddy套用Design Patterns的經驗,提供給鄉民們參考。
***
友藏內心獨白:自我管理,不需要事事請示主管,不然主管會被你煩死啊。
但有時主管/客戶會要求要先出設計文件或出 UML/ERD,然後他們看到看不懂的設計就打槍(DP 的類別圖乃至於 ERD),就真的是有苦難言。
回覆刪除另外還常遇到一種情況:資深工程師要求改設計,因為他覺得這樣程式不好做,而且甚至是用他的想法(quick and dirty)做快完才來要求,這也很囧....
Hi Leo,
刪除您說的有道理,如果是主管/客戶要求先交設計文件,是會發生這種情況。
遇到上面這種狀況,我認為就先照UML/ERD做,之後如果真的麻煩,再逐步重構,客戶通常只看最初的,之後多數不會在看那麼細了,可以有操作空間
回覆刪除