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