l

2016年6月22日 星期三

如果當初早知道

June 21 22:40~23:43

擷取

 

這學期在北科第四年兼任教「軟體生命週期管理」,往年的課程進行方式請學生分組,利用一學期的時間採用Scrum方法開發一個App。第一年的題目由Teddy指定,所有組別都作相同的題目。第二年和第三年由學生自定,但必須使用到GPS與地圖功能。今年改變方式,讓三組學生做同一個題目,體驗一下多個Scrum團隊如何共同開發一個產品。

這種課程設計,有幾個問題需要考慮:

  • 課程名稱是「軟體生命週期管理」,所以要把Scrum框架與「軟體生命週期管理」兩者之間的關聯交代清楚。
  • 接著要介紹敏捷開發精神,為什麼從waterfall邁向敏捷。
  • 然後要介紹Scrum。
  • 以及Scrum拓展到大型專案(多個Scrum團隊)的方式。
  • 這些基本知識都「略懂」之後,用一個專案,在四個sprint內透過實際開發活動落實並體驗多團隊Scrum。
  • 最後,還希望同學可以在十八週之內儘量學會課程所要傳達的重要觀念。主要是希望學生在面對軟體開發生命週期各項活動的時候,可以從waterfall mindset(瀑布思維)慢慢轉變成agile mindset(敏捷思維)。

如果用傳統「講課」的方式,雖然可以教很多「課程內容」(講很多張投影片)給學生,但就算Teddy再怎麼舌燦蓮花,軟體開發活動光是用「講的」學生肯定無感。後來規劃在開學前1/3的時間主要用來教基本的知識,有了這些知識之後,學生就可以開始透過專案來體驗。

學期前幾周Teddy先:

  • 介紹軟體生命週期管理與Scrum的關係
  • 單一團隊的Scrum框架(標準版Scrum),指定學生閱讀書籍章節與文章。
  • 請助教Erica帶學生玩幾個敏捷遊戲用來學習重要的敏捷精神,包含:
    • 多工遊戲:體驗只要改變工作方法(流程),就可以大幅提升生產力。
    • 棉花糖挑戰:體驗團隊合作、自組織、跨職能團隊、目標、迭代式開發。
    • Lego Scrum Game(樂高Scrum遊戲):讓多個團隊一起用樂高蓋一座北科大學城,感受多個Scrum團隊合作的方式以及會遭遇到什麼問題。
    • 自組織遊戲:感受一個口令一個動作與自組織的差別。

接下來就進入實際開發活動。

***

扯了這麼多,以上只是前情提要。本篇的重點是,今天Teddy改完學生的期末考卷,其中有一題是請學生閱讀LeSS Framework(一種大規模拓展Scrum的方法),請學生說明LeSS的重點,比較這學期在課堂上哪些活動包含在LeSS的規範中,哪些LeSS有提到的在這門課中沒有涵蓋到。

Teddy上課並沒有把LeSS Framework拿出來教,但經過一整個學期的實際體驗,相信學生都應該有能力可以自行閱讀理解大部分的內容(迷之音:不理解就代表…嘿嘿嘿)。

有學生建議,如果可以在開始實作之前就稍微提一下LeSS,也許可以減少學生在跨組合作所遭遇到的一些問題。也有學生提到,如果還沒有動手做專案之前就讓他們去讀LeSS,他們應該沒什麼感覺。

Teddy的觀察是:「事後諸葛易當,事前諸葛難尋」。很多團隊互動的問題,其實早在玩Lego Scrum Game的時候就已經暴露出來了,但當下學生對問題無感。這實屬正常現象,因為當時在他們的世界(context)裡面,並不存在感受「多Scrum團隊合作的force」的能力。

不過學生的建議也並非完全沒有道理,至少可以先提供LeSS的連結給學生,然後再看看期末會生出什麼不一樣的理由XD。

***

友藏內心獨白:不是很會Google嗎?

沒有留言:

張貼留言