l

2014年10月24日 星期五

照妖鏡與國防布

Oct. 22 07:38~08:25

image

只要有朋友問起Scrum,Teddy經常放在嘴邊的一句話就是:

Scrum是一面照妖鏡,它不會幫你解決問題,但是可以幫你把問題暴露出來。發現問題之後,要不要解決、要怎麼解決,就要看團隊與公司的態度與決心。

Scrum有三根支柱支撐著它,就是inspection、adaptation與transparency。Inspection支撐起Scrum扮演照妖鏡的功能,透過各種會議、回饋、視覺化工作空間等方法,讓團隊的現況無論是好的或是有待改善的全都暴露出來。

Adaptation是發現問題之後,改變原本做是的方法以解決問題。很多團隊採行Scrum失敗會死在Adapt這一個環節。例如:

  • 程式品質太爛應該要增加自動化單元測試、持續整合與code review等活動。很抱歉,在我們公司辦不到。
  • PO太忙沒辦法及時回答團隊提出的問題,甚至連review會議都無法參加,應該要請PO更專注或是換一個合適的PO。很抱歉,在我們公司辦不到。

***

Inspection與adaptation的機制要能夠順利運作,最後還要搭配上transparency。開車就是一種inspection與adaptation的活動,請問在大霧中車子開的快嗎?除非鄉民們想撞車,否則一定是慢慢開。團隊狀況不透明、成員有問題卻沒有反應的機制或是不敢反應、ScrumMaster沒盡到協助團隊依據Scrum與敏捷開發的精神來執行專案。以上狀況就好像拿著一塊「國防布」把Scrum這面照妖鏡給蓋住,在這種情況下,想要藉由導入Scrum來達到持續改善的目的幾乎是不可能的任務。

***

友藏內心獨白:誰來把國防布拿掉啊。

2014年10月23日 星期四

[工商服務] 2014年12月【單元測試與持續整合實作班】招生中

Oct. 22 20:30~21:35

螢幕截圖 2014-10-22 23.45.06

 

九月份第三梯次【單元測試與持續整合實作班】結束之後,突然有3位不同的朋友問Teddy今年還會開測試課程嗎。原本是沒有打算再開測試課,但是因為Teddy臨時接到一個Scrum導入顧問案,要忙到明年,導致原本12月預計要開的【軟體重構入門實作班】課程沒時間準備,所以就把原本的開課時間(12月6~7日)拿來加開第四梯次【單元測試與持續整合實作班】。

以往測試的工作不是被當成軟體開發後期的活動,就是被省略,直接請使用者幫忙測挑眉質疑。這幾年台灣軟體開發工作對於開發人員需要具備測試能力的要求已經越來越高,同時了解coding與testing的軟體工程師,薪水與地位通常比單純只懂coding軟體工程師還要高,相對也比較容易找到好的工作。

Teddy認識的許多主管,尤其是敏捷開發團隊的主管,在找軟體工程師的時候,具備撰寫單元測試能力幾乎都是最基本的要求。如果再具備有持續整合的能力,則更是加分。

有興趣學習單元測試與持續整合的鄉民們,歡迎參加Teddy的【單元測試與持續整合實作班】,年底學正是時間,明年開春剛好可以馬上應用在新案子上面,或是領完年終換新工作讓履歷表好看一點不要告訴別人

***

本課程適合下列人士

對於軟體開發有興趣的任何人,包含軟體開發人員、測試工程師、專案經理、測試經理、使用者介面設計師、技術主管等。

 

課程內容介紹

「自動化單元測試與持續整合」除了可以確保軟體開發品質、增進開發速度、減少除錯時間,更是軟體開發團隊用來支持軟體重構(refactoring)與增加軟體架構可修改性的基石。

本課程分成三大部分,首先介紹軟體測試的基本概念,說明軟體測試中各種不同層次測試的意義,並以豐富的實際案例,帶領學員動手撰寫自動化單元測試,並教導學員了解測試涵蓋率的涵義。課程第二部分,介紹持續整合系統基本概念與版本控制系統(版控系統)之間的合作關係,並說明四種常見的分支模式以及其應用的時機。第三部分,實際動手操作持續整合系統,以Jenkins持續整合系統為例,教導學員持續整合系統的重要觀念。

