Feb. 16 10:36~12:08
▲課程內容大致涵蓋這幾本書
下禮拜就要開學了,內心有點「藍瘦」但還不到「香菇」的程度。以前當學生的時候最喜歡寒暑假,沒想到畢業這麼多年因為兼任教師的身分導致自己到現在還是喜歡寒暑假。2013年開始在北科資工所兼課,慢慢地才發覺原來學校是這麼一個奇特的地方,無論是學生或是老師,其實都不太想「上學」XD。
前一陣子和Kay聊天提到大學助理教授時薪只有735元,Kay的第一個反應是「怎麼這麼低。N年前我念大學的時候當家教只教一個人一小時就500元了。」這735元還是2014年教育部調漲16%之後的結果,在這之前時薪只有630元。有鄉民可能會認為,735元比起最低時薪133元高出5.5倍,已經好很多了。但如果把備課、出作業、改作業(學校通常沒有安排助教給兼任老師)、出考卷、改考卷、課後回答學生問題的時間都算進去,其實比最低時薪好不了多少。
以一個月四周來計算,每周上三個小時,兼任一門課一個月收入為4 * 3 * 735 = 8,820,一整個學期十八周收入為39,690,「公益指數」大概跟寫書不相上下吧。
***
今天重點不是要抱怨鐘點費,而是想談開學後「軟體生命週期管理」課程要教什麼。今年已經是第五年在北科教這門課,搞不好會是最後一年。鄉民們請放心Teddy還活得好好的,因為去年底實驗室聚餐,指導教授提到想讓Teddy去接手原本由他任教的「軟體架構」課程,但還需要跟系上討論一下。抱著「可能是最後一次教這門課」的心情,今年課程進行方式想要做些幅度大一點的改變。這門課以往都是以Scrum為主,串起軟體生命週期中的所有活動。主要包含需求探索、Scrum框架與角色、敏捷精神,並且以專案開發的方式來實作。
以前這門課主要精神都花在Scrum上面,今年想要改變一下,讓Scrum退居第二線,把重點放在BDD(behavior-driven development,行為驅動開發)上。也就是用BDD來串起軟體生命週期裡面的各項活動,包括:
- 需求:從Impact Mapping(影響地圖)開始探索需求,然後銜接User Story Mapping(用戶故事地圖)發展與管理需求,最後藉由Scrum在每一個迭代中實作功能。
- 分析/設計:採用BDD/TDD的方式,逐一將需求轉化為實作。BDD工具預計使用Cucumber(Cucumber for Java)。
- 架構:採用Microservice Architecture(微服務架構),讓每一個開發出來的功能(feature)儘量可以獨立運作,也可以簡化持續佈署的工作。
- 持續整合/持續佈署:每一個開發的功能都要放到持續整合系統上建構,最終目標要做到持續佈署。此外,由BDD所產生的living documentation也必須放在持續整合系統上。
整個課程會配合專案開發實作,今年繼續沿用去年的題目:「泰迪軟體課程管理系統」。雖然題目一樣,但進行方式大不相同。今年會採用Impact Mapping分析這個系統,然後用User Story Mapping展開這個系統的細部功能,接著介紹Scrum,以及多Scrum團隊的開發方式。然後藉由User Story Mapping來規劃產品的釋出計畫,再把這個計畫分配到每一個開發迭代週期。
以往在北科上課比較少談到程式碼,但今年因為要以BDD/TDD為主幹,所以課堂上會有比較多的BDD/TDD開發內容與coding練習活動,也會討論從BDD銜接到TDD的過程。此外,會花一些時間跟同學討論如何善用Given…When…Then的格式來撰寫需求,並減低實作改變對於BDD需求文件(程式碼)所造成的影響。
***
BDD/TDD也好,傳統的OOAD也罷,都不會保證一定產出設計良好的產品。希望藉由一個大小適中,而且問題領域Teddy也很熟悉的題目,讓學生可以體驗在敏捷開發中現行主流的軟體生命週期管理方式…之一。
***
友藏內心獨白:只有之一,沒有唯一。
沒有留言:
張貼留言