一個(gè)項(xiàng)目延期數(shù)年,超支數(shù)百萬,已經(jīng)不是新鮮事了。進(jìn)度延期、預(yù)算瘋漲、直至最后完全失敗,這在軟件世界非常普遍。技術(shù)項(xiàng)目的失敗,屢見不鮮,不論你運(yùn)營(yíng)的是一個(gè)持續(xù)跟進(jìn)一些項(xiàng)目的軟件公司,還是一個(gè)需要顧問來為你提供系統(tǒng)集成的非技術(shù)公司,你都有可能遭遇這個(gè)問題。
例如,在2003年,我飛去洛杉磯出席微軟為軟件開發(fā)者舉辦的其中一個(gè)會(huì)議。活動(dòng)中,微軟發(fā)表了激動(dòng)人心的消息:下一個(gè)版本的windows將會(huì)帶 來一些革命性的新功能?;仡櫸业墓P記,其中有一個(gè)新功能叫做WinFS。具體細(xì)節(jié)不講,簡(jiǎn)單來說,WinFS建議將操作系統(tǒng)的文件系統(tǒng)功能(文件和文件夾 的位置信息)和數(shù)據(jù)庫(kù)功能(個(gè)人對(duì)文件的描述信息)合而為一,放進(jìn)一個(gè)又大又邪惡的“文件數(shù)據(jù)庫(kù)混合體”。
這是一個(gè)挺有野心的動(dòng)作。從技術(shù)上來說,WinFS約等于重新安排一個(gè)國(guó)家的交通系統(tǒng),以適應(yīng)會(huì)飛的汽車。是的,這樣會(huì)使航空公司停業(yè)。同樣,所有車庫(kù)也要變寬來適應(yīng)帶翼的車子。但先別想太遠(yuǎn),還是讓這功能在一年或最多兩年內(nèi)面世再說吧。
三年過去了。一個(gè)叫Quentin Clark的微軟經(jīng)理在博客里說道,WinFS根本不能準(zhǔn)時(shí)面世,并且它阻礙了微軟推出其最新的操作系統(tǒng)。因此這個(gè)功能要延期,或者放到以后版本的數(shù)據(jù)庫(kù)上,這意味著沒有了“將文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)合而為一”這唯一的亮點(diǎn)。有鑒于此,你怎么知道你某個(gè)技術(shù)項(xiàng)目哪一天會(huì)注定成為另一個(gè)WinFS?這里我有五 步指引來確證一個(gè)軟件的失?。?/span>
錯(cuò)誤一:采用平庸的開發(fā)團(tuán)隊(duì)
軟件設(shè)計(jì)是有難度的,而且不幸的是,很多自稱程序員的人確實(shí)不能勝任軟件設(shè)計(jì)。盡管這是項(xiàng)目失敗的首要原因,你也不曾從官方的失敗報(bào)告中得知。在所有的行業(yè),軟件業(yè),物流業(yè),或者客服業(yè),人們對(duì)同事的無能都太過寬容。你從來都不會(huì)聽到有人說“我們團(tuán)隊(duì)沒有足夠的智慧來完成這件事”。為什么要這樣傷人的心呢?顯而易見的,如果這隊(duì)分得了任務(wù)的人員并不擅長(zhǎng)這份工作,他們的工作會(huì)日復(fù)一日,日復(fù)一日……等等……但軟件卻沒有做出來。你也不用太擔(dān)心HR會(huì) 阻撓你招聘一班廢物。在大多數(shù)的案例里,我向你保證,HR對(duì)此毫無建樹。
錯(cuò)誤二:按周來定目標(biāo)
假設(shè)你想改造你的廚房。你請(qǐng)來的師傅已經(jīng)搞過很多廚房,而且不作詳細(xì)藍(lán)圖就能估算出這項(xiàng)工作的成本。但軟件開發(fā)者是在制造前所未有的東西。如果前所已有,他賣張拷貝的光盤給你就行了。因此,粗略的估計(jì)是不可能的。他們需要在寫代碼之前做好詳盡的計(jì)劃。無論你是客戶還是開發(fā)經(jīng)理,你的責(zé)任就是確保開發(fā)人員帶著詳盡計(jì)劃來開展工作。當(dāng)你向開發(fā)人員詢問計(jì)劃時(shí),他們大多數(shù)人可能只會(huì)給你一份把進(jìn)度按周來劃分的時(shí)間表。這看似非常合理,但其實(shí)不然。如果你讓軟件團(tuán)隊(duì)提交一份大粒度的時(shí)間表(大是指需要兩天以上的工作),那么你可以認(rèn)定他們沒有考慮到所有需要實(shí)現(xiàn)的細(xì)節(jié),而這些細(xì)節(jié)將會(huì)積累,導(dǎo)致延期。
錯(cuò)誤三:為截止時(shí)間而談判
還有什么比按周劃分軟件項(xiàng)目更糟糕?就是要求團(tuán)隊(duì)承諾大大地提早完成工作。根據(jù)我的經(jīng)驗(yàn),大多數(shù)開發(fā)者都會(huì)樂觀地接受你的暗示并參與討價(jià)還價(jià)。然后你會(huì)得到一份友好的協(xié)定時(shí)間表,但卻無法按時(shí)執(zhí)行。
試想以下情況:海象媽媽會(huì)在懷孕15到16個(gè)月后,生出小海象。你可能會(huì)叫海象媽媽保證在15個(gè)月內(nèi)做到,而她也說沒問題?;蛘吣阏f,“15個(gè)月? 瘋了吧?我們要在8個(gè)月內(nèi)生出”。當(dāng)然,這樣談判是無法促進(jìn)事成的,而且即使得到一份8個(gè)月的進(jìn)度表,我還是告訴你一個(gè)小秘密:這是不可能實(shí)現(xiàn)的。你可以 取得一份11個(gè)月的時(shí)間表,但你還是要等15個(gè)月,因?yàn)樾『O?/span>