時間:2023-02-14 20:23:33
開篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇文檔管理論文,希望這些內(nèi)容能成為您創(chuàng)作過程中的良師益友,陪伴您不斷探索和進(jìn)步。
相關(guān)熱搜:項目管理 軟件項目管理 項目管理工程
隨著計算機(jī)硬件水平的不斷提高,計算機(jī)軟件的規(guī)模和復(fù)雜度也隨之增加。軟件項目中一些問題也應(yīng)運而生:項目無法按期完成、項目合作方的工作難以協(xié)調(diào)、用戶需求經(jīng)常變動、工作質(zhì)量難以保證。為了避免愈來愈多的“項目黑洞”給企業(yè)帶來的損失,各個軟件企業(yè)都將軟件項目管理引入到開發(fā)活動中來,對開發(fā)實行有效的管理。
一、軟件項目引入項目管理的必要性軟件項目即軟件開發(fā)項目,是一個用計算機(jī)程序和相關(guān)技術(shù)文檔把思想表達(dá)出來的過程。軟件項目所涉及到的內(nèi)容大多是無形的東西,既看不到質(zhì),也看不到量,從而使軟件項目的管理難度加大。
隨著信息技術(shù)的飛速發(fā)展,軟件產(chǎn)品的規(guī)模也越來越大,完全由個人完成一個軟件項目幾乎是不可能的,軟件項目的開發(fā)都是以項目組為單位完成的,這必然涉及到對軟件項目的管理。一個軟件項目的成敗,不在于其項目組的技術(shù)人員的技術(shù)水平,而在于是否采用合適的管理方式。好的管理方式不一定能使項目完全成功,但是一個不合適的管理模式肯定會導(dǎo)致軟件項目的失敗。
項目管理是指在一定資源如時間、資金、人力和設(shè)備等約束條件下,對一個有既定目標(biāo)(質(zhì)量、投資、進(jìn)度)要求的任務(wù)進(jìn)行計劃和控制的過程。項目管理以系統(tǒng)的觀點來對一個項目進(jìn)行全程的控制,同樣也可以用此來完成對軟件項目的管理,而且由于軟件項目的特殊性,項目管理在應(yīng)用于軟件項目的管理時,也會有其獨特的一面。在項目管理應(yīng)用于軟件項目的管理方面,已經(jīng)有了不少成功的案例。
二、影響軟件項目管理的關(guān)鍵要素
(一)可靠的軟件需求
軟件需求是軟件項目的根本所在,需求不明確,工作就沒有方向,因此影響軟件項目的第一個因素就是項目要有一個可靠的需求。軟件需求應(yīng)當(dāng)是項目有關(guān)的人員一致同意的、清楚的、完整的、詳細(xì)的、可實現(xiàn)的和可測試的。
需求的確定,開發(fā)者應(yīng)該認(rèn)真聽取用戶的意見,并進(jìn)行記錄,反復(fù)和用戶溝通,不能想當(dāng)然地把自己的想象當(dāng)作用戶的需求。在確定用戶需求的時候,應(yīng)該盡可能從專業(yè)的角度發(fā)掘用戶的潛在需求,以達(dá)到最大限度地滿足用戶的目標(biāo),只有這樣才能可能開發(fā)有價值的軟件項目。一定要強(qiáng)調(diào)的是,在項目開始以后,應(yīng)該盡最大可能不更改需求,要與用戶進(jìn)行很好地溝通,以確保開發(fā)工作能按照需求進(jìn)行,也就是說,只有有了可靠的需求,項目開發(fā)才有基本保證。
(二)可行的項目計劃
凡事預(yù)則立,不預(yù)則廢。這里的預(yù)就是指計劃。明確了項目目標(biāo),還必須有一個切實可行的計劃。軟件項目計劃的目的是為完成軟件工程和管理軟件項目。制定合理的計劃,它包括以下步驟:估計軟件
產(chǎn)品規(guī)模及所需的資源,制定時間表,鑒別和評估軟件風(fēng)險和協(xié)商約定,而且要標(biāo)志出幾個階段性的里程碑,這是極為關(guān)鍵的一點。對于軟件企業(yè)來說,一個可行的計劃的重要性是不言而喻的。但是在一些單位,很多人都聽過這樣的一句話一“計劃趕不上變化”。這種變化對某些行業(yè)來說也許并不會產(chǎn)生太大的影響,但是對于軟件企業(yè)來說,卻會對軟件產(chǎn)品的保證帶來嚴(yán)重的負(fù)面影響。造成這種現(xiàn)象的原因很多,主要是因為對計劃的重視程度不夠,計劃過于籠統(tǒng)、粗糙,導(dǎo)致可執(zhí)行性差,再加上一些人為因素的影響,必然會產(chǎn)生一些不良的影響。因此,要想成功進(jìn)行項目管理,就要對計劃高度重視,周密制定,嚴(yán)格執(zhí)行。只有嚴(yán)格進(jìn)行計劃,才能使項目管理得以成功實施。
(三)規(guī)范的操作流程
軟件開發(fā)流程非常規(guī)范和系統(tǒng)化,其流程的可執(zhí)行性很高,并且能在實踐過程中不斷改進(jìn)。流程是保證項目成功的一個關(guān)鍵因素。由優(yōu)秀的項目成員按照規(guī)范的操作流程進(jìn)行項目開發(fā),才能最大限度地保證項目的成功。一個規(guī)范的流程可以保證不是很出色的人開發(fā)出來的,產(chǎn)品不至于太差,但不能保證做出精品,而一個不規(guī)范的流程很難做出好的產(chǎn)品。
通過流程可以實現(xiàn)一種規(guī)范化、流水線、工業(yè)化的軟件,從而最終實現(xiàn)成功的項目管理。對于軟件項目的每一個階段均要做出工作計劃并交有關(guān)部門監(jiān)督執(zhí)行,在階段結(jié)束之后,要對該階段的工作活動進(jìn)行評價,并對后續(xù)階段的時間、人員、資金方面的需求做出估計。每個階段的工作成果需經(jīng)項目的技術(shù)管理部門審查合格后,方能開始下一階段的工作。
(四)有效的人員溝通
軟件項目的實施對人的依賴性比其他行業(yè)更為突出,它是一項知識性極強(qiáng)的工作,因此對人的管理相當(dāng)復(fù)雜,如何加強(qiáng)人員之間的有效溝通,是軟件項目成功的一個非常關(guān)鍵的因素。這里的溝通包括兩個方面:一個是軟件項目組開發(fā)人員與用戶的溝通;另一個是軟件項目組內(nèi)人員的溝通。只有對用戶的需求非常明確,軟件項目的實施才有一個堅實的基礎(chǔ)。對用戶的需求不明確,開發(fā)出的軟件根本沒法用,所以這樣的項目在一開始就是失敗的。組內(nèi)人員的溝通有助于在明確了用戶需求后,使得項目能按計劃進(jìn)展,最后才有可能完成該軟件項目。
沒有最好的溝通方式,只有最有效的溝通。因此溝通因人因事而采用不同的溝通方式,才可以達(dá)到良好的效果。有時項目組需要和用戶溝通,面談是一種較為花時間的方式,而用戶方常常以忙來說明自己沒有時間,這時候可以采用電話溝通的方式,這樣馬上就可以得到答復(fù)。有時可以將項目進(jìn)展情況用郵件的方式發(fā)給對方,使得軟件開發(fā)的工作也成為用戶的一種工作,只有這樣才能正確把握用戶的真正需求,才能使得開發(fā)出的軟件真正是滿足用戶需求的軟件。而在內(nèi)部的溝通形式就可以多樣,如定期的項目溝通會議、項目進(jìn)展文檔等。
總之,只有加強(qiáng)溝通,才能使得軟件項目順利實施,溝通是成功軟件項目管理的很重要的因素。
(五)健全的項目文檔
軟件項目的文檔在整個生命周期中的地位和作用尤為重要,無論怎樣強(qiáng)調(diào)都不過分。文檔作為軟件產(chǎn)品的主要形式,集中體現(xiàn)了軟件人員的勞動成果,沒有文檔就稱不上軟件。但是實際情況是許多軟件開發(fā)人員從一開始就不注重文檔的寫作,尤其是當(dāng)軟件項目的工期又很緊張時,在沒有任何文檔或只有少量文檔的情況下就開始了具體的開發(fā)工作。有的寫了文檔,但是在開發(fā)過程中需求發(fā)生了變更,也沒有及時在文檔中體現(xiàn)出來,使得過一段時間后開發(fā)者對所開發(fā)的內(nèi)容也記得不清了,當(dāng)項目出現(xiàn)問題時,沒有有效的文檔可查,致使軟件項目延期或失敗。
軟件開發(fā)過程中各階段的文檔不健全,往往在項目接近尾聲時為了驗收才補(bǔ)寫文檔。最常見的是有系統(tǒng)分析與概要設(shè)計文檔,但是沒有詳細(xì)設(shè)計文檔,在程序開發(fā)過程中,開發(fā)人員往往最大限度地發(fā)揮著自己高超的編程技巧,以至于在后期維護(hù)時,因為沒有詳細(xì)的設(shè)計文檔,給項目的后期維護(hù)帶來困難。
編寫文檔的工作量是很大的。有時會占整個項目的40%,所以文檔的編寫會花費大量的時間和精力,但是有了好的文檔,會對后期的開發(fā)工作帶來很多的便利。健全的文檔管理是軟件項目成功實施的一個重要因素。
三、軟件項目管理的方法
軟件項目管理有階段化管理,量化管理和優(yōu)化管理三個層面。
(―)階段化管理
階段化管理指的是從立項之初直到系統(tǒng)運行維護(hù)的全過程,將項目分成小的階段。比如,通常分為問題定義、可行性研究、需求分析、總體設(shè)計、詳細(xì)設(shè)計、編碼、狽彳試和維護(hù)等幾個階段。每個階段都有明確的目標(biāo)和成果驗收,以及必要的監(jiān)督回饋,這樣就能夠很好地減少項目負(fù)責(zé)人和客戶的分歧,增加項目風(fēng)險的可控性。在項目負(fù)責(zé)人提交給客戶的需求分析和初始報告里,就已經(jīng)把每個階段要完成的工作,可出的成果,甚至具體到有多少個界面,都能清晰的描述出來。這樣,在每個階段完成后,客戶和項目負(fù)責(zé)人都能夠比較清楚地了解項目的進(jìn)展、完成情況,以及客戶對項目完成部分的滿意程度。同時,也方便進(jìn)行項目組成員的績效評估。
(二)量化管理
把項目的方方面面盡可能地進(jìn)行數(shù)量化,做到責(zé)任清楚。給客戶做軟件,時常碰到這種問題:某階段成果A(比如說,包括A1、A2、A3等不同部分)出來了,客戶看了以后,可能認(rèn)為A1完全符合要求,A2根本就不對,A3雖然有毛病但改改還可用,等等。那么,這其中的問題出在哪里?責(zé)任該由誰負(fù)?責(zé)任又有多大呢?為此,必須把各種目標(biāo)、投入、成果等分類量化。比如,用明確的模塊或子系統(tǒng)表達(dá)客戶需求,精確計算A1、A2、A3每部分花費人工、物力、財力等等。把各種量化指標(biāo)存入數(shù)據(jù)庫,就能夠輕而易舉地解決上述的問題了。而且,每個階段都有清晰的量化管理,也非常有利于整個項目進(jìn)程的推進(jìn)。
(三)優(yōu)化管理
優(yōu)化管理就是分析項目每部分所蘊(yùn)涵的知識、經(jīng)驗和教訓(xùn),更好地發(fā)揚項目進(jìn)程中的經(jīng)驗,吸取教訓(xùn),在全公司傳播有益的知識。再如前面例子,通過分析發(fā)現(xiàn)A1部分的領(lǐng)頭人能力強(qiáng),就可以讓他以后多帶幾個人,使他的知識和經(jīng)驗更好地發(fā)揮成效。A2、A3部分為什么不成功?是客戶的需求沒提清楚,是理解的錯誤,還是有設(shè)計的問題?通過這些分析后,有利于進(jìn)一步優(yōu)化項目管理。
四、軟件項目管理過程中的幾個誤區(qū)
(一)對需求的修改是必然的,具體細(xì)節(jié)可在以后的開發(fā)過程中填充
在軟件項目的需求分析階段,軟件開發(fā)人員和項目負(fù)責(zé)人通常認(rèn)為開發(fā)方與客戶方在各種問題的基本輪廓上達(dá)成一致即可,具體細(xì)節(jié)可以在以后填充。理由是無論開始時多么細(xì)致,以后對需求的修改幾乎是必然的。但在實際操作中,由于需求階段對問題的描述不夠細(xì)致,導(dǎo)致后來預(yù)算超支或者時間進(jìn)度達(dá)不到要求的情況并不少見。正確的做法應(yīng)該是:在項目需求分析階段,雙方必須全面地、盡可能細(xì)致地討論項目的應(yīng)用背景、功能要求、性能要求、操作界面要求、與其他軟件的接口要求,以及對項目進(jìn)行評估的各種評價標(biāo)準(zhǔn)。在需求分析結(jié)束以后,雙方還要建立可以直接聯(lián)系的渠道,以便盡早地對需求變動進(jìn)行溝通。
(二)軟件項目的需求可以持續(xù)不斷地改變,并且可以很容易地得以實現(xiàn)
在需求分析階段,還有一個經(jīng)常出現(xiàn)的問題,就是認(rèn)為軟件項目的需求可以持續(xù)不斷地改變,而且這些改變可以很容易地實現(xiàn)。在具體實際中由于種種原因,客戶方很難在需求分析階段就能全面而準(zhǔn)確地描述所有問題。隨著開發(fā)進(jìn)度的推進(jìn),往往會有一些需求的改變。現(xiàn)代軟件工程理論也利用軟件的靈活性特點通過各種方式來適應(yīng)這種情況。實踐表明:隨著開發(fā)進(jìn)度的推進(jìn),實現(xiàn)軟件需求更改所需要的代價呈指數(shù)形式增長。假定在需求分析階段實現(xiàn)需求更改要花費1倍的代價,那么,在系統(tǒng)設(shè)計和編碼階段,則需要花費1.5~6倍的代價;在系統(tǒng)測試階段需要花費10~20倍的代價,在軟件版本以后,甚至要花費60~100倍的代價。由此可見,在項目開展過程中,軟件需求的改變應(yīng)當(dāng)盡早提出。這樣才能做到既節(jié)省開銷,又較容易實現(xiàn)。
(三)在系統(tǒng)詳細(xì)設(shè)計階段,必須寫出所有程序的偽碼
在詳細(xì)設(shè)計階段,起初為了便于代碼的維護(hù)修改,要求文檔工作應(yīng)該做到寫出所有程序的偽碼。偽碼的最大作用是對程序的算法流程進(jìn)行描述,便于人們深入了解程序的功能和實現(xiàn)過程。因此,偽碼在一定程度上的確有利于對程序代碼的維護(hù)和修改。但在實際工作中,這種做法卻很難實施。為了保證項目文檔和程序代碼的一一對應(yīng)關(guān)系,維護(hù)程序代碼的同時也需要對項目文檔進(jìn)行維護(hù)。偽碼和程序代碼非常接近,對偽碼進(jìn)行維護(hù),就相當(dāng)于進(jìn)行了加倍的程序代碼維護(hù)。為了趕進(jìn)度,這種方法在實踐中往往會流于形式。所以,切合實際的方式應(yīng)該是對一般的程序文檔做到程序流程圖即可,對涉及了較復(fù)雜算法的程序才需要偽碼。
(四)編碼階段是整個軟件項目中最重要的階段
在軟件開發(fā)階段,項目負(fù)責(zé)人往往認(rèn)為軟件程序主要由代碼組成,因此編碼階段是整個軟件項目中最重要的階段,應(yīng)該給予大量時間,集中主要資源。與編碼階段相比,需求分析、詳細(xì)設(shè)計以及測試時間較少,容易造成測試不完全及軟件上線后的先天不足,給今后的工作造成被動。如今,由于軟件的規(guī)模和復(fù)雜度都較以前有較大的增加,再加上半自動化軟件代碼開發(fā)平臺的出現(xiàn),現(xiàn)代軟件項目管理的中心已經(jīng)發(fā)生了轉(zhuǎn)移一不是著重編碼階段,而是著重系統(tǒng)總體/詳細(xì)設(shè)計階段。一般,系統(tǒng)總體/詳細(xì)設(shè)計階段應(yīng)占整個軟件開發(fā)時間的一半。這樣才能充分考慮系統(tǒng)將會出現(xiàn)的各種問題及其解決辦法,為以后的編碼、測試工作爭取主動。
(五)軟件所有的內(nèi)部測試工作應(yīng)由測試人員完成
在軟件測試階段,由于在項目人員配置中設(shè)置了專門的測試人員,人們通常認(rèn)為軟件所有的內(nèi)部測試工作應(yīng)該由測試人員完成。但這種做法往往會造成測試不全面,軟件交付后經(jīng)常出現(xiàn)問題的情況。在實際工作中,由于使用“白盒法”對測試人員各方面素質(zhì)有著較高的要求,進(jìn)行程序測試時,測試人員總是優(yōu)先使用“黑盒法'狽j試沒有通過才會考慮對程序代碼進(jìn)行“白盒法”測試。顯然,這種對“白盒法,有意無意的“逃避”,對軟件的可靠性和穩(wěn)定性構(gòu)成了威脅。要解決這個問題,一方面需要提高對測試人員的要求;另一方面也需要讓程序員完成部分的“白盒法”測試。
(六)軟件項目管理只是相關(guān)技術(shù)部門的事,與公司其他部門無關(guān)
在競爭日益激烈的今天,軟件項目規(guī)模大、復(fù)雜度高,而且時間要求緊迫。要想提高公司的軟件項目管理水平,就需要提高公司的整體參與意識,需要公司各個部門協(xié)同作戰(zhàn)。例如,需要會計部門協(xié)助進(jìn)行項目預(yù)算、財務(wù)管理和費用控制;需要研究部門(技術(shù)委員會)指派專家協(xié)助進(jìn)行各種風(fēng)險評估,提供技術(shù)指導(dǎo);需要后勤部門提供各種保障。
(七)開發(fā)進(jìn)度滯后時,可以聘請更多的程序員加入到開發(fā)團(tuán)隊中,通過增加人力資源追趕開發(fā)進(jìn)度
如今,在注重團(tuán)隊開發(fā)的時代,開發(fā)方應(yīng)該根據(jù)目前的軟件項目管理水平慎重考慮這個做法。如果新加入的程序員對目前軟件項目的應(yīng)用行業(yè)有一定了角解并且可以很快地適應(yīng)開發(fā)方的項目管理方式、軟件開發(fā)風(fēng)格、團(tuán)隊協(xié)作氛圍,那么“新人”的加入是有益的。否則,可能會“好心卻辦了壞事”。因為盡管新人的個人能力很高,但為了使其與大家一起協(xié)同工作,開發(fā)團(tuán)隊不得不分出人手對新人進(jìn)行與項目有關(guān)的技術(shù)、業(yè)務(wù)培訓(xùn)。更重要,也是難度最大的是,還要引導(dǎo)新人融入到整個開發(fā)團(tuán)隊中。這可能需要花費開發(fā)團(tuán)隊大量的時間和精力,很有可能使項目進(jìn)度更慢。