軟件開發(fā)項(xiàng)目失敗大多是因?yàn)檫@三大原因
根據(jù)Standish Group發(fā)布的2013年統(tǒng)計(jì)數(shù)據(jù)我們可以發(fā)現(xiàn),在2012年只有39%的IT項(xiàng)目取得了成功。
隨著IT現(xiàn)在已然成為了公認(rèn)的增長(zhǎng)速度最快的產(chǎn)業(yè)之一,相關(guān)的各種需要進(jìn)行完善和優(yōu)化的項(xiàng)目也越來越多。與其他行業(yè)項(xiàng)目相比,軟件行業(yè)很難確定項(xiàng)目失敗的最終根源。不過,通過分析IT項(xiàng)目失敗報(bào)告,一些常見的罪魁禍?zhǔn)卓梢娨话摺?/p>
雖然導(dǎo)致每個(gè)項(xiàng)目失敗的根本原因不盡相同,但是大多數(shù)我們可以歸結(jié)為這三方面原因:可憐的預(yù)算、缺乏溝通和透明、不能適應(yīng)變化和重新定向。
可憐的預(yù)算
俗話說,錢不是***的,但是沒有錢是萬萬不能的。錢在項(xiàng)目走向成功還是失敗上面起著巨大的作用。即使是最精明的企業(yè)家和IT管理人員也都有因?yàn)橘Y金的原因而導(dǎo)致項(xiàng)目失敗的時(shí)候。
初創(chuàng)企業(yè),大多資金有限,特別是在他們的發(fā)展早期。雖然一些初創(chuàng)企業(yè)可能會(huì)有一些財(cái)政援助,但是支持其整個(gè)開發(fā)過程所需要的資金還是很有限的,因?yàn)榇蠖鄶?shù)風(fēng)險(xiǎn)投資者只有當(dāng)你差不多能拿出成果——接近于成品的應(yīng)用程序——的時(shí)候才會(huì)投給你大筆資金。
所以大多數(shù)初創(chuàng)企業(yè)只能選擇怎么省錢怎么來。但是這可能不但會(huì)是***的錯(cuò)誤,也可能是最昂貴的。因?yàn)榱畠r(jià)所以很有可能會(huì)導(dǎo)致軟件質(zhì)量很差,而一個(gè)應(yīng)用程序的根本在于能執(zhí)行任務(wù)和操作,處理大量的請(qǐng)求,并且具備進(jìn)一步擴(kuò)展和開發(fā)的能力。
所以,如果代碼的質(zhì)量太差,很有可能前面所做的一切努力都會(huì)付之東流。即便是要將項(xiàng)目轉(zhuǎn)移給另一個(gè)開發(fā)團(tuán)隊(duì),用在修復(fù)代碼庫上面的時(shí)間也會(huì)大大影響預(yù)算。
另一個(gè)與預(yù)算有關(guān)的失敗原因,與其說是因?yàn)槿狈Y金,還不如說是因?yàn)闆]有正確地管理和使用資金。哪怕一家初創(chuàng)企業(yè)用于開發(fā)應(yīng)用程序的資金遠(yuǎn)遠(yuǎn)超過所需要的資金額度,如果不能妥善管理,馬上就會(huì)有捉襟見肘的困窘。
資金管理不善背后最普遍的原因是因?yàn)楦犊罘绞?,通常被稱為固定投標(biāo)(Fixed Bid)。順便說一句,在一個(gè)固定價(jià)格的基礎(chǔ)上構(gòu)建自己的應(yīng)用程序,那你實(shí)際上就是自己將促成項(xiàng)目成功最關(guān)鍵的要素給拋棄了。
這種固定投標(biāo)模式會(huì)破壞客戶和開發(fā)人員之間透明和諧的溝通,原因是雙方的目標(biāo)是不一樣的——開發(fā)人員想要盡快地做出產(chǎn)品,而客戶想要以此收獲更大的效益。
此外,這種固定投標(biāo)模式也讓人很難確切掌握這些錢到底是怎么用掉的,用到了哪里,因?yàn)樗鼘㈨?xiàng)目直接看做一個(gè)整體,而沒有了一個(gè)一個(gè)步驟。
缺乏溝通和透明
擁有一個(gè)開放的溝通渠道以便于全程規(guī)劃、開發(fā)和部署的重要性,可謂是再怎么強(qiáng)調(diào)也不為過,原因是因?yàn)檫@是一個(gè)項(xiàng)目失敗最直接也是最快的方式之一。眾所周知,只有客戶和開發(fā)人員緊密合作,才能保證客戶的想法和要求可以明確地傳達(dá)給開發(fā)團(tuán)隊(duì)。
缺少客戶的參與可能會(huì)導(dǎo)致開發(fā)出來的應(yīng)用程序與客戶原本的初衷全然不同。這樣一個(gè)不能滿足客戶需求的產(chǎn)品,又會(huì)怎么被認(rèn)可是成功的呢?
不能適應(yīng)變化和重構(gòu)
事物總是在不斷變化的,關(guān)于這一點(diǎn),我想軟件開發(fā)人員最是深有體會(huì)了。在軟件開發(fā)過程中,出現(xiàn)變化和重構(gòu)已經(jīng)成為一種常態(tài)——無論是強(qiáng)迫的還是有意為之的。
在構(gòu)建應(yīng)用程序時(shí),問題和障礙是其不可避免的組成部分,但是何嘗不是發(fā)現(xiàn)新捷徑的方式。變化和重構(gòu)對(duì)于軟件而言并不總是負(fù)面的。條條大道通羅馬,構(gòu)建軟件也有很多方式,在我們解決問題的過程中,往往會(huì)突然靈機(jī)一動(dòng)想出實(shí)現(xiàn)目標(biāo)的新思路和新方法。
一個(gè)軟件開發(fā)團(tuán)隊(duì)適應(yīng)項(xiàng)目改變的能力主要依賴于項(xiàng)目管理方法。在軟件開發(fā)中最常見的兩種模式是敏捷開發(fā)和瀑布開發(fā)(較為傳統(tǒng))。敏捷開發(fā)方法在結(jié)構(gòu) 上較為靈活,允許并鼓勵(lì)軟件變化和重定向。而瀑布開發(fā)方法則是線性的,并不允許項(xiàng)目在開發(fā)時(shí)發(fā)生任何變化——這個(gè)階段完成后就進(jìn)入下一個(gè)階段,并且不允許 恢復(fù)到以前的任何階段。