為了使軟件開發(fā)有效地控制進(jìn)度,有必要分析影響進(jìn)度的各種因素, 或及時采取必要措施,以盡量減少計劃進(jìn)度與實際進(jìn)度之間的偏差,實現(xiàn)對項目的積極控制。 影響軟件開發(fā)項目進(jìn)度的因素很多,例如人為因素,技術(shù)因素,財務(wù)因素,環(huán)境因素等。在軟件開發(fā)項目的實施中,人為因素是最重要的因素,而技術(shù)因素是 歸根結(jié)底也是人為因素。 軟件開發(fā)項目進(jìn)度控制的常見問題主要體現(xiàn)在對某些因素的考慮上。 常見問題包括以下情況:
關(guān)于軟件開發(fā)問題的討論
一、80-20原則和過于樂觀的進(jìn)度控制
80-20原則在軟件開發(fā)項目進(jìn)度控制方面,項目的80% 工作可以在20%的時間內(nèi)完成,而其余20%的項目工作需要80%的時間。 這80%的項目工作不一定是在項目的早期階段,而是可以分布在項目的所有階段,但是其余20%左右的項目工作大部分是在后期。 因此,當(dāng)軟件開發(fā)進(jìn)入編碼階段時,它將給人一種“快速進(jìn)步”的感覺,這使項目經(jīng)理,項目團(tuán)隊成員,用戶和高級領(lǐng)導(dǎo)者產(chǎn)生了過于樂觀的估計。 一些領(lǐng)導(dǎo)者看到該軟件已交付給用戶,他們最終在地面上“達(dá)成了交易”,與此同時,他們可能撤回了一些不必要的人力資源。 但是在許多情況下,這是處理用戶不合理的交付期限的最后手段。 這樣的結(jié)果會延遲以后的工作,同時,如果該軟件尚未成熟,則會對用戶造成不良影響。
二、范圍和質(zhì)量因素對進(jìn)度的影響
軟件開發(fā)項目的變化比其他任何建設(shè)項目都要頻繁,這可能是由于軟件 該程序是一種“隱形”和“易于修改”的東西。 用戶根據(jù)需要進(jìn)行更改。 這導(dǎo)致需求擴(kuò)散。 有時項目經(jīng)理不知道如何拒絕,加上說“我可以”的心理因素,通常會同意修改。 這樣,將小零件集成到許多零件中逐漸影響了項目的進(jìn)度。
如果表面上已達(dá)到目標(biāo),但檢查后質(zhì)量仍未達(dá)到要求,則必須對其進(jìn)行重新加工以增加人力資源投資并及時增加投資。 實際上,它正在延遲進(jìn)度。 無論是水平還是垂直查看,某些任務(wù)的質(zhì)量都會影響整個項目的進(jìn)度,而正面的某些任務(wù)的質(zhì)量則會影響背面的某些任務(wù)的質(zhì)量。
三、資源和預(yù)算變化對進(jìn)度的影響
最重要的資源是人力資源。 有時,某些區(qū)域的人員不足,或者在多個項目的情況下,某些方面的人員被其他項目吸引,或者參與多個項目,或者不能在其他項目中參與該項目。 另一個非常重要的資源是信息資源,例如某些國家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn)。 用戶可能無法提供它們,但是需要收集或購買它們。 如果不能及時獲得它們,將會影響需求分析,設(shè)計或編碼的工作。 。 其他資源,例如開發(fā)設(shè)備或軟件未交付,也會影響進(jìn)度。
預(yù)算實際上是一種資源,它的變化會影響某些資源的變化,從而影響進(jìn)度。
四、低估了軟件開發(fā)項目的實現(xiàn)條件 < 對技術(shù)開發(fā)項目的實現(xiàn)條件的低估表現(xiàn)為對技術(shù)難度的低估,對協(xié)調(diào)復(fù)雜性的低估以及對環(huán)境因素的低估。
首先是低估技術(shù)難度。 軟件開發(fā)項目團(tuán)隊成員,有時甚至是企業(yè)的高級項目主管,常常低估了項目的技術(shù)難度。 低估技術(shù)難度實際上是高估了人們的能力,認(rèn)為或希望將根據(jù)已制定的樂觀項目計劃順利實施該項目,但實際上并非如此。 軟件開發(fā)項目本身的高科技特征表明,在其實施中將存在許多技術(shù)難題。 除了需要高級技術(shù)人員實施外,還必須考慮科學(xué)研究和項目實驗來解決一些性能問題;
其次,它低估了協(xié)調(diào)的復(fù)雜性和協(xié)調(diào)的難度。 多個項目團(tuán)隊參與項目時進(jìn)行協(xié)調(diào)。 軟件開發(fā)項目團(tuán)隊成員強(qiáng)調(diào)個人智慧和個性,這給項目工作協(xié)調(diào)帶來了更多復(fù)雜性。 當(dāng)一個大型項目由許多子項目組成時,不僅會增加彼此之間充分溝通的難度,而且還會增加項目協(xié)調(diào)和進(jìn)度控制的難度。
另外,公司高級項目經(jīng)理和項目經(jīng)理經(jīng)常低估環(huán)境因素,包括用戶環(huán)境,行業(yè)環(huán)境,組織環(huán)境,社會環(huán)境和經(jīng)濟(jì)環(huán)境。 低估這些條件有主觀和客觀原因。 對項目環(huán)境的了解不足,導(dǎo)致準(zhǔn)備不足。
五、項目狀態(tài)信息收集情況
由于項目經(jīng)理的經(jīng)驗或素質(zhì),項目狀態(tài)信息的收集不夠及時。 準(zhǔn)確性和完整性相對較差。 其他原因也可能導(dǎo)致此現(xiàn)象。 一些項目團(tuán)隊員工報告好消息,但不報告擔(dān)憂。 他們不希望其他人知道他們的工作情況糟糕。 例如,軟件程序的編譯可以首先編譯一些膚淺的東西。
如果項目經(jīng)理或管理團(tuán)隊未能做到這一點,那么現(xiàn)有的界面似乎已經(jīng)完成了任務(wù),但實際上它只是一個“原型”系統(tǒng)或演示系統(tǒng)。 及時檢查并發(fā)現(xiàn)這種情況,將對項目的進(jìn)展產(chǎn)生嚴(yán)重影響,當(dāng)然,如果需要始終保持彼此警惕的氣氛,管理人員應(yīng)檢查并做出改進(jìn)。 管理角度和系統(tǒng)角度,使每個人都可以進(jìn)行現(xiàn)實的溝通。溫伯格說:“無論您有多聰明,如果沒有信息,對項目的成功控制就是沒有源頭的水和沒有根的樹?!?/p>
信息收集和安排
六、實施計劃的嚴(yán)格性
而不是將計劃作為項目流程行動的基礎(chǔ), 將計劃放在一邊,然后更隨意地執(zhí)行。例如,對于內(nèi)部 或項目團(tuán)隊的外部溝通,人員,周期,方法和方法應(yīng)在計劃中明確說明,并且不應(yīng)省略。 但是,在實際的項目過程中,可能會出現(xiàn)溝通不及時或無法完全到達(dá)所有項目涉眾的情況。 。
如果項目計劃本身有錯誤,那么錯誤計劃的實施肯定會產(chǎn)生錯誤。 例如,計劃者在計劃系統(tǒng)框架設(shè)計中的錯誤以及進(jìn)度表中的錯誤。 在實際的項目實施中,除此類錯誤外,還可能由于項目實施中的錯誤而引起項目麻煩。 例如,項目的客戶和其他項目干系人沒有及時針對項目情況采取必要的措施,或者所采取的措施不適合特定情況,沒有影響或產(chǎn)生了副作用。 此外,如果將項目中的某些工作(例如某個子系統(tǒng)或模塊,組件)分包給第三方進(jìn)行開發(fā),則無法對其進(jìn)行有效管理,這也將導(dǎo)致進(jìn)度延遲。
七、計劃變更調(diào)整的及時性
漸近細(xì)節(jié)是項目的特征,特別是對于軟件開發(fā)項目,不是一個靜態(tài)過程。 最初的項目計劃可以更粗略地制定。 隨著項目的進(jìn)展,尤其是在明確要求之后,可以進(jìn)一步澄清項目計劃。 這時,應(yīng)調(diào)整和修訂項目計劃,并應(yīng)通過變更程序獲得項目關(guān)系。 人類的共識。 隨著項目的進(jìn)行,該計劃應(yīng)逐步完善,調(diào)整和修訂。 沒有及時調(diào)整或隨機(jī)且不負(fù)責(zé)任的計劃的項目很難控制。 在高科技產(chǎn)業(yè)中,快速變化是主要特征。 因此,計劃的制定需要在某些條件和假設(shè)下采用漸進(jìn)細(xì)節(jié)方法,并隨著項目的進(jìn)行不斷完善,調(diào)整,修改和改進(jìn)。 對于較大的軟件開發(fā)項目的工作分解結(jié)構(gòu),可以使用兩種甚至多種WBS方法。 即,整體WBS根據(jù)整體階段劃分,并且次WBS專門用于需求調(diào)查階段和輪廓設(shè)計完成之后的詳細(xì)設(shè)計或編碼階段。 由于所需的功能點與設(shè)計的模塊或組件之間沒有一一對應(yīng)的關(guān)系,因此詳細(xì)設(shè)計或編碼階段的輔助WBS僅在輪廓設(shè)計完成后才能準(zhǔn)確獲得,而代碼模塊或組件 組件合理劃分獲得的第二個WBS可以有效地掌握和控制詳細(xì)設(shè)計,編碼階段甚至測試階段的進(jìn)度。 一些項目的要求或設(shè)計不夠詳細(xì),無法為工作任務(wù)的分解,平衡分配和進(jìn)度管理提供參考。 因此,隨著需求的細(xì)化和設(shè)計的清晰,應(yīng)及時調(diào)整項目的分工和進(jìn)度,根據(jù)項目的變化制定項目計劃,使項目進(jìn)度與項目一致 計劃。
八、不可預(yù)見事件的影響將不予考慮
假設(shè),約束,風(fēng)險等。 被認(rèn)為是“不完整的”,導(dǎo)致了一些不可預(yù)見的事件,這些事件在項目進(jìn)度中并未考慮。 例如,由于不可預(yù)見的事件(例如,項目資源(尤其是人力資源,患病人員以及 辭職后,項目團(tuán)隊成員暫時還有其他更緊急的任務(wù)和人員輪換。 完善基于以下假設(shè):勞動力不會短缺,員工不會生病,員工不會搬家。 公司環(huán)境,社會環(huán)境,自然災(zāi)害和人為影響等事件對項目進(jìn)度的控制。 在項目計劃中應(yīng)充分考慮項目假設(shè),約束,風(fēng)險和對策對進(jìn)度的影響,并在項目進(jìn)度期間應(yīng)定期進(jìn)行審查。 再次查看是否存在新的條件,新的假設(shè)和約束。 潛在的條件和風(fēng)險將影響項目的進(jìn)度。 假定可以通過艱苦的工作直接解決問題,并且必須解決這些問題以確保按計劃完成項目; 約束通常很難處理,但是可以通過其他方式來避免或補(bǔ)償,例如犧牲進(jìn)度,質(zhì)量等。 ; 情況的假設(shè)和約束相對清晰。 如果問題不確定,則應(yīng)在風(fēng)險分析中列出該問題,以分析可能性,影響和實施措施。 實際上,疾病本身和工作人員的流動性不是問題,因為沒有人可以充分考慮所有其他情況,而這并不是必須的。 但是,某些情況(例如加班或休息日)分配給項目工作,這會使項目更加不確定。 當(dāng)然,在可能的情況下,我們必須為每種可能的情況做好準(zhǔn)備,但是,如果預(yù)防成本更高,有時我們還必須承擔(dān)某些風(fēng)險,并考慮對沖。 損失和影響均由風(fēng)險本身引起。此預(yù)防措施是不必要的。
九、程序員因素對進(jìn)度的影響
有兩種影響進(jìn)度控制的一般開發(fā)人員心態(tài):一種是技術(shù)完美主義。 二是自尊心。
技術(shù)完美主義的一個普遍現(xiàn)象是,一些程序員由于進(jìn)度,經(jīng)驗和其他原因的壓力而急于做這些事情。 例如先編寫代碼,然后在達(dá)到一定水平后再想一些更好的主意,或者查看一些更好的技術(shù)的介紹,或者認(rèn)為外部結(jié)構(gòu)可能是 更加美化,或者可以更優(yōu)化內(nèi)部結(jié)構(gòu),以便他們可以單獨(dú)調(diào)整或公開軟件以嘗試新技術(shù)。 相反,使用這些新技術(shù)是否會對完成項目的目標(biāo)產(chǎn)生任何影響,相反,它可能會帶來潛在的不確定性危險。 這種方法不是基于用戶的需求或項目團(tuán)隊的總體目標(biāo),而是會對軟件開發(fā)的進(jìn)度產(chǎn)生更大的影響。
自尊的一般可視化是,一些程序員在遇到一些自己無法解決的問題時傾向于發(fā)現(xiàn)自己,而不是問周圍有經(jīng)驗的人。 。 有些人可能會通過聊天室等向其他人要求匿名建議。 如果幸運(yùn)的話,它將很快得到解決,否則需要大量的實踐和探索。 并且,如果您與周圍的人進(jìn)行協(xié)商,那么幾天后您可能已經(jīng)解決了問題。
十、不考慮軟件開發(fā)的循環(huán)和重復(fù)特性
播放過程的分類 不同的軟件開發(fā)太好了,調(diào)度時任務(wù)也不同。緊湊而僵化的結(jié)果是,系統(tǒng)頻繁提交項目進(jìn)度報告僅在表面上起作用, 并且按照計劃的時間表提交結(jié)果僅在表面上起作用。 因為存在“高層策略,下層策略”,所以強(qiáng)制性條款使一些人產(chǎn)生誤解:如果項目計劃“聲明”,則只能執(zhí)行其中的一部分。 嚴(yán)格實施的結(jié)果是加密。 文本在該階段沒有被修改,此外,“里程碑”的錯誤概念會使人們輕易地錯誤地認(rèn)為前一階段的工作成果都是“審查”并完成的,但現(xiàn)實可以做到。 只是因為申請期已過,審閱者評論。 如果上下針跡是不同的人,則不會進(jìn)行錯誤檢查;如果上下針跡是相同的人,則可以非正式地更正先前的線錯誤,但是要按時間進(jìn)行 能源消耗是下一階段。 ,并且沒有這種修改的記錄。 這樣的階段進(jìn)度控制措施實際上只是表面的。 最常見的情況是用戶限制了在合同中提交軟件系統(tǒng)的時間,實際上,這個時間遠(yuǎn)遠(yuǎn)不足以完成項目任務(wù),而只能執(zhí)行合同計劃。 銅。 您不僅可以按照時間協(xié)議發(fā)送實際未完成的軟件系統(tǒng),完成系統(tǒng)安裝,而且此時的“任務(wù)完成階段”只是一個表面現(xiàn)象, 系統(tǒng)已經(jīng)安裝,但可能尚未經(jīng)過嚴(yán)格和徹底的測試。 也有可能僅完成部分功能,某些功能被省略,某些功能從整個功能中被忽略,某些功能的某些過程被忽略,例如 在將隱式數(shù)據(jù)輸入數(shù)據(jù)條目之前設(shè)置默認(rèn)值和數(shù)據(jù)。諸如輸入檢查之類的功能已經(jīng)實現(xiàn)了相當(dāng)原始的功能。 這樣,分發(fā)系統(tǒng)并不意味著完成項目,并且在交付項目后將花費(fèi)更長的時間。
十一、其他因素
以上因素是影響項目進(jìn)度的主要方面,此外還有許多其他因素。 實際上,最重要的因素仍然是人為因素,這里的人員包括項目中涉及的所有人員。 由于軟件開發(fā)的性質(zhì),項目經(jīng)理的素質(zhì),經(jīng)理的資格,用戶因素,項目成員因素等都會影響項目進(jìn)度。 由于篇幅所限,不可能一一列出,這里只能分析幾個常見因素。
不可否認(rèn),控制軟件開發(fā)項目進(jìn)度的能力具有一定的運(yùn)氣。 特別是對于需要用戶合作的軟件開發(fā)項目,其控制與用戶的成熟度,軟件應(yīng)用領(lǐng)域的成熟度以及用戶的成熟度息息相關(guān)。 行業(yè)標(biāo)準(zhǔn)的完整性。 在控制方面,將有一些與客戶打交道的經(jīng)驗。 雖然我們說客戶是上帝,并且以客戶為中心,但我們并不一定要賦予他們權(quán)力。 重要的是我們?nèi)绾晤I(lǐng)導(dǎo),指導(dǎo)和理解。因此,項目控制的質(zhì)量還與參與人際關(guān)系的人員的經(jīng)驗有關(guān)。
盡管存在許多不可控制的要素,但我們有責(zé)任首先區(qū)分可以控制的事物和不能控制的事物。 第一個項目經(jīng)理是盡可能擴(kuò)大可控范圍,減少不可控領(lǐng)域,第二個是不要在“不可控”上花費(fèi)太多時間, 但要花更多時間控制可控任務(wù)并采取預(yù)防措施。 ,以減少不可控制的因素對項目進(jìn)度的影響。
一旦項目進(jìn)入實施階段,幾乎每個項目經(jīng)理的活動都會圍繞進(jìn)度進(jìn)行。 進(jìn)度控制,成本控制和質(zhì)量控制目標(biāo)是相反且一致的。 項目進(jìn)度,質(zhì)量和成本形成相互限制的三角關(guān)系,這需要項目經(jīng)理進(jìn)行平衡。