Dec. 15 22:06~22:58
這學期在北科兼任的「敏捷與精實軟體開發」課程已進入最後1/3階段,前2/3課程重點放在敏捷精神、XP以及最重要的看板方法(Kanban Method)與專案實作。今天上課利用觀看一個10幾分鐘的短片來介紹Scrum流程框架的重要活動、產出物與角色。
會這麼晚才介紹Scrum有兩個原因,首先下學期還有另一門「軟體生命週期管理」課程,會花大部分的時間來專門介紹Scrum,所以這學期的「敏捷與精實軟體開發」只在課程尾聲安排Scrum的基本介紹,以便把時間用來涵蓋其他重要的內容。其次班上有2/3的學生在自己的實驗室所參與的專案中以經有Scrum的經驗,所以在課程進行中有時提到Scrum學生也不致於完全陌生。
學期的前2/3,在玩了看板桌遊、解釋看板方法的理論基礎,加上讓全班學生一起用看板方法開發軟體專案的經驗之後,再回頭介紹Scrum,並且比較Scrum與看板方法對於軟體開發與軟體專案管理所設計的機制(活動、角色、產出、規則等),相信學生比較容易理解與體驗「敏捷與精實軟體開發」的核心精神與做法。
***
無論是何種軟體開發方法,其本質用意都是要解決軟體開發(或廣義的說,產品與服務開發)所遭遇的種種問題。藉用Pattern發明人建築師Alexander所說的:「Quality Without A Name」(無名特質)的概念,這個「軟體開發問題的本質」是非常精確的一個點,但它本身卻無法用文字來描述。Waterfall、RUP/UP、XP、Scrum、Kanban、Lean Software Development、LeSS、SAFe,這些方法都只是不同人或社群對於這個「本質」的一種體驗與表述,「方法」與「形式」本身並不重要,只要認真於此領域而最終「悟道」的人,就能夠體驗到這種「特質」(Quality)。不同的人,在不同的時空環境下,都有可能用他自己的方式,體驗到這樣的特質。
接觸軟體開發這麼久,從Waterfall到RUP,接著敏捷開發流行之後接觸XP、Scrum、Kanban、精實軟體開發、LeSS、SAFe,原本N個不同種類的方法,漸漸在心中成為一種方法。又或者說「沒有方法」,當直接面對專案中各種不同的force(作用力)之後,心中自然跑出適合用來處理這些force的解決方案。這種過程,真的很難用言語形容。但Teddy相信,很多致力於軟體開發的鄉民們,都有類似的體驗。這不是秘密,而是Pattern,它會一再地被發現,只要你認真的對待它。認真生活、認真工作、認真學習。
***
以業界人士的身分在學校兼課,Teddy總是希望能夠給學生多一點實務上的幫助。畢竟軟體開發這個行業,理論與實務的落差,應該是有機會可以減到很小才對。只可惜學生缺少實際工作上被老闆、客戶、主管、同事所「煎熬」的那種經驗。少了這個context,很多非常務實的內容,聽起來、做起來,就變得有點理論了。
***
友藏內心獨白:修課也算是提供一種context。
沒有留言:
張貼留言