如何將教學放到一個真實的項目中進行教學活動的展開,是很值得探究的問題。
查建中教授的《中國工程教育改革三大戰略》書中論述了在過去50年里基本沒有改變的環境因素包括:對于客戶需求和社會問題的關注:將完整的新產品、新工藝和新系統交付使用;面向未來擔當發明和新技術創造者角色;利用多學科知識來解決問題;團隊工作、有效率、技術組織的領導力;需要高效工作,利用現有資源和條件來完成任務并盈利。同時,書中還論述了工程環境的某些轉變特征包括:從征服環境到治理環境的轉變;全球化和國際競爭;工程活動在地域和內容上的分散化:日益以人為本的工程實踐;愈加重視服務型的工程產業;跟上技術的快速發展。
從上面的論述中可以看出,職場環境的特征有很多內容是不變的,或稍有變化。這些特征都是一個企業要發展壯大就要遵從的客觀規律。從另一個角度看,也就是企業界對教育界的產品——學生的客觀要求。
將“教育”的前面加上“工程”二字,在筆者看來是一個根本的改變。既然是工程教育,就不是只管傳授知識,而要有進度管理、質量管理、度量管理,要將工程管理思想直接引入到教學活動中,從而保證教學的高質量。本文將介紹筆者在教授本科生軟件項目管理課程中的一些教學經驗。
迭代增量式教學方法,按項目階段開展教學活動。我將教學計劃當作工作計劃來制定,按真實項目的需要,將知識點穿插到課程中。比如說風險管理,在書本上都是后面的內容,如果按章節知識點順序講解,項目都快做完了學生才能學到這些知識。所以我將相關章節的內容提前講解,使學生能夠現學現用,同時在教學過程中加入了檢查點,便于及時了解項目的進展情況。
在教學活動過程中,有學生小組利用迭代增量的方法制定了計劃。三周內七個人,每人各負責三個模塊,并且每周一次集成測試,表1為他們真實的項目里程碑。
我們分析一下上面的里程碑計劃中的關鍵因素:總工期是兩個月多一點,最重要的是在一個月多一點的時間他們就已經完成了增量一、增量二的開發任務,完成了總工程量的70%左右。我的經驗告訴我,在實際工程中如果是時間過半,關鍵路徑上的工作基本完成,這個項目就離成功不遠了。
將迭代增量式的軟件開發方法用于教學活動,所帶來的好處,大大超出了我的想象。
利用多學科知識解決實際問題。課間曾有學生告訴我“老師,我們這學期有好幾門課,都有大作業,都沒時間做了”。說者無心,聽著有意。2009年初的第一堂課,我就問大家,這學期哪些課程有大作業。學生們七嘴八舌議論之后,我聽明白了。軟件工程實踐的課程是學生都必須選的,學期前8周軟件工程實踐和軟件項目管理兩門課程同時開課,并且共用了一個項目。后8周課程中,有一門軟件測試課程,也需要真實的項目進行測試理論的實踐。于是我的課程最后提交的項目是其他老師課上的作業。學生很高興,一門課的作業,可以當兩門課的作業,太好了!我說:“項目做什么?怎么做?遇到技術問題怎么辦?我都不管。我只管針對一個真實的臨時目標,如何一步一步,按時、按質走到終點。這就是軟件項目管理課程的終極目標。”



在2009年上學期的軟件項目管理課程結束時,“喜羊羊與灰太狼”小組居然拿來