岳 鵬
(中石化洛陽工程有限公司,河南 洛陽 471003)
軟件開發項目管理淺析
岳 鵬
(中石化洛陽工程有限公司,河南 洛陽 471003)
軟件開發項目管理是對軟件工程項目實施的項目管理。文章介紹了軟件開發項目管理的特點,重點對軟件開發項目的立項、實施、交付3個階段的管理模式進行探討,提出了一些針對性的管理方法和解決措施,旨在增強軟件開發項目的過程控制,提高軟件開發從業人員的管理水平。
軟件開發;軟件工程;項目管理
近些年來,信息技術和互聯網技術在各行各業中發展迅速,軟件產業隨之興起。人們為了追求更高的工作效率,開發出許多功能強大的軟件產品用以替代傳統的工作方法,從簡單的成品軟件,到復雜的定制開發,越來越多的人開始接觸到軟件開發工作,軟件企業也如雨后春筍般快速成長。在軟件開發項目的執行過程中,無論是用戶還是開發人員常常會遇到各種各樣的問題,使開發工作停滯不前甚至面臨失敗。這是因為軟件開發是一項復雜的系統工程,它要求參與人員全面系統地了解軟件開發項目的運作特點和關鍵要素,并在整個軟件開發項目周期內保持對項目的控制,當遇到問題時給出合理的解決措施,將重復工作、錯誤工作的概率降到最低,需要有一整套完善合理的方法對一個軟件開發項目進行管控。
隨著信息化的發展,用戶對軟件的功能、適用性、成本周期的要求越來越嚴格,軟件產品的標準化已經成為趨勢,開發模式也向著模塊化、流程化等具有典型工業化特征的方式轉變,一個軟件開發項目的投資越來越多,時間跨度越來越久,涉及的技術越來越復雜,隨之而來的多種不確定因素對軟件項目的開發周期、質量、效益等帶來巨大影響,行業參與者們也越來越多地意識到軟件開發項目過程管理的重要性。
軟件開發項目管理,簡單來說,就是運用一系列的知識、工具和技術,整合各種資源,通過項目參與各方的協作達到項目的建設目標,其根本就是對時間、質量和成本的管理。一些企業通過制定軟件管理相關規定來規范開發過程,但是在實際運行過程中與理想情況還相差甚遠。軟件產品的開發進度滯后、質量不穩定、后期運維量大是困擾開發企業的難題。這是因為一些企業和開發人員在項目管理的過程中有著許多誤區:首先缺乏專業的項目管理人員,軟件項目負責人實施管理主要依靠技術和經驗積累,缺少項目管理專業知識;其次在項目的規劃階段缺少綱領,制定的項目計劃隨意性大,細節考慮不周,無法進行有效的進度控制管理,導致出現工作進度滯后;溝通渠道和機制不完善,項目中的重要信息沒有進行有效的流轉和溝通,成員間各行其是,出現重復甚至無效的工作,造成不必要的損失;項目團隊分工不合理,在不同項目階段由于團隊內部角色或工作流程的變化導致職責不明確,出現互相推諉的現象,造成內部資源損耗,從而影響項目進展;不重視風險管理,項目負責人沒有充分意識到風險管理的重要性,甚至刻意淡化風險,面對風險時缺少對策,使得原本可控的風險演變成導致項目受損甚至失敗的事件。
項目管理應用在軟件開發項目中,最終的目標是使軟件開發取得成功,既要滿足用戶提出的需求,又要實現開發企業的效益最大化。這就要求對軟件項目的開發需求、資源配置、實施成本、進度節點、存在的風險等做到心中有數,要重點把握軟件開發項目立項、實施、交付3個階段的過程管理。
2.1立項階段的管理
一個軟件開發項目,最初都是由一個特定的需求引出的,需求就是指這個軟件應該“做什么”而不是“怎么做”,需求確定與否,直接影響著項目后續的所有進程,甚至關系項目成敗。需求確定一般分為兩個階段:需求定義與需求分析。
需求定義階段主要包括以下工作:收集用戶的需求并提交需求說明書的草稿;與用戶一起驗證收集到的需求;對需求進行跟蹤,及時發現變更。在收集需求的過程中,管理者面對的往往是眾多的實際用戶,其中有高層管理人員也有基層操作人員,各人的立場不同,對軟件功能的需求也不盡一致,有時還會將管理制度的缺陷夾雜其中,這是軟件本身無法解決的問題,這時就需要對他們提出的需求進行過濾、篩選。最好的辦法就是請用戶設置一名項目負責人,將需求匯總到同一個人身上再反饋,這名項目負責人要有一定的權威,不但對本單位的工作較熟悉,也要對軟件開發技術有所了解,必要時可以由軟件開發團隊對其進行一定的培訓,這樣既使海量的需求得到匯總,又可在用戶層級對需求進行過濾。
在需求分析階段主要包括以下工作:分析需求,確保收集的需求是明確、可用的;建立技術人員與用戶之間的聯系,使技術需求能有效覆蓋用戶需求;對需求進行分級,制定需求說明書;由用戶來審核、批準需求說明書。
需求說明書作為需求確定階段的最終產物,體現的是用戶的最終意志,因此應使用通俗易懂的自然語言,清晰明確地闡述軟件開發項目的目標。在需求確定階段,要注意需求與項目預算是否相匹配,現有技術是否能夠滿足實現需求,并且對于某些可能會發生變化的需求要格外注意,為需求變更預留一定的預算與時間。
2.2實施階段的管理
軟件開發項目的實施過程階段首先要完成對軟件開發項目的預算估計、進度計劃、人力資源配置、風險評估等,制訂指導項目全面發展的路標。項目計劃書作為項目管理的依據,是指導項目全過程的可操作的文件,它既體現了客戶的需求,又是軟件開發項目活動的基礎,軟件開發項目的預算規劃是控制項目整體成本的尺度,是項目計劃書的依托。一個好的項目計劃書往往要經過不斷完善和評審,通過資源調整、優化工期、降低預算等方式,才能具有強大的可執行力。
軟件開發項目管理要嚴格按照項目計劃書執行,確保在預算范圍內,項目可以按照用戶需求和時間進度執行。在這個過程中要制訂實際進度的測量節點,將測量所得的實際進度與計劃進度對比后,如出現滯后,就需要分析影響項目進度的因素,及時對人力和其他資源進行調整,必要時也可對預算進行調整,對項目運行全周期進行有效的掌控。在這個過程中,需要隨時掌握確定已完成的工作,對下一步工作進行評估,看是否存在技術、預算的風險點,對于項目計劃中的關鍵節點要制訂專門的進度計劃。軟件開發項目在實際運行中總會出現意外問題,例如人員變動、預算縮減等,問題與風險不同,問題是在項目過程中提出的,是未能預料到的延緩項目進展的障礙,這也是任何項目都不可避免的。一個合格的項目管理者在面對問題時要客觀、冷靜,不糾結于劃分責任,對問題進行主次分級,利用現有資源及時解決問題。
2.3交付階段的管理
軟件開發項目的產品交付,是整個項目過程結果的最終檢驗,交付階段的重要環節就是測試和驗收,這是保障軟件質量并對項目管理成敗給予評價的重要節點。
軟件產品驗收交付前必須要經過測試。測試的基本目標是檢驗軟件產品是否按照原定的方式運行,在模擬的使用環境中是否存在可能的缺陷以及長期使用的可靠性。測試不僅僅是簡單的程序運行,而是需要大量的真實數據來構成測試用例,為了達到盡可能暴露產品錯誤的目標,測試用例的數據內容應當具有普遍性和特殊性。這些數據都是在長期工作中累積起來的,軟件開發企業很難獲得眾多行業內容的真實數據。這就要求用戶要深入地參與到測試當中,給出使用體驗并進行結果校驗。要指出的是,測試并不是只在項目末期,而是貫穿于整個項目周期,使測試和程序開發同步進行,這樣會提高發現錯誤的概率,及時對產品質量進行修正。測試的最終結果要形成完善的測試文檔,這些文檔是度量和評定軟件質量的依據,也是項目團隊最重要的工作成果匯報,為下一階段軟件產品的修改、發布和維護提供支持。
當軟件測試完成后,就可以進行軟件產品的發布了。發布階段要建立完善的版本控制體系,要確保所有的程序都被集中存放并凍結,所有測試中發現的缺陷都已被修復,程序打包并通過測試,編碼和文檔(包含源代碼文件、需求分析文檔、測試文檔、安裝手冊、使用手冊、二次開發手冊、產品信息文檔等)全部集中入庫,形成一個完整的交付物,由項目負責人按照合同約定的方式交付用戶。交付后要根據用戶的需求提供培訓及維護服務,與用戶建立良好的后期合作關系,不但有利于軟件產品的運行,更有利于軟件開發企業的持續發展。
“制造有用的軟件產品”是軟件項目的根本,軟件項目與其他工程項目相比,有很多獨有特點。經過長期的知識積累,其已經總結出軟件產品制造過程中的許多規律,形成了成熟的工業化方法。因此,當把項目管理應用到軟件項目中的時候,必須遵循這一規律。在管理論中,十分重視管理者在相關領域中的專業知識,在不同的階段利用相應的資源、采用適當的管理方法來適應產品的要求。軟件開發項目管理體系也同樣如此,需要更多的軟件開發專業人士去學習項目管理理論,參與到項目管理之中。對于用戶和開發者而言,這是一種變革。高效的管理將為用戶節約成本,為開發企業增加利潤。管理的水平高低終將成為衡量企業核心競爭力的重要標準。
[1]康一梅.軟件項目管理[M].北京:清華大學出版社,2010.
[2]SOMMERVILE L.軟件工程[M].北京:機械工業出版社,2015.
Analysis of Software Development Project Management
Yue Peng
(Sinopec Luoyang Petrochemical Engineering Co., Ltd., Luoyang 471003, China)
Software development project management is the project of the implementation of software project management, this paper introduces the characteristics of a software development project management, focusing on the discussion the management mode of three stage of the software project management:project establishment, implementation and delivery. It puts forward some corresponding management methods and measures, in order to enhance the process control of software development projects, improving the management level of software development professionals.
software development; software engineering; project management
岳鵬(1983-),男,河北臨城,本科,中級工程師;研究方向:工程項目信息化,軟件開發項目管理。