国产精品无码永久视频免费看_日韩精品久久中文人妻一区_国产?在线?a_97精品人妻一区二区三区香蕉_亚洲视频一区中文字幕在线视频

基于軟件開發(fā)項目進度控制常見問題解析

2019-02-28 11:37:44分類:軟件開發(fā)5569

  要有效地進行進度控制,必須對影響進度的因素進行分析,事先或及時采取必要的措施,盡量縮小計劃進度與實際進度的偏差,實現(xiàn)對項目的主動控制。軟件開發(fā)項目中影響進度的因素很多,如人為因素、技術(shù)因素、資金因素、環(huán)境因素等等。在軟件開項目的實施中,人的因素是最重要的因素,技術(shù)的因素歸根到底也是人的因素。軟件開發(fā)項目進度控制常見問題主要是體現(xiàn)在對一些因素的考慮上。常見的問題有以下幾種情況:
 

軟件開發(fā)項目
 

  一、80-20原則與過于樂觀的進度控制

  80-20原則在軟件開發(fā)項目進度控制方面體現(xiàn)在:80%的項目工作可以在20%的時間內(nèi)完成,而剩余的20%的項目工作需要80%的時間。這個80%的項目工作不一定是在項目的前期,而可能是分布在項目的各個階段,但是剩余的20%左右的項目工作大部分是在后期。所以軟件開發(fā)在進入編碼階段后會給人一種“進展快速”的感覺,使得項目經(jīng)理、項目團隊成員、用戶以及高層領(lǐng)導(dǎo)產(chǎn)生了過于樂觀的估計。有些領(lǐng)導(dǎo)看到軟件交付給用戶了,就一塊石頭落地“總算交差了”,同時又可能撤出一些被認為不必要的人力資源。但很多情況下這是為了對付用戶不合理的交付期限要求而采用的不得已的措施。這樣的結(jié)果是拖延了后期的工作,同時如果軟件還不成熟的話,會給用戶造成不好的影響。

  二、范圍、質(zhì)量因素對進度的影響

  軟件開發(fā)項目比其他任何建設(shè)項目都會有更經(jīng)常的變更,大概是因為軟件程序是一種“看不見”又“很容易修改”的東東吧,用戶是想改就改,造成需求的蔓延,項目經(jīng)理有時還不知如何拒絕,加上要說“我能”的心理因素,一般都會答應(yīng)修改。這樣集少成多,逐漸影響了項目進度。

  如果某項工作在進度上表面上達到目標了,但經(jīng)檢驗其質(zhì)量沒有達到要求,則必然要通過返工等手段,增加人力資源的投入,增加時間的投入,實際上是拖延了進度。不管是從橫向或縱向來看,部分任務(wù)的質(zhì)量會影響總體項目的進度,前面的一些任務(wù)質(zhì)量中會影響到后面的一些任務(wù)質(zhì)量。

  三、資源、預(yù)算變更對進度的影響

  資源,最主要的還是人力資源,有時某方面的人員不夠到位,或者在多個項目的情況下某方面的人員中途被抽到其他項目、或身兼多個項目、或在別的項目不能自拔無法投入本項目。還有一個很重要的資源,就是信息資源,如某些國家標準、行業(yè)標準,用戶可能提供不了,而是需要去收集或購買,如果不能按時得到,就會影響需求分析、設(shè)計或編碼的工作。其他資源,如開發(fā)設(shè)備或軟件沒有到貨,也會對進度造成影響。

  預(yù)算其實就是一種資源,它的變更會影響某些資源的變更,從而對進度造成影響。

  四、低估了軟件開發(fā)項目實現(xiàn)的條件

  低估軟件開發(fā)項目實現(xiàn)的條件表現(xiàn)在低估技術(shù)難度、低估協(xié)調(diào)復(fù)雜度、低估環(huán)境因素這樣幾個方面。

  首先是低估技術(shù)難度。軟件開發(fā)項目團隊成員,有時甚至是企業(yè)的高級項目主管也經(jīng)常低估項目技術(shù)上的困難。低估技術(shù)難度實際上也就是高估人的能力,認為或希望項目會按照已經(jīng)制定的樂觀項目計劃順利地實施,而實際則不然。軟件開發(fā)項目的高技術(shù)特點本身說明其實施中會有很多技術(shù)的難度,除了需要高水平的技術(shù)人員來實施外,還要考慮為解決某些性能問題而進行科研攻關(guān)和項目實驗;

  其次,低估了協(xié)調(diào)復(fù)雜度,也低估了多個項目團隊參加項目時工作協(xié)調(diào)上的困難。軟件開發(fā)項目團隊成員比較強調(diào)個人的智慧、強調(diào)個性,這給項目工作協(xié)調(diào)帶來更多的復(fù)雜度。當一個大項目由很多子項目組成時,不僅會增加相互之間充分溝通交流的困難,更會增加項目協(xié)調(diào)和進度控制上的困難。

  另外,企業(yè)高級項目主管和項目經(jīng)理也經(jīng)常低估環(huán)境因素,這些環(huán)境因素包括用戶環(huán)境、行業(yè)環(huán)境、組織環(huán)境、社會環(huán)境、經(jīng)濟環(huán)境。低估這些條件,既有主觀的原因,也會有客觀的原因。對項目環(huán)境的了解程度不夠,造成沒有做好充分的準備。

  五、項目狀態(tài)信息收集的情況

  由于項目經(jīng)理的經(jīng)驗或素質(zhì)原因,對項目狀態(tài)信息收集的的掌握不足,及時性準確性完整性比較差。另外其它一些原因也會造成這種現(xiàn)象。某些項目團隊成員報喜不報憂,不希望別人知道自己工作的不好的情況,例如軟件程序的編制,可能會先編制一些表面的東西,現(xiàn)有界面,看起來好像完成任務(wù)了,實際上只是一個“原型系統(tǒng)”或演示系統(tǒng)。給領(lǐng)導(dǎo)造成比較樂觀的感覺。

  如果項目經(jīng)理或者管理團隊沒有及時地檢查發(fā)現(xiàn)這種情況,將對項目的進度造成嚴重的影響。當然,如果出現(xiàn)這種需要時時刻刻都互相提防的氛圍,管理人員就應(yīng)該從管理的角度,從制度的角度檢討一下,進行改進,讓大家實事求是地進行溝通。溫伯格說:“無論你多么聰明,離開了信息,對項目進行成功的控制就是無源之水、無本之木。”

  六、執(zhí)行計劃的嚴格程度

  沒有把計劃作為項目過程行動的基礎(chǔ),而是把計劃放在一邊,比較隨意去做。例如對于項目團隊內(nèi)部溝通或外部溝通,在計劃中要說明清楚人員、周期、方式、方法,不能遺漏,但在實際項目過程中,可能出現(xiàn)溝通沒有按時或沒有完整地達到所有項目干系人的情況。

  若項目計劃本身有錯誤,執(zhí)行錯誤的計劃肯定會產(chǎn)生錯誤。如,計劃制訂者在計劃系統(tǒng)框架設(shè)計考慮上的錯誤、進度安排上的失誤等。實際的項目實施中,除了這種錯誤之外,還可能因為項目執(zhí)行上的錯誤,造成項目的麻煩。例如,項目的客戶及其他項目干系人沒有及時為項目中出現(xiàn)的情況采取必要的措施或者所采取的措施的不適合具體的情況、沒有效果或者有副作用等。另外,如果在項目中的某項工作(如某個子系統(tǒng)或模塊、組件)被轉(zhuǎn)包給第三方開發(fā)后,不能進行有效的管理,也會造成進度上的延誤。

  七、計劃變更調(diào)整的及時性

  漸近明細是項目的特點,特別是對于軟件開發(fā)項目,并不是一個一成不變的過程。開始時的項目計劃可以先制定得比較粗一些,隨著項目的進展,特別是需求明確以后,項目的計劃就可以進一步的明確,這時候應(yīng)該對項目計劃進行調(diào)整修訂,通過變更手續(xù)取得項目干系人的共識。計劃應(yīng)該隨著項目的進展而逐漸細化、調(diào)整、修正。沒有及時調(diào)整的計劃或者是隨意的不負責(zé)任的計劃的項目是難以控制的。在高技術(shù)行業(yè),日新月異是主要特點,因此計劃的制定需要在一定條件的限制和假設(shè)之下采用漸近明細的方式,隨著項目的進展進行不斷細化、調(diào)整、修正、完善。

  對于較為大型的軟件開發(fā)項目的工作分解結(jié)構(gòu)可采用二次甚至多次 WBS 方法。即根據(jù)總體階段劃分的總體 WBS ,需求調(diào)研階段結(jié)束、概要設(shè)計完成后專門針對詳細設(shè)計或編碼階段的二次 WBS 。由于需求的功能點和設(shè)計的模塊或組件之間并不是一一對應(yīng)的關(guān)系,所以只有在概要設(shè)計完成以后才能準確地得到詳細設(shè)計或編碼階段的二次 WBS ,根據(jù)代碼模塊或組件的合理劃分而得出的二次 WBS 才能在詳細設(shè)計、編碼階段乃至測試階段起到有效把握和控制進度的作用。有些項目的需求或設(shè)計做得不夠詳細,無法對工作任務(wù)的分解、均衡分配和進度管理起參考作用,因此要隨著需求的細化和設(shè)計的明確,對項目的分工和進度進行及時的調(diào)整,使項目的計劃符合項目的變化,使項目的進度符合項目的計劃。
 

