當前,隨著計算機應用范圍的日益廣泛深入,應用軟件的規(guī)模及復雜程度也日趨大型化、復雜化,這導致軟件開發(fā)的方式也從早期的單兵作戰(zhàn)式或手工作坊式漸漸轉變?yōu)榧瘓F化、工廠流水線式的團隊協(xié)作開發(fā)方式。這種情況下,如何管理好項目的每一步運作,及時解決所出現(xiàn)的問題是每一位項目主管責無旁貸的責任了。
實際上,項目管理的過程貫穿于整個項目的生存期,從調研、立項、需求分析直至項目投產后的跟蹤、維護、版本更新等各階段。本文僅對項目開發(fā)過程中的若干問題發(fā)表一已之見,愿與同仁們共同探討、提高。
關于軟件質量控制
軟件質量雖然與開發(fā)成員的個人素質相關,但也與開發(fā)時的控制措施密不可分。根據(jù)筆者的經驗,以下兩方面尤其重要。
1.版本控制
隨著開發(fā)過程的不斷深入,項目開發(fā)組中的每個成員都可能在各自機器上建立了不同時期因各種原因而產生的同一模塊的不同版本。隨著每個成員所編模塊數(shù)量的不斷增加,各種模塊的版本也會隨之增加,后甚至可能出現(xiàn)連編程者自己都弄不清楚某一模塊的后版本在哪里的情況。倘若又有人員的更換,交接又不清楚,則更易于發(fā)生上述情況。特別是在網絡環(huán)境下開發(fā),由于機器之間硬盤資源可以共享,開發(fā)組成員因各種原因可能并不固定在某臺機器上開發(fā),因而在許多機器上建立了自己的開發(fā)環(huán)境,這樣更容易導致這種混亂情況的加劇。
版本控制不嚴的后果早期是體現(xiàn)不出來的,但到了后期,要將若干開發(fā)成員的數(shù)十、上百個模塊整合為一套應用系統(tǒng)時,這種后果的危害性體現(xiàn)出來了。很可能導致項目無法按時上馬。
為此,項目主管應根據(jù)實際情況建立相應的措施來防止版本的混亂。比如,在服務器上為每個成員制定各自特殊的目錄,要求每位成員在每天結束編程工作后,通過一個批命令將截止至的所有模塊的后版本全部拷入服務器內各自對應的目錄中。第二天工作時,再通過另一批命令將服務器上自己的作業(yè)轉入當前機器上,這樣經過一段時期,即便大家"隨心所欲"地使用網絡上的不同機器,也能保持每個人的版本在不同機器上基本一致(因為有一個統(tǒng)一的源頭——服務器)。
2.源碼控制
程序的源碼是軟件項目中的重要文檔資料,是日后進行軟件運行維護、版本升級所不可或缺的資料。因此,保證源碼的規(guī)范性、易讀性對提高源碼使用價值極具重要意義。
編程如同寫文章,千人千面,各具特色,倘若絲毫不加控制,直接將開發(fā)組成員的源碼合并成一個整體作為文檔,留給他人維護系統(tǒng)時作參考,則維護人員是很難去讀懂并理解這些出自不同手筆的源碼的,這樣的文檔實際上其使用價值很微小了。
為此,項目主管要根據(jù)實際開發(fā)時所采用的開發(fā)工具及項目性質的不同,制定若干源碼控制規(guī)則。諸如模塊說明規(guī)則、變量命名規(guī)則等。
關于項目進程及人員組織管理
1.項目進程管理
項目開發(fā)過程中,常因各種原因導致項目進程無法按原計劃進行。這時如何根據(jù)當前情況較好地預測未來進展狀況,同時迅速作出調整,合理安排工作銜接等等都是項目主管必須考慮的事項。
根據(jù)筆者經驗,對于有一定規(guī)模的項目,項目主管應該采用一些輔助管理軟件來幫助作計劃和安排。如采用微軟的Project是一個不錯的選擇,Project可以提供項目進度的甘特圖,項目資源的合理分配方案等一些先進的管理手段來幫助項目主管控制好項目進程。
2.人員管理
在項目開發(fā)的所有管理中,也許人員管理是難的。眾所周知,軟件開發(fā)是一項"重腦力"勞動,在這之中,人的情緒、精神狀態(tài)等因素將直接影響到勞動效果及效率,因此,建立相應的激勵制度是人員管理的一個基本條件。而大多數(shù)項目主管并沒有實質的財權及用人權,所以與上級領導溝通、協(xié)調好相應的制度標準是項目主管必須修好的一門課。根據(jù)筆者的經驗尤其需要在以下兩方面加強控制:
(1)保持開發(fā)隊伍的穩(wěn)定
開發(fā)隊伍的不穩(wěn)定、人員頻繁變動是項目開發(fā)的大忌,因為人員變更必將帶來工作交接,而交接卻是件很難控制好的事情,這主要是一來需要接手的人對前任人員的工作進行理解和消化(這可能要花很長時間),二來前任人員未必能將工作中所積累的經驗、教訓全盤傳授給后者,導致后人可能還要走彎路。越是在項目后期發(fā)生人員變動,所造成的危害越大,甚至可以導致項目的流產。因此,項目主管應根據(jù)本項目的性質,如難易程度、時間長短、項目影響范圍等,向上級領導提出相應的項目激勵制度,爭取得到領導的支持,以盡可能地保證項目組成員的穩(wěn)定。
(2)工作總結制度
項目主管應該要求開發(fā)組成員每天對自己所做的工作進行總結、記錄。這種記錄可以用統(tǒng)一的表格進行填寫,這種表格在每天結束工作前用三至五分鐘迅速填一下,不需要很詳細概要即可。這既可以培養(yǎng)開發(fā)組成員的嚴謹工作作風,又可以使項目主管能夠及時了解成員的工作進展,對成員所遇到的困難作出及時的支持和響應,對整體進度作及時調整。
總之,項目管理是軟件生產活動中的重要工作內容,國外文獻曾報道:在對大量軟件項目調查統(tǒng)計后,結果顯示,軟件項目的失敗大多數(shù)并不是技術上的原因,而僅僅是管理上的失敗所致。由此可見,作好項目管理的重要性。筆者誠懇希望在此方面有心得、有造詣的師長、同仁們能夠多多發(fā)表高見,為我國軟件業(yè)的繁榮發(fā)展同盡一臂之力。