軟件項(xiàng)目最常見的失敗原因分析
發(fā)布時間:2015/9/11 9:58:00
在啟動一個新的軟件項(xiàng)目時,尋求一名在軟件開發(fā)領(lǐng)域具有豐富經(jīng)驗(yàn)并且可以在項(xiàng)目計(jì)劃的早期階段提供協(xié)助的主題專家的幫助。這一策略已經(jīng)被證實(shí)可以極大提升項(xiàng)目的成果,然而在項(xiàng)目結(jié)束時你還是只能眼睜睜的看著失敗發(fā)生。為什么會這樣呢?
項(xiàng)目失敗可分為成本超支、交付延期、質(zhì)量不合格和/或產(chǎn)品未被應(yīng)用等一種或幾種情況。無論是否曾經(jīng)參與到項(xiàng)目計(jì)劃階段,通常情況下,軟件開發(fā)人員都會首當(dāng)其沖承擔(dān)失敗的責(zé)任;無論怎樣,他們是真正構(gòu)建這個應(yīng)用的人。然而,對項(xiàng)目更進(jìn)一步的審查表明并非所有失敗的項(xiàng)目都應(yīng)歸咎于開發(fā)人員能力不足。
當(dāng)對這些失敗的項(xiàng)目進(jìn)行評估時,其中一些項(xiàng)目與行業(yè)趨勢相比完成的“還算不錯”,然而卻被其所在組織認(rèn)定為失敗項(xiàng)目。其原因在于絕大多數(shù)的問題都與項(xiàng)目之初有缺陷的評估或錯誤的商務(wù)決策聯(lián)系緊密。為了避免這種情況發(fā)生,整個組織首先必須要使用標(biāo)準(zhǔn)的評估術(shù)語集合。我們經(jīng)常會發(fā)現(xiàn)個人和組織大量地互換使用關(guān)鍵術(shù)語,而實(shí)際上他們各自都有獨(dú)特的含義。
目標(biāo) - 我們想要完成或達(dá)成的目標(biāo) 約束 - 在我們所能完成的工作上的一些內(nèi)部或外部的限制 估算 - 在范圍、成本、日程、人員和可能性確定的情況下,對我們所能完成的工作的技術(shù)性計(jì)算。 承諾 – 通過選擇一個評估場景并分配合適的資源,在一系列的限制條件下達(dá)成目標(biāo)的商務(wù)決策。 計(jì)劃 – 一系列項(xiàng)目任務(wù)和活動的集合,讓我們可以在確定的范圍、預(yù)算、日程以及人員的情況下,有一定的概率可以履行某一承諾。
這些概念的清晰定義可以確保項(xiàng)目擁有一個良好的開端——實(shí)際的目標(biāo)和對項(xiàng)目所受限制的理解。若非如此,下面這些因素很有可能導(dǎo)致項(xiàng)目在一開始就踏上死亡的征程。
1. 在沒有實(shí)質(zhì)的數(shù)據(jù)和分析的情況下,就接受一個強(qiáng)制的日程安排或完成日期/里程碑日期。
組織中的某個人公開推測項(xiàng)目將在某一特定日期完成,這樣在無意中整個團(tuán)隊(duì)都會致力于這一期限。也許你的預(yù)算周期顯示分配給這一項(xiàng)目的資金必須花費(fèi)到今年年底或者下一個版本不會得到資金支持。也許項(xiàng)目的利益相干人希望項(xiàng)目能在圣誕節(jié)前完成,知道項(xiàng)目已經(jīng)結(jié)束他/她就可以安靜地享受假期。或者干脆就是因?yàn)槔嫦喔扇颂貏e喜歡整數(shù),希望項(xiàng)目能夠在該月一號發(fā)布。為什么一個開發(fā)團(tuán)隊(duì)會被設(shè)定一個主觀的項(xiàng)目完成日期的原因五花八門。過于狂熱的計(jì)劃經(jīng)常導(dǎo)致項(xiàng)目人員配備過度的不幸現(xiàn)實(shí)是為什么軟件項(xiàng)目失敗的另一原因。
2. 添加過多的人員以實(shí)現(xiàn)不切實(shí)際的日程壓縮。
項(xiàng)目經(jīng)理如何處理過度樂觀的項(xiàng)目計(jì)劃?一個常見的反應(yīng)就是增加項(xiàng)目組成員,增加的成員經(jīng)常會比完成項(xiàng)目所需的成員更多。這樣不僅會大幅增加項(xiàng)目的成本,還會降低項(xiàng)目質(zhì)量。讓更多的人參與到項(xiàng)目中會增加錯誤傳達(dá)的可能性,也會讓不同部分的代碼整合更具挑戰(zhàn)。此外,F(xiàn)rederick Brooks (1975) 的主張“在延期項(xiàng)目中增加人手只會讓項(xiàng)目更加滯后”是有一些道理的。這些人員通常是從其他項(xiàng)目中調(diào)派而來。這會讓其他項(xiàng)目的項(xiàng)目計(jì)劃更加滯后并且還要求新的成員能夠趕上資深成員,這樣整體來說生產(chǎn)力是下降的。
3. 未能考慮和調(diào)整需求的增長或變化并據(jù)此對計(jì)劃和預(yù)算預(yù)期進(jìn)行必要的調(diào)整。
“如果……不是更好么?”這種話有時候是最可怕的,特別是在項(xiàng)目組建的過程中道聽途說而來時。當(dāng)然,確實(shí)需要時間和場所進(jìn)行頭腦風(fēng)暴,這些活動應(yīng)該在第一階段和第二階段開展。實(shí)際上,這兩個階段的目的就是要決定一個項(xiàng)目是否可行,以及應(yīng)用應(yīng)該具備哪些功能特性。你可以如此考慮這個問題,第二階段幫助你確定所要構(gòu)建的內(nèi)容,第三階段則開始構(gòu)建在第二階段所確定的內(nèi)容。在這兩個高級階段之間存在一定的重疊,當(dāng)處于階段三時,對于一個產(chǎn)品發(fā)布版本來說,應(yīng)該已經(jīng)有了一個清晰的必要功能列表。如果在沒有增加開發(fā)時間和預(yù)算的前提下就增加功能,需求的增長就會成為問題。實(shí)際上,這是在要求在更短的時間內(nèi)完成更多的工作,這種手段早已被證明無效。取決于其特性和時點(diǎn),已有需求的變更也有可能成為問題。只要變更發(fā)生在某一特定迭代的構(gòu)建之前,使用敏捷開發(fā)方法的項(xiàng)目就可以處理這些明細(xì)需求的變更。不過,對于任何會導(dǎo)致代碼返工的軟件架構(gòu)方面的需求變更幾乎必然會對項(xiàng)目的計(jì)劃和預(yù)算產(chǎn)生影響。
4. 忽略事實(shí)和統(tǒng)計(jì)數(shù)據(jù)的情緒化或”全憑直覺的“利益干系人談判。
或早或晚,我們都會與某個我們參與的具體項(xiàng)目緊密聯(lián)系并在該項(xiàng)目的產(chǎn)出之上投入情感。對于許多人來說,該項(xiàng)目可能關(guān)乎自己的聲望;項(xiàng)目太大經(jīng)不起失敗,而這經(jīng)常會讓我們被我們的情感所控制。當(dāng)軟件項(xiàng)目的成功或失敗懸而未決導(dǎo)致個人的事業(yè)處于危險(xiǎn)之中時,任何相關(guān)的業(yè)務(wù)決策很有可能都會受到影響。壓力可以讓人思維混亂,特別是在賭注巨大之時。為了給客戶留下深刻的印象,某個利益相干人可能會要求一個12個月的項(xiàng)目計(jì)劃安排,而完全不顧之前類似規(guī)模的項(xiàng)目報(bào)告均顯示了15個月的生命周期。利益相干人很可能會忽略項(xiàng)目成員的建議,并聲稱他“感覺”項(xiàng)目團(tuán)隊(duì)可以渡過難關(guān)。在這種情況下,憑直覺可能是相當(dāng)不利的并且有可能直接導(dǎo)致項(xiàng)目的失敗。
5. 錯誤,但普遍認(rèn)為眾所周知的銀彈可以獨(dú)自解決項(xiàng)目吞吐量或過程問題。
當(dāng)其他嘗試都已失敗時,一個常見的方法就是改變策略。這時比較常見的想法就是“我們現(xiàn)在的所作所為一定是錯誤的”以及“我們的競爭對手在做些什么?”也就在這時,“IT銀彈”的思慮可能就會開始在辦公室中蔓延。例如,某人可能會建議組織,需要采用最新的流行開發(fā)方法。雖然這可能會將組織引領(lǐng)至一個偉大的方向,但像這樣的決策決不應(yīng)該草草定論。無論你的組織決定采用哪種開發(fā)方法,這也只是實(shí)現(xiàn)層面的變化。僅僅是開發(fā)方法的轉(zhuǎn)變并不足以完成開發(fā)操作的轉(zhuǎn)換。 無論做出什么決策,為了能夠成功實(shí)施,就需要各方均能接受并支持這一決策,并且需要為項(xiàng)目成員提供培訓(xùn),而且所有人都需要為同樣的標(biāo)準(zhǔn)負(fù)責(zé)。否則,每次啟動新的項(xiàng)目時,你的開發(fā)策略就基本相當(dāng)于等待天空的星辰排列整齊,期盼奇跡發(fā)生一樣。如果沒有經(jīng)過深思熟慮,實(shí)現(xiàn)這種策略不僅存在令人難以置信的風(fēng)險(xiǎn),同時也會減少團(tuán)隊(duì)成員在項(xiàng)目中期提供反饋的機(jī)會。
簡而言之,造成軟件項(xiàng)目失敗的原因林林總總;c(diǎn)時間認(rèn)真反思一下上述原因是否曾經(jīng)也是導(dǎo)致你的組織中項(xiàng)目失敗的元兇。那么現(xiàn)在是否有了應(yīng)對它的措施?作為一個執(zhí)行領(lǐng)導(dǎo)人,可以做的工作有很多,不過對開發(fā)操作提供支持仍需很大的勇氣。他們需要在合理的預(yù)期內(nèi)運(yùn)行。顯然,他們?nèi)孕枰獙ψ约旱男袨樨?fù)責(zé),因此就需要?dú)v史績效數(shù)據(jù)作為證明他們能力的證據(jù)。你需要從多個不同的維度搜集數(shù)據(jù),包括項(xiàng)目的計(jì)劃持續(xù)時間、所花費(fèi)的精力、工作的范圍、項(xiàng)目的整體質(zhì)量以及所達(dá)到的生產(chǎn)力水平。
這種情況下,生產(chǎn)率指數(shù)(PI)以指數(shù)點(diǎn)數(shù)作為計(jì)量單位,這是一個有專利的QSM計(jì)算單位,范圍從0.1到40。它讓項(xiàng)目之間的比較更有實(shí)際意義并且對軟件開發(fā)因子作出了解釋,其中包括如下變量:管理影響、開發(fā)方法、工具、經(jīng)驗(yàn)水平和應(yīng)用程序類型的復(fù)雜度。一旦某個組織建立了已完成項(xiàng)目的倉庫,就可以計(jì)算定制化趨勢線,用于基線創(chuàng)建。這些趨勢線作為參考點(diǎn)可用于組織內(nèi)的項(xiàng)目比較。項(xiàng)目相對于趨勢線所處的位置表明了項(xiàng)目與平均水平的相比孰優(yōu)孰劣。這會讓你對組織的當(dāng)前能力有清晰的洞察。(項(xiàng)目管理者聯(lián)盟)
更多內(nèi)容詳細(xì)咨詢:http://m.itlife.cn/