軟件項(xiàng)目超出計(jì)劃的目標(biāo),通常被稱為范圍蔓延,是IT開發(fā)過程固有的矛盾。范圍蔓延由幾個(gè)原因引起而且如果處理不當(dāng)將成為項(xiàng)目失敗的主要原因。你必須采取一些步驟來控制對(duì)項(xiàng)目的改進(jìn)并確保你和你的開發(fā)團(tuán)隊(duì)不會(huì)受到這些改進(jìn)所造成的負(fù)面影響的損害--完工時(shí)間的拖延和工程預(yù)算的超支。
幸運(yùn)的是,你可以遵循一些規(guī)則來防止項(xiàng)目范圍蔓延造成出軌。我們馬上就會(huì)學(xué)習(xí)這些方法。但是首先,讓我們先來看一個(gè)警示性的例子,它能夠幫助我們明白如果沒有合適的計(jì)劃和控制,事情會(huì)變得多么壞。
可怕的故事
當(dāng)我在一家顧問公司工作的時(shí)候,我親眼見證了我們的姐妹公司在一次公司內(nèi)部為用戶開發(fā)以Web中心的桌面環(huán)境的時(shí)候在項(xiàng)目范圍上所做的掙扎。這個(gè)項(xiàng)目在五年前迫不及待的展開,沒有項(xiàng)目計(jì)劃而且只有一個(gè)主要開發(fā)者指導(dǎo)它的進(jìn)度。開始的時(shí)候這個(gè)項(xiàng)目有許多很有天賦的Java 程序員而他們所有的指導(dǎo)來自于他們的并非技術(shù)專家的上司。
這聽起來象是一場(chǎng)惡夢(mèng),它確實(shí)是一場(chǎng)惡夢(mèng)而且現(xiàn)在還是這樣。今天這家公司有了一個(gè)不值得的客戶和一個(gè)其競(jìng)爭(zhēng)對(duì)手在兩年以前就已經(jīng)超越的產(chǎn)品。隨著這個(gè)項(xiàng)目繼續(xù)進(jìn)行,這家公司自身已經(jīng)無法為它的員工發(fā)工資了,這對(duì)投資者看起來象一個(gè)無底洞,而且在它的管理層看來還只是剛剛開始。由于在開始工作的時(shí)候沒有簽定正式的項(xiàng)目意向書,這個(gè)項(xiàng)目的范圍不斷的改變,甚至每天都在改變,而所有的工作,從開發(fā)到銷售和質(zhì)量保證都因?yàn)椴粩喔淖兊捻?xiàng)目范圍所帶來的繁重工作而停滯。
好的一面
項(xiàng)目范圍改變的效果并不一定是負(fù)面的,這得看你的實(shí)際情況。如果你是擔(dān)當(dāng)顧問或者是為一家顧問公司工作,那么軟件功能改進(jìn)對(duì)于你的業(yè)務(wù)來說是非常好的--只要能夠很專業(yè)的處理這個(gè)問題。對(duì)于公司內(nèi)部的軟件開發(fā)過程,額外的功能能夠讓你的產(chǎn)品比你的競(jìng)爭(zhēng)對(duì)手更勝一籌。但是,如果你發(fā)布軟件的時(shí)間推遲一兩個(gè)月,那么這個(gè)優(yōu)勢(shì)就會(huì)被丟失。通過控制你開發(fā)過程的費(fèi)用并按時(shí)發(fā)布軟件,你的項(xiàng)目就會(huì)取得成功,而不需要損失在軟件制作過程中的靈活性。
從第一天開始就進(jìn)行軟件項(xiàng)目范圍控制
控制項(xiàng)目范圍在編寫第一行代碼以前就已經(jīng)開始了。不論實(shí)際情況如何,每一次開發(fā)工作都應(yīng)該有相應(yīng)的項(xiàng)目計(jì)劃或者項(xiàng)目協(xié)議書。即使你只是一個(gè)希望讓老板高興的程序員,你也能夠因?yàn)樵陂_始工作以前制定計(jì)劃書而得到很多的好處。你可以使用下面的步驟來使自己成功的控制項(xiàng)目的范圍:
1. 確保自己明白項(xiàng)目的范圍。與項(xiàng)目主管會(huì)談并發(fā)布整個(gè)項(xiàng)目的概覽交與他們查看和評(píng)論。
2. 了解你自己認(rèn)為重要的東西和項(xiàng)目主管認(rèn)為重要的東西。在項(xiàng)目進(jìn)行的整個(gè)過程里把你得到的信息按順序列成一張表。這些信息應(yīng)該包括預(yù)算,項(xiàng)目截止時(shí)間,功能發(fā)布,客戶滿意度,以及員工的滿意度。一旦項(xiàng)目開始,你將使用這個(gè)表來調(diào)整你的時(shí)間安排。
3. 定義你的項(xiàng)目發(fā)布目標(biāo)并讓項(xiàng)目主管同意它們。項(xiàng)目發(fā)布目標(biāo)應(yīng)該是在項(xiàng)目過程中應(yīng)該完成的功能的大概描述。
4. 把經(jīng)過同意的項(xiàng)目發(fā)布目標(biāo)細(xì)化成具體的工作要求。這些要求應(yīng)該盡可能的詳細(xì)并使用一個(gè)簡(jiǎn)單的電子表格來完成它。你的項(xiàng)目越大,那么你就應(yīng)該包括更多的細(xì)節(jié)。如果你的項(xiàng)目持續(xù)的時(shí)間不止一兩個(gè)月的話,不要忘記包括開發(fā)過程中軟件升級(jí)的時(shí)間,你還應(yīng)該總是為編寫充足的文檔而留下時(shí)間。
5. 將項(xiàng)目分解成大的和小的里程碑并編寫一個(gè)大概的項(xiàng)目時(shí)間表以獲得項(xiàng)目主管的同意。小的里程碑應(yīng)該不持續(xù)一個(gè)月以上。不論你用什么方法確定任務(wù)的持續(xù)時(shí)間,你都應(yīng)該為修正錯(cuò)誤留下時(shí)間。在與不熟悉的員工一起工作的時(shí)候,我通常把時(shí)間定為預(yù)計(jì)工作時(shí)間的140%到160%。如果你的時(shí)間比較緊,那么你應(yīng)該重新評(píng)估你的項(xiàng)目發(fā)布目標(biāo)。在預(yù)算的范圍內(nèi)和截止的時(shí)間以前完成項(xiàng)目能夠?yàn)轭~外的改進(jìn)留下空間。
6. 一旦時(shí)間表已經(jīng)創(chuàng)立,那么你就需要使用一個(gè)PERT圖表或者任務(wù)分配表來分配資源和確定項(xiàng)目的關(guān)鍵路徑。微軟Project軟件能夠自動(dòng)為你創(chuàng)建這些東西。你項(xiàng)目的關(guān)鍵路徑會(huì)在項(xiàng)目進(jìn)行的過程中發(fā)生改變。遵循這個(gè)圖表來確定什么發(fā)布目標(biāo)必須在規(guī)定的時(shí)間里完成。在非常大的項(xiàng)目里,我盡量做到不把我的開發(fā)階段標(biāo)準(zhǔn)定義得太早,但是即使一個(gè)大概的計(jì)劃也能夠?yàn)槟闾峁┏晒Πl(fā)布軟件的依據(jù)。
7. 意識(shí)到會(huì)出現(xiàn)項(xiàng)目范圍蔓延。盡早填寫“項(xiàng)目范圍改變要求”表格并在開發(fā)的過程中說服項(xiàng)目主管。一個(gè)“項(xiàng)目范圍改變要求”表格能夠讓你在按項(xiàng)目主管的要求進(jìn)行時(shí)間表改變以前對(duì)這些改變進(jìn)行收益投入比的分析。
如果你能夠立刻開始所有這些步驟,那很好。但是,即使你只能開始遵循其中的一些步驟,那么你所遵循的任何步驟都能夠讓你盡可能的避免和控制項(xiàng)目范圍蔓延。用那種方式,你就能夠更好的控制你的項(xiàng)目,而不是讓你的項(xiàng)目控制你。
【?發(fā)表評(píng)論?0條?】