摘要:項目管理對于軟件企業來說,特別是以開發應用軟件為主的企業,是非常有效的管理方法。因此,項目管理在軟件開發中的應用越來越被重視。在文中,對軟件項目管理中的相關概念、項目前期所做的準備、項目開發過程中的管理、項目后期的管理、項目風險管理等許多方面進行闡述。
關鍵詞:軟件開發 項目管理 企業需要
本人通過學習,對軟件項目管理有了一定的認識。用簡單兩個字概括當前社會的特點,應該就是“變化”,變化在信息產業中體現得尤為突出,技術創新速度越來越快,用戶需求和市場不斷變化,人員流動也隨之加快。在這種環境下,企業需要應對的變化以及由此所引起的挑戰大大增加,同時也為管理帶來了很多問題和挑戰。軟件行業是一個極具創造性和挑戰性的行業,管理上基本沒有成熟的經驗可供借鑒。
項目設計概念:項目管理是一定的主題,為了實現其目標,利用各種有效的手段,對執行中的項目周期的各階段工作進行計劃、組織、協調、指揮、控制、以取得良好經濟效益的各項活動的總和。是一次性的,以目標為導向的,通過項目經理及其團隊工作完成的,存在大量的變更管理。軟件項目管理是通過計劃、成本、進度、質量組織、控制等一系列活動,合理地配置和使用各種資源,從而使軟件項目能夠按照預定的順利完成。而對成本、質量、人員、風險、進度等進行管理和分析,從而達到既定目標的過程。
1 項目管理尤為重要的是提高軟件項目研發的效率和質量
項目前期準備工作:在進行任何一項軟件項目時,首先要進行項目的前期準備(需求管理、可行性分析、項目團隊的組織、項目開發計劃),這些項目中的問題如沒有很好的解決方法,就很難在計劃時間、費用預算額度內順利完成;如果這些問題沒有很好的解決辦法,你貿然開始這些項目,必然會導致項目的失敗,最終會造成巨大的損失。
那么需求管理對軟件項目最終實現能否產生至關重要的影響呢?任何一款軟件項目都必須進行合理的、細致的、一致的需求管理,只有這樣才能制定合理正確的軟件開發計劃,軟件項目才能順利地開發完成。在項目需求分析階段,項目開發者與客戶必須全面地盡可能細致地討論項目的性能要求、功能要求、應用背景、操作界面要求與其他軟件的接口等各種要求,以及對項目進行評估的各種評價標準。
在進行需求分析時,可以先分析客戶已有系統的建設情況,對客戶的原有產品進行分析,明確建設目標等。
2 軟件項目的可行性分析和研究
軟件項目的可行性分析和研究目的是為了用最短的時間和付出最小的代價,確定該項目是否能夠開發、是否值得開發,其實質是要進行一次抽象的、簡化的需求分析和設計過程,主要應從以下幾個方面進行分析。經濟可行性:進行軟件開發項目的成本估算以及了解取得的效益估算,確定該項目是否值得承接。技術可行性:對要開發項目的功能,性能和限制條件進行分析,確定在現有的資源條件下技術風險有多大,項目是否能夠實現,現有的資源包括硬件、軟件資源,現有的技術人員和技術水平,已經有的工作基礎等,判斷技術上是否可行。衡量經濟可行性的同時應考慮公司的長期經營策略,潛在市場前景等因素,畢竟有時候犧牲短期利益可能帶來的是長期的利益。社會可行性還應考慮項目是否存在著侵權等責任等問題,考慮在現有的制度、法規下是否行得通,包括責任、合同、法律等眾多因素。
3 項目團隊的組織
建立好的項目團隊,是項目的開發過程的開始,因為一切工作都是由項目團隊的成員完成的。在整個項目的運行過程中,需要很多不同的角色參與到項目中,完成不同階段的任務。所以在建立項目團隊的過程中如何把握好人員和角色的分配、特別人員管理與激勵、監督等。良好的溝通與協作是項目團隊必須的。溝通技術大至分為四類:①書面溝通,包括項目文檔和備忘錄、項目里程碑和交貨時間表、需求變更數據字典、錯誤跟蹤規程、系統分析模型(用例圖等);②正式口頭溝通,包括狀態審查會、設計評審會、需求評審會、代碼評審會、用戶測試,項目定期例會等;③非正式口頭溝通,包括同行討論、小組碰頭會、與直屬業務領導討論等;④電子溝通,包括電子郵件、內部OA、BBS 等。協作技術包括資源合理配置、開發步驟有序化、提高關心程度、工作目標一致化、信息共享等。
4 項目開發計劃
建立良好的項目開發計劃是項目開發順利完成的保障。我們將如何根據項目的需求,進行合理地人力安排和時間安排,完成項目的開發,這也是現實中項目經理經常遇到的問題。如果事先確定的時間表是相對合理的,至少應該是我們能夠做到的,我們制定的開發計劃才是有意義的。否則,按照這個時間表制定出來的計劃只能失敗。在這種情況下,項目經理需要做的可能是去掉某些耗時長而且不太重要的功能,對用戶的需求進行分割,或是在開發中適當降低質量要求,或許可以完成項目的進度。這樣的話可能導致客戶的不滿意。
編碼工作完成以后,需要進行測試。有些開發人員認為自己不需要進行測試工作,在編寫完代碼以后,認為編譯成功,就直接提交成果,而把測試工作完全交給測試人員去做。這樣做不僅僅給測試人員增加了額外的工作量,同時增加了許多因為交流產生的時間,造成進度的延遲。項目經理應該嚴禁杜絕程序員存在這樣的思想,同時在管理中加以考慮,可以將提交成果產生的錯誤數量作為考核程序員業績的標準之一。項目后期管理中項目的后期驗收,是整個項目生命周期中最后一個環節。軟件項目的驗收一般來說有兩個階段,一個階段是驗收測試,當驗收測試成功結束后,另一個階段是試運行階段,只有當兩個階段全部結束后,整個項目才能算真正的結束,可以說項目完成了開發工作,將進入運行維護期,公司才可以收回全部的工程款。驗收測試應按照軟件的需求,質量要求進行測試驗收,需要合同雙方共同建立驗收小組,或請第三方測試機構進行驗收測試。在驗收測試之前,開發方應提供一系列的開發設計文檔供驗收測試使用。曾經有一編程大師說過這樣一句話,“哪怕程序只有三行長,總有一天你也不得不對它維護。”軟件系統可能要用好幾年,對軟件進行維護確是一項長期的工作,是必不可少的。關于軟件維護是個不太直觀的問題,因為軟件產品在重復使用時不會被磨損,不像對電器或車輛那樣的維護,軟件維護是人們對既豐富多彩又會令人心酸的活動的統稱,其中豐富多彩的活動是指那些反映的客觀世界變化,使軟件系統能更加完善的修改和擴充工作,并且改了舊錯卻引起新錯讓人欲哭無淚的繁瑣工作。
最后我們再談談如何加速軟件開發的整體進程,要想使軟件開發達到預期的目的,加速軟件的開發,提高軟件開發的效率必須做好如下幾點:①目標明確。理解客戶的需求和重視你的客戶,要讓客戶參與進來,幫助客戶產生新的需求,客戶新的需求雖然會給你增加這個項目的工作量,但只有為顧客創造了新的需求,你才有機會成為下一個項目的合作者。②合理的步驟、預估風險和戰略層面的考慮。在軟件開發過程中,我們需要經常面臨不同的挑戰,這就需要開發者能夠具有抗風險的特別能力。③有利的執行,思路清晰和好的裝備工具。這是我們提高效率的物質條件。④不斷總結。只有不斷總結過去的失敗,你才能不斷的提升,下一次,你也會有信心一定比現在做的更好。
學習過程中的總結及不足:通過學習軟件項目設計一段時間以來,除了感覺學到的知識不夠以外,就是感覺在整體項目管理的把握上,能力還有待加強(協作能力有待提高,組員之間存在意見不一等)。需要在以后的學習和實踐中加強專業知識的學習和團隊合作能力的提高。
參考文獻:
[1]吳照云.《管理學原理》.經濟管理出版社.
[2]Stanley E.Portny(寧俊等譯).《如何做好項目管理》.新經濟工商實務叢書.
[3]Neal Whitten(孫艷春等譯).《管理軟件開發項目》(第二版).軟件項目管理系列叢書.
[4]鄧良松.《軟件工程》.西安電子科技大學出版社.
[5]韓軍.《現代安全管理方法》.機械工業出版社.