摘要:軟件項目管理是軟件工程專業的主要專業課程,針對課程中理論知識抽象,學生學習積極性不高等問題,文章結合筆者教學改革實踐,從教學內容、教學過程、考核方法的設計等方面進行了探討,重點論述先進軟件平臺輔助下的項目導向型學習過程。
關鍵詞:軟件項目;項目管理;教學改革;項目導向
軟件項目管理課程作為軟件工程專業的主要專業課,對培養工程化的軟件人才有極為重要的意義。在早期軟件工程專業的課程設置中,對學生的軟件開發工程化教育主要由軟件工程課承擔,但隨著計算機、網絡等技術的飛速發展,軟件項目的規模、復雜度等大大增加,同時對軟件項目的質量、進度、成本等約束又要求有更嚴格的控制。在此背景下,只依靠軟件工程課作為學生軟件工程化教育的支撐已經無法達到培養合格軟件工程師的要求。
大連東軟信息學院作為培養應用型IT專門人才的院校,2005年開始在軟件工程專業本科生中開設軟件項目管理課程。課程安排在三年級下半學年的軟件工程課之后、四年級的項目實訓之前,講授軟件項目管理知識,在鞏固軟件工程課所學知識的同時,對后續的實訓項目開發和畢業設計又進行了知識和技能儲備。
雖然軟件項目管理課程有著重要的意義和作用,但作為本科生課程學習還有一些困難,主要體現在以下方面:
1)軟件項目管理概念抽象、知識點眾多,學生不愿記憶,學習沒有興趣。
2)在校學生缺少實際項目經驗,對于課程中的工程概念不易理解,學習難度大。
31授課教師往往缺乏工程項目經驗,照搬書本,授課過程枯燥乏味。
4)學生認為學習軟件項目管理沒有學習編程語言那樣直接的效果,學習動力不足。
針對以上問題,結合軟件項目管理課程的教學實踐,我院在授課內容設置、教學過程和方法以及課程考核等方面進行了有益的探索,取得了較為顯著的教學效果。
1 教學內容設計
軟件項目管理是一門理論性和實踐性都很強的課程,以往的教學活動中往往更強調理論知識的識記,致使學生感覺概念難于理解,無法指導實際項目開發,理論脫離實際。筆者在教學活動中將理論和實踐教學的學時比重設置為1:1,更加強調實踐,對理論知識做有重點的講授,收到了理想的效果。
1.1 理論教學抓重點
在授課內容上首先不能一味追求全面,因為受到課程學時及學生能力的限制,要想在教學中涵蓋PMBOK的9個知識領域,即項目綜合管理、范圍管理、時間管理、成本管理、質量管理、人力資源管理、溝通管理、風險管理和采購管理,并且講得較為深入細致是不可能的。為此課程中我們選擇項目管理的4個核心知識域重點講解,包括項目范圍管理、時間管理、成本管理和質量管理,占理論學時的3/4。對于4個項目管理的輔助知識域(人力資源管理、風險管理、溝通管理、采購管理)和對各領域管理進行有機整合的項目綜合管理則作介紹性講解,占理論學時的1/4,要讓學生了解相關概念,在課程實踐過程中再結合項目滲透講解。
軟件項目在管理知識域上可以分為9部分,但如果授課過程僅按各部分割裂講解,學生必然不會對各項管理間的聯系以及各項管理該如何進行實施有清楚的認識,所以按時間順序把項目分成啟動、計劃、執行和控制、收尾各個階段,授課時在各階段結合具體知識域講解,如表1所示。

1.2 實踐教學抓工具
隨著計算機技術的發展,諸多行業都引入了軟件工具的支持,軟件項目管理這個軟件產業的指揮棒更是不例外。學習項目管理軟件的使用能讓學生形象地認識到項目管理的相關理論和過程是如何應用的,因此在實踐教學中一個重要的內容就是學習使用經典項目管理軟件。
業界用來進行軟件項目管理的工具軟件很多,其中最著名的就是微軟的MS Proiect軟件(當然MS Proiect可以用在各類項目的管理中),這個軟件相對簡單,對于有Office使用經驗的學生,在學習了項目管理的相關理論后比較容易掌握。MS Proiect主要是項目計劃的工具,不適合于軟件開發整個過程的管控。
IBM作為業界領先的軟件服務解決方案專家,在2008年推出了基于Jazz平臺的工具解決方案Rational TeamConcert,簡稱RTC。RTC平臺整合了軟件項目中不同的階段性工具,使得軟件項目過程的各階段和項目管理的各項工作能在RTC平臺上進行操作和控制,保證了開發過程的完整性和一致性,如圖l所示。RTC平臺有專門供學習者使用的免費版本,教學過程中通過帶領學生學習在RTC平臺下進行項目開發,能夠讓學生直接感受到軟件項目管理的作用和意義,在進行軟件項目開發的同時深化學生對軟件項目管理理論的理解。

