2019-02-28 11:37:44分類:軟件開(kāi)發(fā)3960
要有效地進(jìn)行進(jìn)度控制,必須對(duì)影響進(jìn)度的因素進(jìn)行分析,事先或及時(shí)采取必要的措施,盡量縮小計(jì)劃進(jìn)度與實(shí)際進(jìn)度的偏差,實(shí)現(xiàn)對(duì)項(xiàng)目的主動(dòng)控制。軟件開(kāi)發(fā)項(xiàng)目中影響進(jìn)度的因素很多,如人為因素、技術(shù)因素、資金因素、環(huán)境因素等等。在軟件開(kāi)項(xiàng)目的實(shí)施中,人的因素是最重要的因素,技術(shù)的因素歸根到底也是人的因素。軟件開(kāi)發(fā)項(xiàng)目進(jìn)度控制常見(jiàn)問(wèn)題主要是體現(xiàn)在對(duì)一些因素的考慮上。常見(jiàn)的問(wèn)題有以下幾種情況:
一、80-20原則與過(guò)于樂(lè)觀的進(jìn)度控制
80-20原則在軟件開(kāi)發(fā)項(xiàng)目進(jìn)度控制方面體現(xiàn)在:80%的項(xiàng)目工作可以在20%的時(shí)間內(nèi)完成,而剩余的20%的項(xiàng)目工作需要80%的時(shí)間。這個(gè)80%的項(xiàng)目工作不一定是在項(xiàng)目的前期,而可能是分布在項(xiàng)目的各個(gè)階段,但是剩余的20%左右的項(xiàng)目工作大部分是在后期。所以軟件開(kāi)發(fā)在進(jìn)入編碼階段后會(huì)給人一種“進(jìn)展快速”的感覺(jué),使得項(xiàng)目經(jīng)理、項(xiàng)目團(tuán)隊(duì)成員、用戶以及高層領(lǐng)導(dǎo)產(chǎn)生了過(guò)于樂(lè)觀的估計(jì)。有些領(lǐng)導(dǎo)看到軟件交付給用戶了,就一塊石頭落地“總算交差了”,同時(shí)又可能撤出一些被認(rèn)為不必要的人力資源。但很多情況下這是為了對(duì)付用戶不合理的交付期限要求而采用的不得已的措施。這樣的結(jié)果是拖延了后期的工作,同時(shí)如果軟件還不成熟的話,會(huì)給用戶造成不好的影響。
二、范圍、質(zhì)量因素對(duì)進(jìn)度的影響
軟件開(kāi)發(fā)項(xiàng)目比其他任何建設(shè)項(xiàng)目都會(huì)有更經(jīng)常的變更,大概是因?yàn)檐浖绦蚴且环N“看不見(jiàn)”又“很容易修改”的東東吧,用戶是想改就改,造成需求的蔓延,項(xiàng)目經(jīng)理有時(shí)還不知如何拒絕,加上要說(shuō)“我能”的心理因素,一般都會(huì)答應(yīng)修改。這樣集少成多,逐漸影響了項(xiàng)目進(jìn)度。
如果某項(xiàng)工作在進(jìn)度上表面上達(dá)到目標(biāo)了,但經(jīng)檢驗(yàn)其質(zhì)量沒(méi)有達(dá)到要求,則必然要通過(guò)返工等手段,增加人力資源的投入,增加時(shí)間的投入,實(shí)際上是拖延了進(jìn)度。不管是從橫向或縱向來(lái)看,部分任務(wù)的質(zhì)量會(huì)影響總體項(xiàng)目的進(jìn)度,前面的一些任務(wù)質(zhì)量中會(huì)影響到后面的一些任務(wù)質(zhì)量。
三、資源、預(yù)算變更對(duì)進(jìn)度的影響
資源,最主要的還是人力資源,有時(shí)某方面的人員不夠到位,或者在多個(gè)項(xiàng)目的情況下某方面的人員中途被抽到其他項(xiàng)目、或身兼多個(gè)項(xiàng)目、或在別的項(xiàng)目不能自拔無(wú)法投入本項(xiàng)目。還有一個(gè)很重要的資源,就是信息資源,如某些國(guó)家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn),用戶可能提供不了,而是需要去收集或購(gòu)買(mǎi),如果不能按時(shí)得到,就會(huì)影響需求分析、設(shè)計(jì)或編碼的工作。其他資源,如開(kāi)發(fā)設(shè)備或軟件沒(méi)有到貨,也會(huì)對(duì)進(jìn)度造成影響。
預(yù)算其實(shí)就是一種資源,它的變更會(huì)影響某些資源的變更,從而對(duì)進(jìn)度造成影響。
四、低估了軟件開(kāi)發(fā)項(xiàng)目實(shí)現(xiàn)的條件
低估軟件開(kāi)發(fā)項(xiàng)目實(shí)現(xiàn)的條件表現(xiàn)在低估技術(shù)難度、低估協(xié)調(diào)復(fù)雜度、低估環(huán)境因素這樣幾個(gè)方面。
首先是低估技術(shù)難度。軟件開(kāi)發(fā)項(xiàng)目團(tuán)隊(duì)成員,有時(shí)甚至是企業(yè)的高級(jí)項(xiàng)目主管也經(jīng)常低估項(xiàng)目技術(shù)上的困難。低估技術(shù)難度實(shí)際上也就是高估人的能力,認(rèn)為或希望項(xiàng)目會(huì)按照已經(jīng)制定的樂(lè)觀項(xiàng)目計(jì)劃順利地實(shí)施,而實(shí)際則不然。軟件開(kāi)發(fā)項(xiàng)目的高技術(shù)特點(diǎn)本身說(shuō)明其實(shí)施中會(huì)有很多技術(shù)的難度,除了需要高水平的技術(shù)人員來(lái)實(shí)施外,還要考慮為解決某些性能問(wèn)題而進(jìn)行科研攻關(guān)和項(xiàng)目實(shí)驗(yàn);
其次,低估了協(xié)調(diào)復(fù)雜度,也低估了多個(gè)項(xiàng)目團(tuán)隊(duì)參加項(xiàng)目時(shí)工作協(xié)調(diào)上的困難。軟件開(kāi)發(fā)項(xiàng)目團(tuán)隊(duì)成員比較強(qiáng)調(diào)個(gè)人的智慧、強(qiáng)調(diào)個(gè)性,這給項(xiàng)目工作協(xié)調(diào)帶來(lái)更多的復(fù)雜度。當(dāng)一個(gè)大項(xiàng)目由很多子項(xiàng)目組成時(shí),不僅會(huì)增加相互之間充分溝通交流的困難,更會(huì)增加項(xiàng)目協(xié)調(diào)和進(jìn)度控制上的困難。
另外,企業(yè)高級(jí)項(xiàng)目主管和項(xiàng)目經(jīng)理也經(jīng)常低估環(huán)境因素,這些環(huán)境因素包括用戶環(huán)境、行業(yè)環(huán)境、組織環(huán)境、社會(huì)環(huán)境、經(jīng)濟(jì)環(huán)境。低估這些條件,既有主觀的原因,也會(huì)有客觀的原因。對(duì)項(xiàng)目環(huán)境的了解程度不夠,造成沒(méi)有做好充分的準(zhǔn)備。
五、項(xiàng)目狀態(tài)信息收集的情況
由于項(xiàng)目經(jīng)理的經(jīng)驗(yàn)或素質(zhì)原因,對(duì)項(xiàng)目狀態(tài)信息收集的的掌握不足,及時(shí)性準(zhǔn)確性完整性比較差。另外其它一些原因也會(huì)造成這種現(xiàn)象。某些項(xiàng)目團(tuán)隊(duì)成員報(bào)喜不報(bào)憂,不希望別人知道自己工作的不好的情況,例如軟件程序的編制,可能會(huì)先編制一些表面的東西,現(xiàn)有界面,看起來(lái)好像完成任務(wù)了,實(shí)際上只是一個(gè)“原型系統(tǒng)”或演示系統(tǒng)。給領(lǐng)導(dǎo)造成比較樂(lè)觀的感覺(jué)。
如果項(xiàng)目經(jīng)理或者管理團(tuán)隊(duì)沒(méi)有及時(shí)地檢查發(fā)現(xiàn)這種情況,將對(duì)項(xiàng)目的進(jìn)度造成嚴(yán)重的影響。當(dāng)然,如果出現(xiàn)這種需要時(shí)時(shí)刻刻都互相提防的氛圍,管理人員就應(yīng)該從管理的角度,從制度的角度檢討一下,進(jìn)行改進(jìn),讓大家實(shí)事求是地進(jìn)行溝通。溫伯格說(shuō):“無(wú)論你多么聰明,離開(kāi)了信息,對(duì)項(xiàng)目進(jìn)行成功的控制就是無(wú)源之水、無(wú)本之木。”
六、執(zhí)行計(jì)劃的嚴(yán)格程度
沒(méi)有把計(jì)劃作為項(xiàng)目過(guò)程行動(dòng)的基礎(chǔ),而是把計(jì)劃放在一邊,比較隨意去做。例如對(duì)于項(xiàng)目團(tuán)隊(duì)內(nèi)部溝通或外部溝通,在計(jì)劃中要說(shuō)明清楚人員、周期、方式、方法,不能遺漏,但在實(shí)際項(xiàng)目過(guò)程中,可能出現(xiàn)溝通沒(méi)有按時(shí)或沒(méi)有完整地達(dá)到所有項(xiàng)目干系人的情況。
若項(xiàng)目計(jì)劃本身有錯(cuò)誤,執(zhí)行錯(cuò)誤的計(jì)劃肯定會(huì)產(chǎn)生錯(cuò)誤。如,計(jì)劃制訂者在計(jì)劃系統(tǒng)框架設(shè)計(jì)考慮上的錯(cuò)誤、進(jìn)度安排上的失誤等。實(shí)際的項(xiàng)目實(shí)施中,除了這種錯(cuò)誤之外,還可能因?yàn)轫?xiàng)目執(zhí)行上的錯(cuò)誤,造成項(xiàng)目的麻煩。例如,項(xiàng)目的客戶及其他項(xiàng)目干系人沒(méi)有及時(shí)為項(xiàng)目中出現(xiàn)的情況采取必要的措施或者所采取的措施的不適合具體的情況、沒(méi)有效果或者有副作用等。另外,如果在項(xiàng)目中的某項(xiàng)工作(如某個(gè)子系統(tǒng)或模塊、組件)被轉(zhuǎn)包給第三方開(kāi)發(fā)后,不能進(jìn)行有效的管理,也會(huì)造成進(jìn)度上的延誤。
七、計(jì)劃變更調(diào)整的及時(shí)性
漸近明細(xì)是項(xiàng)目的特點(diǎn),特別是對(duì)于軟件開(kāi)發(fā)項(xiàng)目,并不是一個(gè)一成不變的過(guò)程。開(kāi)始時(shí)的項(xiàng)目計(jì)劃可以先制定得比較粗一些,隨著項(xiàng)目的進(jìn)展,特別是需求明確以后,項(xiàng)目的計(jì)劃就可以進(jìn)一步的明確,這時(shí)候應(yīng)該對(duì)項(xiàng)目計(jì)劃進(jìn)行調(diào)整修訂,通過(guò)變更手續(xù)取得項(xiàng)目干系人的共識(shí)。計(jì)劃應(yīng)該隨著項(xiàng)目的進(jìn)展而逐漸細(xì)化、調(diào)整、修正。沒(méi)有及時(shí)調(diào)整的計(jì)劃或者是隨意的不負(fù)責(zé)任的計(jì)劃的項(xiàng)目是難以控制的。在高技術(shù)行業(yè),日新月異是主要特點(diǎn),因此計(jì)劃的制定需要在一定條件的限制和假設(shè)之下采用漸近明細(xì)的方式,隨著項(xiàng)目的進(jìn)展進(jìn)行不斷細(xì)化、調(diào)整、修正、完善。
對(duì)于較為大型的軟件開(kāi)發(fā)項(xiàng)目的工作分解結(jié)構(gòu)可采用二次甚至多次 WBS 方法。即根據(jù)總體階段劃分的總體 WBS ,需求調(diào)研階段結(jié)束、概要設(shè)計(jì)完成后專門(mén)針對(duì)詳細(xì)設(shè)計(jì)或編碼階段的二次 WBS 。由于需求的功能點(diǎn)和設(shè)計(jì)的模塊或組件之間并不是一一對(duì)應(yīng)的關(guān)系,所以只有在概要設(shè)計(jì)完成以后才能準(zhǔn)確地得到詳細(xì)設(shè)計(jì)或編碼階段的二次 WBS ,根據(jù)代碼模塊或組件的合理劃分而得出的二次 WBS 才能在詳細(xì)設(shè)計(jì)、編碼階段乃至測(cè)試階段起到有效把握和控制進(jìn)度的作用。有些項(xiàng)目的需求或設(shè)計(jì)做得不夠詳細(xì),無(wú)法對(duì)工作任務(wù)的分解、均衡分配和進(jìn)度管理起參考作用,因此要隨著需求的細(xì)化和設(shè)計(jì)的明確,對(duì)項(xiàng)目的分工和進(jìn)度進(jìn)行及時(shí)的調(diào)整,使項(xiàng)目的計(jì)劃符合項(xiàng)目的變化,使項(xiàng)目的進(jìn)度符合項(xiàng)目的計(jì)劃。
八、未考慮不可預(yù)見(jiàn)事件發(fā)生造成的影響
假設(shè)、約束、風(fēng)險(xiǎn)等考慮“不周”造成項(xiàng)目進(jìn)度計(jì)劃中未考慮一些不可預(yù)見(jiàn)的事件發(fā)生。例如軟件開(kāi)發(fā)項(xiàng)目還會(huì)因?yàn)轫?xiàng)目資源特別是人力資源缺乏、人員生病、人員離職、項(xiàng)目團(tuán)隊(duì)成員臨時(shí)有其他更緊急的任務(wù)造成人員流動(dòng)等不可預(yù)見(jiàn)的事件對(duì)項(xiàng)目的進(jìn)度控制造成影響(即項(xiàng)目按時(shí)完成是基于如下假設(shè):人力資源不會(huì)缺乏、人員不會(huì)生病、人員不會(huì)流動(dòng))。企業(yè)環(huán)境、社會(huì)環(huán)境、天災(zāi)人禍等事件對(duì)項(xiàng)目的進(jìn)度控制造成影響。對(duì)項(xiàng)目的假設(shè)條件、約束條件、風(fēng)險(xiǎn)及其對(duì)策等對(duì)于進(jìn)度的影響在項(xiàng)目計(jì)劃要進(jìn)行充分的考慮,在項(xiàng)目進(jìn)展過(guò)程中也要不斷地重新考慮有沒(méi)有新的情況,新的假設(shè)條件、約束條件、潛在風(fēng)險(xiǎn)會(huì)影響項(xiàng)目的進(jìn)度。假設(shè)是通過(guò)努力可以直接解決的問(wèn)題,而這些問(wèn)題是一定要解決才能保證項(xiàng)目按計(jì)劃完成;約束一般是難以解決的問(wèn)題,但可以通過(guò)其他途徑回避或彌補(bǔ)、取舍,如犧牲進(jìn)度、質(zhì)量等等;假設(shè)與約束是針對(duì)比較明確會(huì)出現(xiàn)的情況,如果問(wèn)題的出現(xiàn)具有不確定性,則應(yīng)該在風(fēng)險(xiǎn)分析中列出,分析其出現(xiàn)的可能性、造成的影響、采取的措施。實(shí)際上像沒(méi)有考慮人的疾病、人員流動(dòng)這些情況本身也不是什么問(wèn)題,因?yàn)槿魏稳硕疾豢赡馨阉幸酝獾那闆r都考慮完整,實(shí)際上也沒(méi)有必要。但有些諸如下班或節(jié)假日的加班時(shí)間都被安排用于項(xiàng)目工作的情況就會(huì)造成更多的項(xiàng)目不確定性。在可能的情況下當(dāng)然要對(duì)所有可能情況都做到有備無(wú)患,但是有的時(shí)候也要冒一定的風(fēng)險(xiǎn),同時(shí)對(duì)于風(fēng)險(xiǎn)的防范也需要考慮如果防范的成本大于風(fēng)險(xiǎn)本身造成的損失和影響,則這種防范是沒(méi)有必要的。
九、程序員方面的因素對(duì)進(jìn)度的影響
程序員方面有兩種常見(jiàn)的心態(tài)影響了進(jìn)度的控制:一是技術(shù)完美主義、二是自尊心。
技術(shù)完美主義的常見(jiàn)現(xiàn)象是,有些程序員由于進(jìn)度壓力、經(jīng)驗(yàn)等方面的原因,會(huì)匆忙先做編碼等具體的事情,等做到一定程度后會(huì)想到一些更好的構(gòu)思,或者看到一些更好的技術(shù)的介紹,或者是覺(jué)得外部構(gòu)架可以更加美化,或者是覺(jué)得內(nèi)部構(gòu)架可以更加優(yōu)化,這樣他們會(huì)私下或公開(kāi)對(duì)軟件進(jìn)行調(diào)整,去嘗試一下新的技術(shù)。而是否使用這些新的技術(shù)對(duì)完成項(xiàng)目本身的目標(biāo)并沒(méi)有影響,相反可能帶來(lái)不確定的隱患。這種做法不是以用戶的需求為本、或以項(xiàng)目團(tuán)隊(duì)的總體目標(biāo)為本,可能對(duì)軟件開(kāi)發(fā)進(jìn)度造成較大的影響。
自尊心的常見(jiàn)想象是,有些程序員在遇到一些自己無(wú)法解決的問(wèn)題時(shí),傾向于靠自己摸索,而不愿去問(wèn)周?chē)切┙?jīng)驗(yàn)更為豐富的人。有些人也許會(huì)通過(guò)聊天室等方式匿名地向別人求教。如果運(yùn)氣好會(huì)很快地解決,否則要花很多實(shí)踐摸索。而如果向周?chē)娜饲蠼蹋赡苊鲙滋斓膯?wèn)題別人早就解決了。
十、未考慮軟件開(kāi)發(fā)過(guò)程的循環(huán)、迭代特性
對(duì)軟件開(kāi)發(fā)的各個(gè)過(guò)程分類過(guò)于精細(xì),制定進(jìn)度計(jì)劃時(shí)各項(xiàng)工作過(guò)于緊湊、沒(méi)有彈性,造成的后果是,定期提交項(xiàng)目進(jìn)度階段報(bào)告的制度只有在表面上起到效果,按照計(jì)劃的時(shí)間表提交階段成果也只是在表面上起到效果。因?yàn)?ldquo;上有政策、下有對(duì)策”,強(qiáng)行的規(guī)定會(huì)使人產(chǎn)生一些錯(cuò)誤的認(rèn)識(shí):如在項(xiàng)目計(jì)劃中“規(guī)定”某個(gè)時(shí)間只能做某某類別的事情,那么嚴(yán)格執(zhí)行的后果就是編碼階段就不能修改文檔;另外錯(cuò)誤的“里程碑”概念可能會(huì)使大家輕易地相信上一個(gè)階段的工作成果都是“通過(guò)評(píng)審”最終定稿了,而實(shí)際上可能只是因?yàn)闀r(shí)間到了該提交的人提交、該評(píng)審的人評(píng)審了。
如果上下階段是不同的人就根本不會(huì)去檢查其中是否還有錯(cuò)誤;如果上下階段是同一個(gè)人,就可能非正式地修改上一階段的錯(cuò)誤,但占用的時(shí)間和精力卻是下一階段的,并且這樣的修改時(shí)沒(méi)有記錄的。這樣關(guān)于階段進(jìn)度控制的措施實(shí)際上只是在表面上有效。最為普遍的情況是,用戶在合同中限定了提交軟件系統(tǒng)的時(shí)間,實(shí)際上這個(gè)時(shí)間對(duì)完成項(xiàng)目任務(wù)來(lái)說(shuō)是遠(yuǎn)遠(yuǎn)不夠的,但計(jì)劃只能按照合同來(lái)進(jìn)行,所以要不用戶讓步,要不只能按照時(shí)間的約定提交實(shí)際上還未完成的軟件系統(tǒng),完成系統(tǒng)的安裝,但這時(shí)候的“完成階段任務(wù)”只是一個(gè)表面現(xiàn)象,系統(tǒng)雖然安裝了,但可能是沒(méi)有經(jīng)過(guò)嚴(yán)格徹底測(cè)試的,也可能是只完成了部分的功能,省略了某些功能,有些是整塊功能省略,有的是省略了某些功能的某個(gè)過(guò)程,如數(shù)據(jù)錄入里面隱含的數(shù)據(jù)錄入前缺省值設(shè)置、數(shù)據(jù)錄入檢驗(yàn)等功能,而是實(shí)現(xiàn)了比較粗糙的功能。這樣,系統(tǒng)交付并不意味著項(xiàng)目的完成,而在項(xiàng)目交付之后還要花更多的時(shí)間。
十一、其他因素
以上這些因素是影響項(xiàng)目進(jìn)度的幾個(gè)主要方面,除此之外還有很多其他的影響因素。其實(shí)最主要的因素還是人的因素,這里的人包括所有與項(xiàng)目相關(guān)的人。項(xiàng)目經(jīng)理的素質(zhì)、管理者的水平、用戶的因素、項(xiàng)目成員的因素等等,都會(huì)對(duì)項(xiàng)目進(jìn)度造成影響,這是因?yàn)橛捎谲浖_(kāi)發(fā)的特性。因?yàn)槠邢逕o(wú)法一一列舉,只能在此分析一些常見(jiàn)的因素。
不可否認(rèn),軟件開(kāi)發(fā)項(xiàng)目進(jìn)度可控性還是帶有一定運(yùn)氣成分的。特別是需要用戶配合的那些軟件開(kāi)發(fā)項(xiàng)目,其可控性與用戶的成熟度、軟件應(yīng)用領(lǐng)域的成熟程度和行業(yè)標(biāo)準(zhǔn)規(guī)范的完備程度有很大關(guān)系。關(guān)于可控性方面會(huì)涉及到一些與客戶打交道經(jīng)驗(yàn),雖然我們說(shuō),顧客是上帝、以顧客為中心,但并不是說(shuō)我們要把主導(dǎo)權(quán)交給他們,而關(guān)鍵是我們?nèi)绾稳ブ鲗?dǎo)、引導(dǎo)、把握。因此,項(xiàng)目控制的好壞與相關(guān)人員人際關(guān)系方面的經(jīng)驗(yàn)也有關(guān)系。
盡管存在很多不可控的因素,我們的任務(wù)是首先分清哪些是可以控制的,哪些是我們不能控制的。項(xiàng)目經(jīng)理一是要盡量擴(kuò)大可控的領(lǐng)域,減少不可控的領(lǐng)域,二是不要在“不可控”上花太多時(shí)間,而是多花一些時(shí)間把可控的工作控制好,做好防范措施,減輕不可控因素對(duì)項(xiàng)目進(jìn)度的影響。
項(xiàng)目進(jìn)入實(shí)施階段后,項(xiàng)目經(jīng)理的幾乎所有的活動(dòng)都是圍繞進(jìn)度展開(kāi)的。進(jìn)度控制的目標(biāo)與成本控制的目標(biāo)和質(zhì)量控制的目標(biāo)是對(duì)立統(tǒng)一的關(guān)系。項(xiàng)目的進(jìn)度、質(zhì)量和成本構(gòu)成一個(gè)相互制約的三角關(guān)系,需要項(xiàng)目經(jīng)理去平衡。