課程中學員們將以實際的範例動手練習,從無到有在持續整合系統中建置一個新的專案,在其中可觀看到編譯、單元測試與測試涵蓋率等報表,並實際體驗自動化功能測試的威力。

課程主要範例以一個ATM(自動櫃員機)應用程式為例子,貫穿課程的三大部分。學員們首先將為ATM系統撰寫多個單元測試,接著將此專案放入版控系統中,練習在多人合作的模式下,合併檔案的技巧。最後,在持續整合系統中建構此專案。

※ 注意:課程內容與練習範例均以Java語言、SVN與Jenkins為主。

 

課程大綱

  • Part 1 單元測試
    • 軟體測試的 V Model 與 W Model。
    • 單元測試的基本概念。
    • 測試涵蓋率。
    • 單元測試技巧。
    • Test Double實作。
    • 何如應付程式很難測的問題。
    • 讓你的單元測試更穩定。
  • Part 2 持續整合基本觀念與版控系統
    • 為什麼需要持續整合?
    • 持續整合與開發流程。
    • 版控系統與持續整合:4種分支/合併模式。
  • Part 3 持續整合動手做
    • 持續整合與開發環境設定。
    • 遠端建構。
    • 建置持續整合專案。
    • 自動化功能測試體驗。
    • 好用Jenkins外掛
    • 實務經驗分享與情境討論。

 

課程師資

Teddy Chen

 

課程費用

原價NT$ 22,000 (含稅)

推廣期間報名優惠:

  • 2014年11月23日23:59前報名並完成繳費享早鳥優惠:NT$ 19,000
  • 四人(含)以上團報,每人:NT$17,000

每位學員贈送一份包含課程範例,包含持續整合系統的虛擬機器,可帶回開發團隊中直接使用。

 

報名方式

開課日期2014年12月6-7日(週六、週日),報名網址在此:http://goo.gl/nEMo11

***

友藏內心獨白:測試做得好,下班不怕主管吵。

2014年10月22日 星期三

好的例外處理可以拯救產品

Oct. 20 22:20~22:51

image

 

上週六(10/18)Teddy在上「Design Patterns這樣學就會了:入門實作班」的時候,有一位學員跟Teddy說…

學員:我有買你的《笑談軟體工程:例外處理設計的逆襲》,我覺得裡面有一句話寫得很好。

Teddy內心獨白:什麼,只有一句話寫得很好?!

Teddy:那一句?

學員:不可以忽略例外

Teddy:對啊,這是最基本的(就跟不可以亂丟垃圾、占用博愛座一樣不要告訴別人)。

學員:我接手了一個案子,原本案子快要失敗被廢棄,因為產品非常不穩定,原來的開發人員也找不出問題。我接手之後,看了你的書就把所有被忽略的例外全部往外丟,至少讓程式達到強健度等級一。雖然這麼做一開始程式會一直當掉,但是反倒協助我很快找到問題出在哪裡,一個一個去解決。

Teddy:這樣很好啊。

學員:現在我已經把這個產品給救起來了,我覺得例外處理真的很有用,特別過來跟你說一聲。

Teddy:謝謝、謝謝,我還以為這種書都沒人要看啊,能幫上忙我也很高興。

***

友藏內心獨白:以上內容純屬事實。

2014年10月21日 星期二

來不及測怎麼辦?

Oct. 20 21:47~22:10

image

 

在〈軟體開發的成功祕訣〉Teddy提到回北科大電子系演講的事情,演講結束後有兩位看起來像是業界人士的校友問了Teddy一個問題。

校友:我們公司也採用Scrum開發軟體,有一個問題想請教你。

Teddy:請說。

校友:我們每個sprint結束的時候,經常來不及走完測試流程,應該怎麼辦?

Teddy:來不及走完測試流程是什麼意思?

校友:我們有兩個測試環境,一個是開發測試環境,一個是使用者驗收測試環境,story完成之後需要先在開發測試環境測試,如果沒有問題才佈署到使用者驗收測試環境,找真正的使用者(公司其他部門的員工)來測試。

