前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件項目管理里及風險評估探究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:本文基于筆者數(shù)年以來的軟件工程實踐經(jīng)驗,詳細分析討論了軟件項目管理中的各個組成部分。分析了軟件開發(fā)過程中的各個階段,從需求分析到系統(tǒng)的設計與實現(xiàn),再到軟件的測試與后期維護,建立了完整的開發(fā)流程管理;分析了團隊管理中對于時間的安排和對項目成員的管理,有助于項目團隊更好地開發(fā)軟件;分析了軟件開發(fā)中的各種風險,并給出了預防措施,有效提高了軟件開發(fā)的成功率。在網(wǎng)絡發(fā)展關鍵時刻的今天,本文將更有助于軟件的高效開發(fā)。
關鍵詞:軟件項目管理;團隊管理;風險管理;軟件開發(fā)
“互聯(lián)網(wǎng)+”時代已經(jīng)到來[1],網(wǎng)絡發(fā)展與安全成為重中之重,而軟件項目的開發(fā)管理是網(wǎng)絡發(fā)展必不可缺的一部分?,F(xiàn)今,軟件產(chǎn)業(yè)已經(jīng)成為國內(nèi)外經(jīng)濟發(fā)展格局的數(shù)字基礎,甚至已經(jīng)成為推動經(jīng)濟發(fā)展的主要動力之一[2]。但是自從20世紀以來,軟件行業(yè)在高速發(fā)展的同時也出現(xiàn)了各種各樣的問題,軟件危機遲遲沒有得到有效緩解,各種抄襲之風泛濫成災等等。故而在新的形勢下對軟件項目開發(fā)的合理管理及對風險的應對等問題擺在了人們的眼前。因此不僅逐步提升軟件的開發(fā)效率和軟件安全等級,還要加強對軟件開發(fā)團隊的有效管理和軟件風險的合理規(guī)避與補救[3]。軟件項目管理是對軟件開發(fā)流程中的管理,也包括對軟件生命周期里其他活動的管理。在一個軟件項目中,對組織結構和開發(fā)人員的管理也是十分重要的,因為只有好的團隊才能開發(fā)出好的軟件[4]。盡管有了好的開發(fā)流程的管理和團隊協(xié)作的管理,但是由于軟件項目開發(fā)過程中的可變性、偶然性、多變性等特點,軟件開發(fā)還是具有很大的風險,由此引入軟件風險管理勢在必行。擁有良好的風險管理可以降低風險發(fā)生的概率,有效提高軟件開發(fā)的成功率[5]。
1軟件開發(fā)流程管理
1.1需求分析
(1)需求概述
軟件需求是對項目系統(tǒng)在功能、性能、行為、約束等的期望,一般包括功能需求、性能需求、界面需求、環(huán)境需求、用戶或人的因素、數(shù)據(jù)需求、文檔需求、資源使用的需求、可靠性需求、安全保密的需求、軟件成本的消耗和開發(fā)進度的需求等。需求獲取與分析是整個軟件產(chǎn)品產(chǎn)生的源頭,它對軟件產(chǎn)品的開發(fā)成敗至關重要。需要通過各種方法獲取到需求并對需求進行深入挖掘使之找到真正有用的需求,之后將其轉(zhuǎn)化為軟件的功能。
(2)獲取需求方法
需求獲取的方法多種多樣,下面簡單介紹幾種。①小組討論。可以由開發(fā)人員、用戶、需求分析人員等組成討論小組,由一位主持人主持工作。小組成員暢所欲言,就已經(jīng)明確的主題發(fā)散自我的思維,盡可能找到所需要的需求及解決方案。②訪談調(diào)查。一開始,開發(fā)人員和用戶肯定對于軟件的要求是模糊的。所以可以通過了解市場上已經(jīng)存在的相關的產(chǎn)品并準備與此有關的問題,通過提問被訪者來獲取更多的需求。③問卷調(diào)查。通過書面的方式提問大量的問題,可以一次性向大量用戶獲取到很多信息,之后對信息進行統(tǒng)計分析就可以得到很典型的需求。④其他產(chǎn)品調(diào)查??梢詫Ω偁幃a(chǎn)品進行調(diào)查,取其精華并去其糟粕,這樣開發(fā)出來的產(chǎn)品更具有競爭力。⑤用戶操作及反饋。在使用過開發(fā)不完善的產(chǎn)品后,用戶會對產(chǎn)品有一個更清晰深刻的認知,此時再提出的需求更加具有代表性[6]。
(3)需求分析及管理
需求獲取到之后便要進行分析,分析過程中要遵循一定原則,結果要能表示問題并定義軟件功能、能表示軟件的行為并層次地表達細節(jié)。需求分析的方法有很多,包括原型方法、結構化數(shù)據(jù)開發(fā)方法等,而原型方法一改自上而下的形式,是一種十分典型的模式[7]。需求結果得出后要進行需求建模,可以采用面向?qū)ο蟮姆椒ǖ取W詈笠贸鲂枨笠?guī)格說明書方便日后需求的管理,如之后需求的變更等等。
1.2系統(tǒng)設計及實現(xiàn)
軟件設計就是要把需求轉(zhuǎn)化為系統(tǒng),這是軟件開發(fā)最重要的環(huán)節(jié),決定了軟件最終的質(zhì)量。軟件設計可分為概要設計和詳細設計,概要設計主要是體系結構設計,詳細設計包括用戶界面設計、數(shù)據(jù)庫設計、模塊設計、數(shù)據(jù)結構與算法設計等。體系結構是框架,是重中之重,目前流行的結構模式有C/S(客戶/服務器模式)、B/S(BROWSE/SERVER模式)、層次結構(上下級層次結構、順序相鄰的層次結構、含中間件的層次結構)。用戶界面設計是為了提高用戶界面的易用性和美觀程度。數(shù)據(jù)庫設計解決數(shù)據(jù)存儲問題。模塊設計是設計某一個具體的模塊,模塊設計要遵循“功能獨立”原則,表現(xiàn)為信息隱藏和高內(nèi)聚低耦合。良好的數(shù)據(jù)結構與算法可以使程序更加的高效。系統(tǒng)設計完成后就可以使用各種開發(fā)工具和開發(fā)語言進行代碼編寫,軟件程序完成后就可以進行下一步的工作了。
1.3軟件測試
在經(jīng)過了需求的分析和系統(tǒng)的設計及實現(xiàn)之后,就得到了所需要的系統(tǒng)的源程序,此時就需要對源程序進行測試了。測試之前的工作由于各種原因會遺留很多問題,這些問題如果不能及時發(fā)現(xiàn)并處理會影響開發(fā)系統(tǒng)的正常使用,甚至產(chǎn)生經(jīng)濟損失。為了保證軟件是可靠的,測試是不可缺少的。測試的工作量是非常龐大的,甚至占據(jù)了總量的一半左右,所以合理的測試策略異常重要。軟件開發(fā)流程的“V模型”將測試策略分成為單元測試、集成測試、確認測試和系統(tǒng)測試。單元測試測試的是系統(tǒng)的模塊或者構件,主要可以發(fā)現(xiàn)代碼的缺陷,使代碼更加完善;集成測試測試的是單元測試后的模塊集成為的系統(tǒng),雖然已經(jīng)通過了單元測試,模塊內(nèi)部已經(jīng)沒有問題,但模塊組合之后可能會產(chǎn)生新的問題,故而集成測試需要被使用;確認測試是根據(jù)需求說明對系統(tǒng)功能進行確認,它要求需求都應該被滿足且功能是完善的,經(jīng)過確認測試的軟件才可以投入市場;最后,軟件應當進行系統(tǒng)測試,這是為了滿足不同計算機系統(tǒng)中其他元素的約束。軟件在經(jīng)過了各種階段的測試并滿足相應的測試要求之后就可以投入使用了,在使用的過程中還要對軟件進行維護以保證用戶可以正常操作。
2項目團隊管理
2.1開發(fā)時間安排管理
時間項目管理就是對時間資源進行充分的利用,項目開展過程中每個環(huán)節(jié)都受到時間的約束[8]。所以在開發(fā)過程中,需要對時間進行合理的分配,并預留出足夠的時間對突發(fā)狀況作出應對。產(chǎn)生時間不足的原因可能有如下幾點:
(1)開發(fā)的各個環(huán)節(jié)所用時間與計劃所需時間出現(xiàn)偏差,實際開發(fā)時間更長;由于在開發(fā)的過程中,會面臨許多不確定性和風險,并且不同工作的預測不可避免地出現(xiàn)估算錯誤等,導致無法在預定時間內(nèi)完成開發(fā)任務。
(2)資源配置不合理,在不同開發(fā)任務中分配的人員和物料不能滿足當前任務的要求,從而導致開發(fā)時間過長,同時由于分配的不合理容易造成項目組成員的工作壓力過大,進而加大項目成員的流動性,開發(fā)進度受到嚴重影響。
(3)忽視項目的質(zhì)量和風險狀況;為了追趕開發(fā)進度,忽視了存在的風險,采用了風險程度更高的技術并且降低了質(zhì)量,在進行交付時沒能達到用戶需求,只能返工重做,造成了開發(fā)時間超過了預期。針對上述可能會發(fā)生的開發(fā)時間不足情況,有如下應對策略:
(1)做好規(guī)劃,預留充足的時間進行問題解決,避免計劃錯誤所帶來的風險無法解決。
(2)加強資源的動態(tài)調(diào)整和對人員的激勵,項目管理員要時刻關注各個部分的開發(fā)進度,對項目組成員進行激勵,同時合理規(guī)劃資源,及時調(diào)度資源,投入到重難點方向去,維持整個項目的高效開發(fā)。
(3)加強項目的質(zhì)量審查;項目的質(zhì)量關系到整個項目的最終交付,制定相關的標準,并在具體的任務里實現(xiàn),保證項目的質(zhì)量問題,進而減少后續(xù)的維護成本,保持軟件的健壯性和穩(wěn)定性。
2.2團隊成員管理
一個項目要想獲得成功,不但要選擇合適的人,更要留住并管理合適的人,讓合適的人在合適的崗位上發(fā)揮出最大的效能[9]。一個優(yōu)秀的項目團隊具有如下特征:互相的信任、明確的目標、良好的溝通、一致的承諾、合適的領導者、來自各方面的支持[10]。為了構造一個良好的項目團隊,可以從以下方面入手:首先創(chuàng)建共同的愿景,制定全體項目組成員共同認可的目標和價值觀,調(diào)整成員的狀態(tài),為項目的完成共同奮斗。然后需要去了解每一個成員,挖掘項目組成員的潛能,激發(fā)相關人員的創(chuàng)造力,對每個成員有合適的安排。之后制定項目計劃,把每一個成員安排在適合的位置,避免出現(xiàn)開發(fā)任務過重的現(xiàn)象,依據(jù)任務的輕重緩急調(diào)配資源與人員;平衡各個成員的工作量,盡量避免少數(shù)人承擔過多任務的情況,多進行部門間的交流,及時調(diào)整工作的分配計劃;保持成員的持續(xù)學習能力,在面對各種突發(fā)狀況以及開發(fā)中的問題時,具有足量的知識儲備才能快速高效地解決問題,使得開發(fā)計劃不會受到太大的影響;最后是幫助和激勵,在團隊工作中,在其他成員出現(xiàn)狀況時,各成員可以提供自己的幫助,通過互補與協(xié)作解決問題,既可以提高團隊的凝聚力,又可以激勵相關成員,共同完成項目。
3風險評估及避免措施
3.1風險類型
軟件在開發(fā)過程之中必然存在一定的特殊性和不穩(wěn)定性,這也是風險存在的因素之一。風險主要包括:需求風險(不斷變動的客戶需求,對系統(tǒng)期望不切實際等)、經(jīng)營風險(各個職務人員由于分工不明造成交流受阻等)、人員風險(人員流動性大等)、生產(chǎn)環(huán)境風險(生產(chǎn)工作人員在新的生產(chǎn)工作環(huán)境下需要一定時間去適應)、技術風險(錯誤地進行不熟悉的業(yè)務等)、開發(fā)過程風險(缺少富有經(jīng)驗的開發(fā)人員等)[11]。由于開發(fā)過程的不確定性,還有一些未知未發(fā)生的風險,只有發(fā)生時才能分類。
3.2避免風險措施
在應對風險時,我們可以首先加強各個部分開發(fā)團隊的溝通,并及時與客戶溝通,了解并依據(jù)客戶需求調(diào)整開發(fā)效果;然后選用有豐富經(jīng)驗的項目經(jīng)理進行管理,根據(jù)管理人員的經(jīng)驗,能夠避免過往的一些風險,但風險并不是一成不變的,這也需要管理人員加強學習,提高自身的應對能力;其次組建目標統(tǒng)一,具有良好開發(fā)技術的高效團隊,共同應對各種風險;再次及時展開風險防控,定期召開會議,對風險進行審查,列出在認知范圍內(nèi)可能發(fā)生的風險,對風險進行范圍確認,盡可能地防控風險,減輕風險帶來的損失;最后是強化開發(fā)人員的培訓,合理地選擇業(yè)務,在關鍵時刻可以引入能解決中心問題的專業(yè)技術人員,同時,也要防止團隊中人員的流失,在業(yè)務上要提前注意系統(tǒng)先進性和技術能否跟上系統(tǒng)更新等問題。如此,可以讓風險得到一定的控制。
4結束語
綜上,本文對軟件項目管理中的軟件項目開發(fā)流程管理、軟件項目團隊管理和軟件風險管理方面展開了詳細的探索和討論,論證了開發(fā)流程各個階段的任務及關系,探討了軟件團隊開發(fā)的時間管理和對團隊成員的管理,最后還闡述了軟件風險類型和避免風險措施。本文對軟件開發(fā)人員具有很好的借鑒意義,筆者在后續(xù)也會進行更深入的研究與探討。
作者:周逸寧 池志杰 單位:中國地質(zhì)大學(北京)信息工程學院