l

2016年1月28日 星期四

自己這一關

Jan. 27 21:10~23:01

擷取2

▲2013年到北京旅遊所拍攝的長城照片

 

原本去年預計要開「軟體重構入門實作班」,核心教材其實設計得差不多,就剩下準備實作範例。後來因為忙於Scrum導入顧問案,可以專心設計教材的時間變的片片斷斷。加上去年讀書的焦點不小心被「帶風向」跑到「soft-skills」與大規模敏捷拓展這方面,技術類的「hard-skills」就暫時跑到旁邊玩沙去。

每個人對於「開課」的標準不同,Teddy算是比較龜毛一點,總覺得除非這件事自己做過、確定可行,而且已經把這個領域的問題融會貫通到一定程度,有能力幫助別人可以在上完課之後具備「自行覓食」的能力,否則不敢輕易開課。以Teddy目前所開課程為例,都是累積數年甚至十數年的成功與失敗經驗,才敢開課:

  • Scrum敏捷方法實作班:2001年接觸XP,2008年開始第一個業界的Scrum專案(搭配XP實務作法),為期三年半。該團隊在Teddy離開之後還繼續跑Scrum直到今日,且持續不間斷釋出軟體產品。另外,在2008~2009年期間Teddy和實驗室學弟一起開發一個稱為ezScrum的開源Scrum工具(Teddy擔任Product Owner)。成立泰迪軟體之後,接觸到數十個跑Scrum的團隊,持續累積不同公司跑Scrum的實務經驗(成功和失敗的都有)。
  • Design Patterns這樣學就會了–入門實作班進階實作班:1997年開始藉觸GoF Design Patterns並在Java與VB專案上套用patterns。2003學習建築師Alexander的pattern和pattern language理論一直到今天都還在學(學不完啊)XD。2004年投稿一篇e-learning pattern language並到美國參加PLoP 2004。2007年又寫了另一個e-learning pattern langauge到法國參加WBE 07研討會。2011年投了一篇跨平台軟體開發持續整合pattern的論文到日本舉辦的AsianPLoP 2011。後來這幾年都在教別人寫pattern自己反而沒時間時間整理pattern了。
  • 單元測試與持續整合實作班:忘了哪一年,大概在2000年前後知道了JUnit這個工具,當時Teddy主要的工作用VB開發,沒有找到免費的VB單元測試工具。後來在網路上買了一個給VB使用的xUnit工具,開始了撰寫單元測試的日子。比起以前只會手動測試,有了自動化單元測試對於程式設計師而言真的是太幸福了。後來回學校念書從2003年開始直到畢業,連續好幾年帶著學弟妹開發一個稱為JCIS(後來改名ezIntegtator)的開源持續整合系統。這個系統一直到前幾年都還有學弟持續開發,後來演變成雲端手機測試平台。2008年開始跑Scrum之後,單元測試和持續整合都是支持軟體可以持續演進的必備活動。
  • 例外處理設計與重構實作班:這是Teddy的「法定專長」,博士論文題目。
  • 看板方法與精實開發實作班:約略2008年跑Scrum的同時接觸看板方法與精實開發,但坦白說這方面的實務經驗相較於其他課程是最少的。因為看板方法算是後起之秀,在當年願意跑Scrum的團隊已經很難找了,更何況是更鮮為人知的看板方法。除了實驗室學弟嘗試過以外,大部分的知識來自於自己個人的試驗與大量閱讀。去年有幾個客戶開始「認真」的跑看板方法,也讓Teddy累積了更多第一手的實務經驗。

***

泰迪軟體應該是台灣第一間專門從事敏捷開發培訓與導入服務的公司,有人曾經問Teddy:「你是不是看Scrum流行所以才成立公司 搶錢 經營這個市場?」當然不是,Scrum只是軟體開發世界眾多方法的一個,並非全部。Teddy是因為幾年前遭遇「中年危機」,不想繼續在大公司裡面受限於制度而無法做一些自己有興趣的事。當初成立泰迪軟體也是很「挫」,不知道能不能養活自己。現在回頭看,能夠做自己喜歡的事並且在社會上生存下來,真的是很幸福與感恩。

泰迪軟體成立一年左右就有鄉民問Teddy什麼時候可以開「TDD」的課?如果為了賺錢當時的1~2個月後就可以開,但Teddy以前工作的經驗,大概只有不到5%的程式是用TDD的方式開發,大部分的系統設計還是遵循傳統的OOAD(物件導向分析設計)。正如昨天Teddy在〈切換到研究模式〉提到的:

  • 物件導向分析設計裡面的conceptual model/design model和BDD/TDD這兩者之間的關係是什麼?
  • 很多人學了BDD/TDD,最後除了學會一些測試技巧以外,並沒有真正持續使用BDD/TDD。為什嗎?(困難點在哪裡?)

這兩個問題還沒想透徹之前,過不了自己這一關。工具的使用很重要,但驅動工具背後的理論基礎如果不穩固,工具的威力便會受限,學了之後也不容易養成「自我覓食」的能力。

***

每個人心中都有「一關」,課程設計只是將這「一關」具體化罷了。

***

友藏內心獨白:關關難過。

沒有留言:

張貼留言