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