Teddy:你們每個sprint結束之後所完成的story都會直接布署到production環境中嗎?

校友:會啊。

Teddy:這樣很好啊。

校友:就是因為要直接布署到production,所以要很嚴謹的測試。

Teddy:你們的story有經過PO驗收過嗎?

校友:有啊。

Teddy:如果PO已經驗收過了,為什麼還需要找其他人在使用者驗收測試環境中再測試一次?

校友:因為其他人會測出不同的問題啊。

Teddy:所以PO驗收過的不算數 ?

校友:使用者驗收測試環境還是很重要,不能不做。所以我們現在的做法是,取消開發測試環境,減少一個測試關卡。

Teddy:啊?沒有開發測試環境,你們怎麼知道布署到使用者驗收測試環境的功能是正確的?

校友:這也是我們現在遇到的問題啊。

Teddy:你們現在開發人員都怎麼測試?

校友:就自己測試自己的。

Teddy:自己測試自己的?哪整個系統的測試呢?你們沒有在持續整合系統上跑過一次測試案例嗎?

校友:我們沒有持續整合系統。

Teddy:這可能就是你們的問題,我覺得你們不應該也不能廢除開發測試環境,而是要導入持續整合系統,然後透過持續整合系統自動化開發測試環境上的整合與測試工作。

***

實施敏捷開發,無論是不是採用Scrum,單元測試、持續整合這兩者都是應該要一起服用的「補品」,否則要成功,很難

***

友藏內心獨白:手動測試當然快不起來啊。

2014年10月20日 星期一

軟體開發的成功祕訣

Oct.18 22:40~23:35

image

 

10月17下午回母校北科大電子系演講,到了現場之後嚇了一跳,怎麼資工系的柯老師也來了。原來這個演講活動是電子系與資工系大學部加上一個什麼XX班一起合辦。

因為是大學部的學生,又是電子系(演講邀約當時Teddy以為只有電子系的學生),一開始規劃題目的時候也是挺傷腦經的。相信很多人在讀書的時候都參加過這種演講活動,正是學生坐在冷氣房聊天、睡覺補眠的好機會。講得太艱深自己很high台下睡成一片,講得太簡單也不知道有什麼可以說的。最後訂了一個不痛不癢的題目:「軟體開發的成功祕訣」

其實Teddy骨子裡是想要介紹敏捷開發方法,但是覺得敏捷方法對電子系的學生來講過於陌生,所以就取一個比較一般性且聽起來比較容易理解的題目。

其實軟體開發沒有什麼秘訣,但是可以有方法,什麼方法?敏捷方法。

螢幕截圖 2014-10-18 23.03.00

 

Teddy接著介紹了幾個觀念:

  • 從瀑布到敏捷。
  • Iterative and Incremental Development。
  • 敏捷專案的特性
    • Inspect、Adapt and Transparency
    • Value-Driven
    • Timeboxing
    • Rapid Feedback

螢幕截圖 2014-10-18 23.08.59

 

以幾快速介紹以下幾個敏捷實務做法。

螢幕截圖 2014-10-18 23.10.00

 

最後談到可以從discipline * skill = competence(紀律 * 技能 =  能力)的角度來評量敏捷團隊成員的能力。

原本還準了簡短介紹Kanban,但是最後被Teddy技術性跳過微笑。投影片在此,有興趣的鄉民請自行服用。

***

友藏內心獨白:沒想到有圍觀的鄉民。

2014年10月19日 星期日

2014京都考察之旅Day9-E夜訪六角堂

Sep. 18 21:13~21:35

在平安神宮附近吃完晚餐之後來到六角堂賞夜櫻。這個景點在Day3就來過一次,但是因為記錯開放時間當天六角堂沒開,今天二度造訪抱持很大的期待。可是到了之後發現六角堂占地不大,晚上燈光昏暗,打了燈之後感覺還可以,不過很多東西都看不清楚,走路還要小心不要撞到眾多遊客。

螢幕截圖 2014-09-18 21.16.23螢幕截圖 2014-09-18 21.16.46螢幕截圖 2014-09-18 21.17.00螢幕截圖 2014-09-18 21.17.27螢幕截圖 2014-09-18 21.17.49螢幕截圖 2014-09-18 21.18.01螢幕截圖 2014-09-18 21.18.14螢幕截圖 2014-09-18 21.18.35螢幕截圖 2014-09-18 21.19.01

 

