摘要:大中型軟件開發的主要難題不是技術而是管理。有了科學嚴謹而行之有效的管理,才能讓先進的技術方法和開發工具真正發揮出作用,生產出優秀的軟件作品。在軟件項目管理知識的基礎上,論文結合目標系統的特點,給出了一種更加靈活的項目管理方法,闡述了質量、進度兩個方面的管理理念和方法,特別是如何對該項目進行跟蹤、監控和度量,以保證系統按進度高質量地完成、交付、使用。
關鍵詞:管理難題;軟件項目管理;實驗教學;質量;進度
1 引言
實驗教學是高校教學的重要環節,然而目前高校實驗教學方面普遍使用的是各實驗室彼此獨立的實驗信息管理系統,這給學校的實驗監督工作帶來了很大的困難。
目前國內尚未出現面向全校所有實驗室的類似系統,究其原因,最重要的一點就是項目管理難度大。僅從需求而言,實驗室多而且各具特點,導致需求難以全面覆蓋和深入挖掘,這樣就很難梳理出一套標準和科學的管理模型,且系統開發極具不可預知性。
本論文的實踐對象——高校實驗教學管理系統就是為高校所有實驗室提供一個統一的網上排實驗和網上監視實驗運行的系統。本系統共分為四個平臺:教務處、實驗室、教師和學生,利用科學有效的數據庫設計技術和長期服務高校教育教學的經驗技巧、以動態定制方式解決實驗室(中心)個性化需求問題。本系統的特點可以概括為以下三點:
(1)該系統有多種用戶,多種管理員;對于每個實驗室,該系統都是一個小型的實驗教學管理系統;
(2)各個實驗室運行模式差異性大,需求多樣化;
(3)用戶群體龐大,對于系統數據的及時準確性要求較高。
上述特點決定了本系統項目管理工作的難度必定很大。從項目管理的角度來說,開發模型體現了軟件開發管理者在管理模式上的變化,目前也存在多種開發模型。然而,傳統的項目管理是選擇一種軟件開發模型,在開發的各個階段實施管理。另外,考慮到開發模型越簡化,管理工作就會越容易,大多數管理者會采用傳統的瀑布模型。瀑布式生命周期的開發過程是順序行進的;活動流向基本是單向的;這種模型的缺點也是很明顯的,各個階段的劃分完全固定,早期的錯誤可能要等到開發后期的測試階段才能發現,進而帶來嚴重的后果。
那么,本系統將會不拘泥于現有的開發模型,針對系統的特點,采用一套行之有效的開發管理方法,合理有效的推動項目的研發進程。
2 “高校實驗教學管理系統”項目管理模型
該系統是在傳統瀑布模型的基礎上加以修改,添加原型和迭代。即首先做出原型,向用戶展示,然后根據用戶提出的修改意見,不斷改善系統,直到用戶滿意。
采用這種管理方式的優點:可強迫開發人員采用規范的方法;原型系統已經通過與用戶交互,在一定程度上可以減少開發過程中的返工;開發人員通過建立原型已經學到了很多東西,在設計和編碼階段發生錯誤的可能性降低;每個階段交出的所有產品都經過負責人的仔細驗證,可保證符合文檔的要求;
該系統開發模型如圖1所示。
依據采用的開發模型,將該系統的開發階段分為需求分析、系統設計、編碼實施、測試、系統試運行,在每個開發階段中進行質量、團隊和進度管理,主要從文檔、工具、溝通、制度、合作四個角度進行。管理模型如圖2所示。
3 “高校實驗教學管理系統”項目管理實踐
3.1 制定團隊規范
團隊開發,永遠不是一個人在行動,因此需要制定團隊規范,來約束大家的行為,以保證進度和質量,團隊規范的內容主要包括:每個開發人員每天晚上匯報當天工作進度;每周末總結本周工作,制定下周進度計劃;遇到問題及時溝通,充分利用團隊優勢;不能完成任務或提前完成任務及時告知負責人;個人獨立解決一個問題的時間不能超過半小時,半小時之后未解決應及時與其他成員商討;階段性的技術總結、團隊內部技術、經驗交流;保證充分可靠的文檔;周期執行檢查工作。
3.2 需求獲取
全面的需求獲取是保證系統開發少走彎路的前提。該系統采用多種方法從不同角度獲取每個平臺的不同需求。比如:方法調查表、定期召開研討會、原型展示。對于每一次的調查和會議,都要有專門人員做好全程記錄,會后及時做好應對策略。
3.3 開發過程管理
采用Microsoft Project制定項目管理計劃。在制定計劃時要注意保證計劃的可行性,明確責任劃分。項目管理計劃隨著系統的進行不斷細化,不斷調整。對于影響系統整體進度的調整,要召開小組會議并和老師交流商量。
3.4 系統設計和編碼
在系統設計階段,給出詳細設計文檔和界面原型,階段性地將設計內容反饋給用戶。在充分理解需求文檔的基礎上,每個開發成員給出詳細設計和界面原型。并在階段性的時間點以研討會的形式展示界面原型,根據用戶要求完善系統設計。
對于四個平臺的功能模塊,根據功能難度、開發成員的編程能力和項目經驗進行劃分。比如排實驗,由于功能復雜,要考慮和驗證的情況很多,這塊功能分配給編程老練、心思縝密的開發成員完成。
在編碼實施階段,采用源代碼管理工具VSS,制定統一編碼規范文檔,統一編碼風格,降低開發和維護的風險及難度。
3.5 測試和試運行
測試階段:制定好測試計劃、編寫測試用例,測試過程做好測試報告,收集測試結果。測試時測試人員要認真細致,對測試中發現的問題做好記錄。測試用例設計要基于需求,避免測試自己編寫的模塊,輸入數據包括合理的和不合理的,測試數據具有代表性。
試運行階段:首先在小范圍內試運行,根據反饋完善系統;然后大范圍試用。試運行之前準備數據,要求數據能夠盡可能的展示各個實驗室的情況;制作培訓PPT;對于操作較復雜的界面錄制視頻;召開用戶培訓會,使實驗室負責人熟悉該系統,同時發現潛在的問題;公布用戶反饋方式,及時、最大限度的獲取用戶反饋意見。在多個學院試運行期間,準備兩套系統,一套試運行數據,一套正式運行數據。學生和教師的培訓工作由實驗室負責。
4 結論
本論文闡述的軟件工程項目管理方法:根據系統的特點靈活使用傳統的管理模型,采取用原型去引導用戶,通過實踐來了解目標系統的概貌,從而不斷獲知和細化用戶的真正需求,明白系統應該做什么,不應該做什么。在項目實現過程中,制定合理規范的管理制度,不僅保證項目按質向前推進,同時使團隊每位成員在項目開發的整個過程中都切實負起責任,增強團隊合作意識,保證用戶的真實需求得到滿足。
通過近一年時間的開發,目前本系統已經開始在幾個學院展開使用,且取得較好的反響,證明該系統采取的管理方法是合理有效的,其開發模型和管理模式是值得借鑒的。
參考文獻
[1]Galin,D. Software Quality Assurance: From Theory to Implementation[M]. Addison Wesley/Pearson,2009:35-40.
[2]Kerzner,H. Project Management: A Systems Approach to Planning, Scheduling, and Controlling[M]. John Wiley Sons,2009:191-241.
[3]Pressman,R.S.Software Engineering:A Practitioner’s Approach[M].McGraw-HillCompanies,2008:462-602.
[4]Brooks,F.P. The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition[M].Addison-Wesley Professional,2010:20-281.
[5]Patton,R. 軟件測試[M].張小松,譯.北京:機械工業出版社,2008:123-196.
[6]Scgwalbe,K. IT項目管理[M].楊坤,譯.北京:機械工業出版社,2009:150-246.
[7]覃征.軟件項目管理[M].北京:清華大學出版社,2009:40-44.
[8]施平安.軟件項目管理實踐[M].北京:清華大學出版社,2008:73-81.
[9]陳京鷺.淺談信息系統集成項目管理[J].電腦知識與技術,2009(24).
[10]孫延靖,楊功元.項目管理技術在軟件開發過程中的若干問題探討[J].硅谷,2009(17).
[11]許薇.IT項目研發過程中的進度管理研究[J].項目管理技術,2009(S1).
[12]孟曉鴻.談軟件測試自動化[J].中國新技術新產品,2008(10).
[13]孔駿,趙春穎.可視化語言技術在軟件開發中的應用[J].軟件學報,2008(19).
[14]陳丹.基于形式化方法的軟件開發技術[J].軟件工程師.2009(9).
[15]趙彬.全面質量管理在軟件工程中的應用[R].北京:北京航空工程技術研究中心,2009:2-4.