2 教學過程設計
好的教學效果離不開好的教學內容,也離不開有效的教學過程控制。在教學過程方面主要是調動學生的主觀能動性。傳統軟件項目管理教學主要以教師理論講解,學生傾聽為主。這種教學過程即便是教師講的再好也難收到好的學習效果。教育的目的是為了讓學生學會,為此我們的課堂提倡以學生為中心,踐行“做中學”的學習模式,教師只講授必要的理論知識,并且只是在需要的時候講。現代工程教育理念CDIO強調以項目為中心,提倡團隊協作,軟件項目管理課程為實踐這種教學理念提供了土壤。
2.1 項目導向型的分組教學
在學習軟件項目管理課程之前,學生已經先修了軟件工程、數據庫、計算機網絡、程序設計語言等課程,具備了完成軟件項目開發的基本條件。為此軟件項目管理課程在學習過程中采用分組教學,以具體模擬項目開發為導向的教學過程。分組即將班級中的學生按5~6人一組劃分為團隊,每個團隊中有項目經理1人、技術總工1人、開發人員2人、測試人員1到2人組成。在學習過程中,各團隊在RTC平臺控制下完成各自模擬項目。在這個過程中,每位同學在完成各自任務的同時,與團隊成員共同學習RTC平臺的用法,感受項目管理理論是如何在RTC平臺上體現的。
在模擬項目的選型方面,教師要幫助學生進行控制。模擬軟件項目要源于企業對實際問題的解決,但又要“適合”學生學習開發。模擬軟件系統項目應該具有如下一些特點。
1)可用于教學的軟件項目,即軟件項目是經過教師“裁剪”后的,因為學生時間和精力有限,不適合開發業務、邏輯過于復雜的大系統。
2)項目要有先進性,即選擇項目的開發環境和開發工具要與企業要求相一致。
3)選擇的項目在開發時要便于組員間協作,便于培養學生的溝通、協作能力。
4)選擇有多種解決方案的項目,以便不同能力的學生都能提出自己的問題解決路線。
2.2 教師與學生共同的講臺
軟件項目管理中有很多重要的知識點需要教師在課堂上教授給學生。這些理論知識是學生項目實踐前的基本準備,對學生理解軟件項目有指導作用。很多項目管理的概念比較抽象,例如“基線”、“配置項”等。教師如何能夠結合自己的經驗,用形象的語言給學生解釋清楚是教師在備課過程中需要積極思考的。在筆者單位,遴選軟件項目管理課教師的一個重要條件就是教師要有軟件項目開發及管理經驗。理論知識的集中講解過程一般安排在每次課的前半段,內容上要與后半段的項目實踐相聯系,以便學生把理論與實踐相結合。
學生將來要從事的軟件開發工作是一個特別注重溝通的職業,課堂教學過程要給學生展示自己的舞臺。為此教師在課程中設計若干個軟件項目管理的問題案例。每個團隊選擇其一,并對此案例深入準備,對案例中的問題及解決方案進行分析。之后在教師指定的課堂時間內,由團隊成員配合完成案例的講解,形式不限。這種嘗試不僅鍛煉了學生分析問題、解決問題的能力,同時還讓學生開始思考如何在團隊中溝通協作,如何在大家面前展示自我。
3 考核方法設計
學習的目的不是為了考核,但科學的考核方式能夠有效的激發學生主觀能動性,讓學習更有效果。本課程的成績考核采用如下方式:
學生成績=期末考試(50%)+實踐項目作品(30%)+課堂表現(10%)+團隊貢獻(10%)-缺勤、遲到扣分。
其中,期末考試主要是考察學生對項目管理知識的掌握和分析、解決案例問題的能力,采用閉卷筆試。實踐項目作品是指在RTC平臺下學生團隊完成的模擬項目,與以往團隊作品容易產生無法衡量個人工作量的困難不同,RTC平臺能夠準確記錄每個合法用戶的工作,包括完成的文檔、代碼,操作及時間。教師可以通過RTC平臺檢驗項目,并核實團隊成員的工作量。團隊貢獻成績是指教師按每個團隊在課程學習中的表現給0~10分的一個成績(m分),假設團隊有n個人,則團隊就有m×n的總分,然后由團隊負責人按組內成員貢獻分配分數(每人不得多于10分),這樣可以有效地激勵團隊成員多做貢獻,且較為真實。課堂表現主要是記錄學生在案例分析和課堂提問等環節中的成績。對于學生缺勤和遲到等行為,則通過扣分的方式給予懲戒。
4 結語
通過幾個學期的教學實踐,這種軟件項目管理課程教學模式在應用型院校本科軟件人才培養方面取得了較好的效果。學生普遍反映這種理論與實踐并重,以模擬項目開發為導向,輔助先進軟件開發過程平臺,強調團隊協作精神的授課模式,讓大家在學習軟件項目管理知識和技能的同時,能夠更多地了解企業環境下的軟件開發和管理過程,做到了學以致用。
參考文獻:
[1]蔣國瑞.IT項目管理[M].北京:電子工業出版社,2006:6.
[2]寧德軍.奏響軟件交付的爵士樂:Jazz平臺實踐者之路[M].北京:清華大學出版社,2009:55.
[3]查建中.論“做中學”戰略下的CDIO模式[J].高等工程教育研究,2008(3):1-6.
[4]楊少波.J2BB課程設計:項目開發指導[M].北京:清華大學出版社,2009:17-1