最令人失望的是,六角堂主打的櫻花主角,居然已經發芽了(下面第一張照片)。

螢幕截圖 2014-09-18 21.18.21螢幕截圖 2014-09-18 21.18.43螢幕截圖 2014-09-18 21.19.14螢幕截圖 2014-09-18 21.19.23螢幕截圖 2014-09-18 21.19.34螢幕截圖 2014-09-18 21.19.43螢幕截圖 2014-09-18 21.20.15螢幕截圖 2014-09-18 21.20.36螢幕截圖 2014-09-18 21.20.46螢幕截圖 2014-09-18 21.21.10螢幕截圖 2014-09-18 21.21.19螢幕截圖 2014-09-18 21.32.49

 

最後沒有待很久,在旁邊的星巴克買了杯拿鐵就回旅館休息了。

螢幕截圖 2014-09-18 21.21.38螢幕截圖 2014-09-18 21.33.28螢幕截圖 2014-09-18 21.33.58

***

友藏內心獨白:怎麼櫻花都謝了才開放啊。

2014年10月18日 星期六

2014京都考察之旅Day9-D平安神宮晚餐

Sep. 17 22:05~22:33

離開仙洞御所下午四點半左右來到平安神宮,預計在附近逛逛,順便找個地方吃晚餐。

螢幕截圖 2014-09-17 22.08.16螢幕截圖 2014-09-17 22.07.20螢幕截圖 2014-09-17 22.07.52螢幕截圖 2014-09-17 22.08.03螢幕截圖 2014-09-17 22.08.22螢幕截圖 2014-09-17 22.08.29螢幕截圖 2014-09-17 22.08.39螢幕截圖 2014-09-17 22.08.52螢幕截圖 2014-09-17 22.09.36螢幕截圖 2014-09-17 22.09.10螢幕截圖 2014-09-17 22.10.33螢幕截圖 2014-09-17 22.10.37

 

附近有一家賣霜淇淋的,蠻多人買的,味道還不錯。

螢幕截圖 2014-09-17 22.12.34螢幕截圖 2014-09-17 22.12.42螢幕截圖 2014-09-17 22.12.58

 

沿著河邊隨意走,散步順便找吃的。在〈2014京都考察之旅Day2-A蹴上傾斜鐵道 & 岡崎櫻迴廊〉這一集Teddy和Kay搭船經過這附近的時候,正好遇到櫻花盛開。才過了一個禮拜,很多櫻花都凋謝的差不多,甚至長出綠葉。所以要看到每個景點都剛好是滿開的盛況還需要碰運氣,日子沒算好差一兩天就差很多。

螢幕截圖 2014-09-17 22.13.04螢幕截圖 2014-09-17 22.13.13螢幕截圖 2014-09-17 22.15.26螢幕截圖 2014-09-17 22.15.36螢幕截圖 2014-09-17 22.15.43螢幕截圖 2014-09-17 22.16.00螢幕截圖 2014-09-17 22.16.12螢幕截圖 2014-09-17 22.16.24螢幕截圖 2014-09-17 22.17.06螢幕截圖 2014-09-17 22.16.53

 

看到一家店,從外面看起來感覺氣氛很好進去試看看。西式餐點,東西非常好吃。分量不算多但一份1300日圓也不算貴,店內氣氛也很好,給它一個讚很棒

螢幕截圖 2014-09-17 22.24.31螢幕截圖 2014-09-17 22.24.38螢幕截圖 2014-09-17 22.24.44螢幕截圖 2014-09-17 22.24.53螢幕截圖 2014-09-17 22.25.27螢幕截圖 2014-09-17 22.26.16螢幕截圖 2014-09-17 22.25.52螢幕截圖 2014-09-17 22.26.08螢幕截圖 2014-09-17 22.26.33螢幕截圖 2014-09-17 22.31.51螢幕截圖 2014-09-17 22.32.02螢幕截圖 2014-09-17 22.32.30

***

友藏內心獨白:好想再吃一次啊。