June 04 14:36~15:00
放好行李之後趁著天還沒黑來到高瀨川,這的地方幾年前冬天的時候來過一次,和現在櫻花滿開的景象,簡直是「判若兩地」。有疑似台灣人來這裡拍婚紗,一路上看到很多穿和服的,也不一定是日本人,極有可能是台灣人或是大陸人。
***
下午五點半,肚子餓了,在附近的百貨公司隨便找了家店吃晚餐。
***
吃完晚餐將近晚上七點,再回去高瀨川看夜櫻。
***
友藏內心獨白:日夜兩樣情。
June 04 14:36~15:00
放好行李之後趁著天還沒黑來到高瀨川,這的地方幾年前冬天的時候來過一次,和現在櫻花滿開的景象,簡直是「判若兩地」。有疑似台灣人來這裡拍婚紗,一路上看到很多穿和服的,也不一定是日本人,極有可能是台灣人或是大陸人。
***
下午五點半,肚子餓了,在附近的百貨公司隨便找了家店吃晚餐。
***
吃完晚餐將近晚上七點,再回去高瀨川看夜櫻。
***
友藏內心獨白:日夜兩樣情。
June 25 21:22~22:35
腳上綁著鏈球,錢怎麼可能賺得快XD
一位好朋友去年有一段時間一直詢問Teddy有關Scrum的問題,朋友表示自己帶領的軟體開發團隊遇到很多問題,像是專案時程延誤、品質不佳、客訴問題不斷、開發人員士氣低落且離職率高等。一開始Teddy也很認真地幫助朋友分析可能的問題,以及提供在Scrum框架下改善的方法與步驟建議。奇怪的是,談了幾個月,朋友對於Scrum還是非常有興趣,但是這個興趣僅止於「嘴巴上」,完全沒有落實在朋友的專案開發活動中。
Teddy:都跟你談了這麼久,怎麼也沒看你在專案上套用Scrum?
朋友:喔,我們公司體質比較特殊,所以我還在評估當中。
Teddy:去你的書櫃上把食譜拿出來讀一百次,你也不會成為一位好廚師。
***
今年朋友的興趣突然轉移到精實開發與Kanban方法上,又問了Teddy一堆有關這方面的問題。
Teddy:你不是說要採用Scrum?
朋友:原本是這樣啦,但後來聽說Kanban很熱門,我覺得這個好像比較適合我們。
Teddy已經從朋友身上聞到同樣的bad smell,就是「用想像力改善軟體開發」。
***
Teddy經常被問到:「我派人去上Scrum課程,可以得到什麼成效?」、「要如何評估公司同仁上完課程之後,績效是否有變好?」「上課的KPI要怎麼訂?」
上課只是一個開始,讓團隊可以嘗試Scrum的開始。上課的「結果」就是「可以開始」,不是結束。在不管怎麼做都是錯的情況下,要如何改善?過分警慎可能會減低行動力以及反應外在環境變化的能力。比較好的方法,可能是一開始不斷地犯錯,然後從錯誤中學習,減少日後犯錯的機會。有人說:「如果你從不曾失敗,那就代表你沒有真正成功」,大概就有點這樣的味道。
***
友藏內心獨白:學騎腳踏車很少有人不跌倒的。
June 20 13:04~14:50
對許多軟體工程師而言,學習pattern等於學習design pattern也等於學習GoF的23個design pattern。其實pattern本身的意義比廣義的design pattern,或是狹義的GoF Design Patterns還要來的多。
Pattern作為一種溝通工具,其目的希望扮演a common ground for communication(一個共通溝通基礎),這一點也是一般鄉民比較熟悉的觀點。假設開發團隊中的成員都了解23個GoF Design Patterns,在溝通軟體設計問題的時候,就可以直接用pattern來討論。有了設計的共同語彙,不但可以增加溝通的「頻寬」,也可以減少溝通的誤會。
***
Pattern的另外一個好處,就是可以讓「外行人」(layman)快速上手某個特定的領域。例如一個不熟悉軟體測試的工程師,如果透過傳統方式來學習軟體測試,可能必須要先了解軟體測試的基本觀念,然後再寫過幾年的測試程式,從中摸索與累積經驗。這個過程少則2~3年,多則3~5年,才能略有小成。但是,如果藉由閱讀《xUnit Test Patterns: Refactoring Test Code》,從中吸取前輩們的日月精華,將可有效地縮短學習的旅程(但前提是需要看得懂用pattern格式所記錄下來的知識)。
資訊安全、測試、軟體架構、介面設計、軟體設計、分散式計算、程式撰寫等,每一個技術領域,都有人已經整理好相對應的pattern,就躺在書局等著鄉民們去幫他們「贖身」。
***
Teddy一直覺得,pattern的重要性在台灣被低估了(此為正常現象,請安心服用)。在業界可能還稍微好一點,但在學界這個現象就很明顯。2002~2003年左右,台灣政府有一個「數位學習國家型計劃」,當時Teddy正在學校念書,因為回學校念書之前在業界做了7年的e-learning工作,於是指導教授就建議,可以提一個「A Pattern Language and System for Web-Based Instruction Design」的計畫作為Teddy的研究題目。花了很多時間寫計畫書,計畫送審之後,一共收到三位評審委員的評論。這個分組一共有五份計畫書,從評審的英文評論猜測,前兩位評審應該是老外,給了這個計畫第1和第2名。第三個評審應該是台灣人,給了第4名。第三個評審的理由大意是:「計畫主持人不是教育背景出身,這種pattern方法一定會失敗」。最後計劃案就在主辦單位「全盤考慮」之下,就這樣被做掉。
雖然計劃案沒過,不過還好Teddy在指導教授的支持之下,還是持續做了三年的pattern研究。說真的當初花時間去研究Alexander的pattern理論,也不知道能夠幹什麼,有些部分也是一知半解。但現在回想起來,還好當初有投入時間研究,否則現在也很難把很多有關軟體開發與設計的問題弄得那麼清楚。
***
友藏內心獨白:有人的地方就有黑暗的一面。
June 23 21:04~21:58
畫面節錄自電影「九品芝麻官」
2009年的時候,洪蘭女士寫了一篇《不想,就讓給別人吧?》的文章,提到「台大醫學院的學生不但上課遲到,進到教室後,還吃泡麵、啃雞腿、打開電腦看連續劇、或是趴在桌上睡覺。」,文章中批評上課不認真的學生「尸位素餐」,是最可恥的行為。
洪蘭女士說:「尸位素餐,是最可恥的行為。」Teddy說:「比尸位素餐更可恥的行為,就是無位素餐。」 為什麼?讓我們看下去。
***
Teddy沒有遇到學生上課吃泡麵、啃雞腿的事件,但卻遇到一件更加「離奇」的案件。今年春天Teddy在「國立」(有人說,這兩個字很重要XD)台北科技大學資工所兼任了一門「軟體生命週期管理」課程,在上課的第一天Teddy就告訴學生,這門課不接受旁聽。這門課主要講授在Scrum框架下如何做好軟體生命週期的管理活動,加退選結束後,班上一共有22名學生,分成四組,整個學期要在Scrum框架下開發一個Android App。
22個學生中,有一位A同學經常遲到,甚至缺席。Teddy曾經警告過A同學,如果再遲到一次,之後就不用再來上課。在Teddy發出警告之後,A同學準時上課了1~2次,但後續又有幾次遲到與缺席的紀錄。Teddy一時心軟,想說在校學生還在學習,多給了A同學好幾次機會,沒有把他轟出課堂。
在課程進行期間,Teddy一直覺得很奇怪,既然選了課,就好好修,為什麼會有這種學生,一副毫不在乎學期成績的樣子?不想修就不要修啊,又沒人拿刀逼他。今天答案終於揭曉,就在Teddy進入學生課程系統輸入期末成績的時候,才發現A同學根本沒修這門課。後來進一步追查,A同學才自己承認他根本不是資工系的學生,而是「電子系進修部」的學生。
奇怪,一個他系的學生,而且還是「進修部」,怎麼可以跑到資工系的實驗室(Teddy曾經幾次看到A同學在資工系某老師的實驗室出沒)?該實驗室的其他修課學生,還配合A同學一起欺騙。沒想到回到自己母校兼課,上課還要搞得跟防賊似的,這是什麼情形?!
***
學期結束後,A同學在Facebook上公開發了一則留言:
這位A同學課後還「沾沾自喜」,認為自己「最厲害就是到最後一刻都沒有被發現沒修這堂課」。不知為什麼Teddy心中突然想起當年的「卡神」事件。這個年頭,想當「大神」的人,還真不少啊。
北科大校訓:「誠樸精勤」,第一個字幫你放大了,有看到嗎?
Teddy身為北科大(北工)電子系(科)、資工系的雙重系友,以及本課程授課老師,學校出了這種蓄意欺騙的學生(們),實在令人感到失望與痛心。前幾天Teddy才在〈大大,大什麼大?!〉提到:軟體開發,除了技術,也要有「好人品」,兩者同等重要。光有技術,人品零分,兩者相乘還是零分。沒想到馬上就遇到一個剛出爐熱騰騰的例子。就算A同學沒修課,Teddy當不了他,他的人品已經被自己給死當了。
***
友藏內心獨白:家裡遭小偷,不去抓小偷難道要怪受害者為什麼不裝鐵窗?
June 20 09:16~09:34
昨天(6月19日)是C. C. Agile最後一次在「蛙咖啡」舉辦,下次就要移師到泰迪軟體的新辦公室。昨天主講者Benny Wu分享他的創業旅程,從離開大公司自行創業、第一個產品失敗的省思、面對生活壓力的掙扎、觀察客戶的需要與發掘新點子、參考「精實創業」的建議,快速驗證商業模式、與創投接觸的經驗,非常有趣。
這次聚會有四位朋友特地從台中北上參加,也創下C. C. Agile有史以來最多的發問記錄。
***
感謝「蛙咖啡」陪伴C. C. Agile這一段時間,這是一個可以讓與會者留下來聊天討論的聚會場所。也感謝所有曾經參加C. C. Agile的講者與聽眾,希望未來的新場地可以提供更好的聚會體驗 XD。
***
友藏內心獨白:劃下完美的句點,開始另一段新的旅程。