軟件開發(fā)項目
 

  八、未考慮不可預(yù)見事件發(fā)生造成的影響

  假設(shè)、約束、風(fēng)險等考慮“不周”造成項目進度計劃中未考慮一些不可預(yù)見的事件發(fā)生。例如軟件開發(fā)項目還會因為項目資源特別是人力資源缺乏、人員生病、人員離職、項目團隊成員臨時有其他更緊急的任務(wù)造成人員流動等不可預(yù)見的事件對項目的進度控制造成影響(即項目按時完成是基于如下假設(shè):人力資源不會缺乏、人員不會生病、人員不會流動)。企業(yè)環(huán)境、社會環(huán)境、天災(zāi)人禍等事件對項目的進度控制造成影響。對項目的假設(shè)條件、約束條件、風(fēng)險及其對策等對于進度的影響在項目計劃要進行充分的考慮,在項目進展過程中也要不斷地重新考慮有沒有新的情況,新的假設(shè)條件、約束條件、潛在風(fēng)險會影響項目的進度。假設(shè)是通過努力可以直接解決的問題,而這些問題是一定要解決才能保證項目按計劃完成;約束一般是難以解決的問題,但可以通過其他途徑回避或彌補、取舍,如犧牲進度、質(zhì)量等等;假設(shè)與約束是針對比較明確會出現(xiàn)的情況,如果問題的出現(xiàn)具有不確定性,則應(yīng)該在風(fēng)險分析中列出,分析其出現(xiàn)的可能性、造成的影響、采取的措施。實際上像沒有考慮人的疾病、人員流動這些情況本身也不是什么問題,因為任何人都不可能把所有以外的情況都考慮完整,實際上也沒有必要。但有些諸如下班或節(jié)假日的加班時間都被安排用于項目工作的情況就會造成更多的項目不確定性。在可能的情況下當然要對所有可能情況都做到有備無患,但是有的時候也要冒一定的風(fēng)險,同時對于風(fēng)險的防范也需要考慮如果防范的成本大于風(fēng)險本身造成的損失和影響,則這種防范是沒有必要的。

  九、程序員方面的因素對進度的影響

  程序員方面有兩種常見的心態(tài)影響了進度的控制:一是技術(shù)完美主義、二是自尊心。

  技術(shù)完美主義的常見現(xiàn)象是,有些程序員由于進度壓力、經(jīng)驗等方面的原因,會匆忙先做編碼等具體的事情,等做到一定程度后會想到一些更好的構(gòu)思,或者看到一些更好的技術(shù)的介紹,或者是覺得外部構(gòu)架可以更加美化,或者是覺得內(nèi)部構(gòu)架可以更加優(yōu)化,這樣他們會私下或公開對軟件進行調(diào)整,去嘗試一下新的技術(shù)。而是否使用這些新的技術(shù)對完成項目本身的目標并沒有影響,相反可能帶來不確定的隱患。這種做法不是以用戶的需求為本、或以項目團隊的總體目標為本,可能對軟件開發(fā)進度造成較大的影響。

  自尊心的常見想象是,有些程序員在遇到一些自己無法解決的問題時,傾向于靠自己摸索,而不愿去問周圍那些經(jīng)驗更為豐富的人。有些人也許會通過聊天室等方式匿名地向別人求教。如果運氣好會很快地解決,否則要花很多實踐摸索。而如果向周圍的人求教,可能摸索幾天的問題別人早就解決了。

  十、未考慮軟件開發(fā)過程的循環(huán)、迭代特性

  對軟件開發(fā)的各個過程分類過于精細,制定進度計劃時各項工作過于緊湊、沒有彈性,造成的后果是,定期提交項目進度階段報告的制度只有在表面上起到效果,按照計劃的時間表提交階段成果也只是在表面上起到效果。因為“上有政策、下有對策”,強行的規(guī)定會使人產(chǎn)生一些錯誤的認識:如在項目計劃中“規(guī)定”某個時間只能做某某類別的事情,那么嚴格執(zhí)行的后果就是編碼階段就不能修改文檔;另外錯誤的“里程碑”概念可能會使大家輕易地相信上一個階段的工作成果都是“通過評審”最終定稿了,而實際上可能只是因為時間到了該提交的人提交、該評審的人評審了。

  如果上下階段是不同的人就根本不會去檢查其中是否還有錯誤;如果上下階段是同一個人,就可能非正式地修改上一階段的錯誤,但占用的時間和精力卻是下一階段的,并且這樣的修改時沒有記錄的。這樣關(guān)于階段進度控制的措施實際上只是在表面上有效。最為普遍的情況是,用戶在合同中限定了提交軟件系統(tǒng)的時間,實際上這個時間對完成項目任務(wù)來說是遠遠不夠的,但計劃只能按照合同來進行,所以要不用戶讓步,要不只能按照時間的約定提交實際上還未完成的軟件系統(tǒng),完成系統(tǒng)的安裝,但這時候的“完成階段任務(wù)”只是一個表面現(xiàn)象,系統(tǒng)雖然安裝了,但可能是沒有經(jīng)過嚴格徹底測試的,也可能是只完成了部分的功能,省略了某些功能,有些是整塊功能省略,有的是省略了某些功能的某個過程,如數(shù)據(jù)錄入里面隱含的數(shù)據(jù)錄入前缺省值設(shè)置、數(shù)據(jù)錄入檢驗等功能,而是實現(xiàn)了比較粗糙的功能。這樣,系統(tǒng)交付并不意味著項目的完成,而在項目交付之后還要花更多的時間。

  十一、其他因素

  以上這些因素是影響項目進度的幾個主要方面,除此之外還有很多其他的影響因素。其實最主要的因素還是人的因素,這里的人包括所有與項目相關(guān)的人。項目經(jīng)理的素質(zhì)、管理者的水平、用戶的因素、項目成員的因素等等,都會對項目進度造成影響,這是因為由于軟件開發(fā)的特性。因為篇幅有限無法一一列舉,只能在此分析一些常見的因素。

  不可否認,軟件開發(fā)項目進度可控性還是帶有一定運氣成分的。特別是需要用戶配合的那些軟件開發(fā)項目,其可控性與用戶的成熟度、軟件應(yīng)用領(lǐng)域的成熟程度和行業(yè)標準規(guī)范的完備程度有很大關(guān)系。關(guān)于可控性方面會涉及到一些與客戶打交道經(jīng)驗,雖然我們說,顧客是上帝、以顧客為中心,但并不是說我們要把主導(dǎo)權(quán)交給他們,而關(guān)鍵是我們?nèi)绾稳ブ鲗?dǎo)、引導(dǎo)、把握。因此,項目控制的好壞與相關(guān)人員人際關(guān)系方面的經(jīng)驗也有關(guān)系。

  盡管存在很多不可控的因素,我們的任務(wù)是首先分清哪些是可以控制的,哪些是我們不能控制的。項目經(jīng)理一是要盡量擴大可控的領(lǐng)域,減少不可控的領(lǐng)域,二是不要在“不可控”上花太多時間,而是多花一些時間把可控的工作控制好,做好防范措施,減輕不可控因素對項目進度的影響。

  項目進入實施階段后,項目經(jīng)理的幾乎所有的活動都是圍繞進度展開的。進度控制的目標與成本控制的目標和質(zhì)量控制的目標是對立統(tǒng)一的關(guān)系。項目的進度、質(zhì)量和成本構(gòu)成一個相互制約的三角關(guān)系,需要項目經(jīng)理去平衡。

上一篇:下一篇: