中期開(kāi)始到現(xiàn)在,很多軟件工程師對(duì)需求的定義非常模糊,系統(tǒng)需求與功能需求把握不準(zhǔn),把范圍建設(shè)的過(guò)程與功能需求混在一起,導(dǎo)致今天大部份軟件在開(kāi)發(fā)過(guò)程中不斷修改,讓項(xiàng)目不斷延誤。
90年代的項(xiàng)目范圍與需求
自上世紀(jì)90年代中期開(kāi)始,企業(yè)從流程自動(dòng)化的“科技應(yīng)用方法”開(kāi)始轉(zhuǎn)型到信息化的“科技應(yīng)用價(jià)值”為最終目標(biāo)。項(xiàng)目的目標(biāo)也漸漸地從明確的技術(shù)應(yīng)用過(guò)程轉(zhuǎn)變成為如何利用科技來(lái)完成虛擬的理想及模糊的愿景。例如,建立一個(gè)系統(tǒng)為企業(yè)提供業(yè)務(wù)方向決策,讓管理層能夠判斷產(chǎn)品在市場(chǎng)上哪個(gè)地域的市場(chǎng)需要和進(jìn)行產(chǎn)品調(diào)整或改善,屬于哪類(lèi)消費(fèi)群,如何開(kāi)拓一個(gè)新市場(chǎng)等,又或者希望利用因特網(wǎng)為企業(yè)提供一個(gè)產(chǎn)品推廣和銷(xiāo)售渠道?!?/P>
這些項(xiàng)目可能包含現(xiàn)有市場(chǎng)的地域或推進(jìn)到新的地域環(huán)境,包含一個(gè)或多個(gè)部門(mén)的分工與協(xié)調(diào),也可能包含現(xiàn)有數(shù)據(jù)庫(kù)的組合、信息分享或需要成立新的數(shù)據(jù)來(lái)提供所需的信息,但大多數(shù)需要包含現(xiàn)有系統(tǒng)和建立新系統(tǒng)的集成體。如何實(shí)現(xiàn)項(xiàng)目的人工或系統(tǒng)操作流程等等多是客戶(hù)在項(xiàng)目啟動(dòng)前沒(méi)有考慮過(guò)的內(nèi)容。在這張情況下,范圍的建設(shè)依據(jù)是一個(gè)相當(dāng)困難去完成的子項(xiàng)目??蛻?hù)在項(xiàng)目調(diào)研過(guò)程中能夠提供的只能是一部份的愿景和期盼,需要技術(shù)人員透過(guò)這些信息建立項(xiàng)目的范圍,才能夠降低后期的變動(dòng)。
大部分技術(shù)人員在軟件開(kāi)發(fā)過(guò)程中對(duì)開(kāi)發(fā)體系的應(yīng)用未能融合信息化項(xiàng)目的特色。盲目依從開(kāi)發(fā)體系的過(guò)程,忘記開(kāi)發(fā)體系應(yīng)用前的一些先決條件:建立項(xiàng)目的范圍。所以從90年代開(kāi)始,項(xiàng)目管理開(kāi)始扮演重要的角色,在項(xiàng)目章程(Project Charter)中建立范圍、預(yù)算、資源和投資回報(bào)等內(nèi)容,讓技術(shù)人員依據(jù)項(xiàng)目章程的指導(dǎo),更能有效地發(fā)揮技術(shù)應(yīng)用的能力。
如何實(shí)現(xiàn)用戶(hù)的愿景,便需要項(xiàng)目經(jīng)理、技術(shù)人員與用戶(hù)共同尋找實(shí)現(xiàn)的過(guò)程,才能夠把握有關(guān)的需求,才能夠利用科技讓用戶(hù)獲取期盼的項(xiàng)目最終交付物。很多項(xiàng)目的重點(diǎn)已經(jīng)不是科技的應(yīng)用,而是科技應(yīng)用所帶出來(lái)的價(jià)值。今天的項(xiàng)目主要是支撐業(yè)務(wù)的發(fā)展,輔助市場(chǎng)的開(kāi)拓,創(chuàng)新的科研成果等最終目標(biāo),SOW已經(jīng)不能夠在項(xiàng)目初期進(jìn)行編制,項(xiàng)目范圍也無(wú)法在項(xiàng)目前期界定。
大部分愿景型的項(xiàng)目中,要提供一個(gè)全面的項(xiàng)目范圍,我們必須進(jìn)行信息搜集、分析后組合成業(yè)務(wù)流、數(shù)據(jù)流。建設(shè)出具體的操作過(guò)程,再轉(zhuǎn)換成SOWs后才能夠建立項(xiàng)目的范圍,然后才能夠從范圍建立項(xiàng)目的明確的功能需求,這些工作都應(yīng)該在項(xiàng)目啟動(dòng)前便執(zhí)行,是項(xiàng)目章程的主要內(nèi)容,但可惜大部分用戶(hù)缺乏這個(gè)概念,而我國(guó)技術(shù)人員從不重視、也不理解范圍的重要性,只把工作重點(diǎn)放在“調(diào)研”過(guò)程,希望從調(diào)研過(guò)程中理解客戶(hù)的需求。
項(xiàng)目在缺乏明確范圍的時(shí)候要能夠把握系統(tǒng)的功能需求相當(dāng)困難。項(xiàng)目愿景是客戶(hù)希望最終能夠達(dá)到的目標(biāo),如何達(dá)到預(yù)期的目標(biāo)?過(guò)程如何操作?將來(lái)需要哪些類(lèi)型的工作人員負(fù)責(zé)執(zhí)行?應(yīng)用過(guò)程,處理的方法和模式如何應(yīng)用?這些問(wèn)題客戶(hù)可能從來(lái)沒(méi)有考慮過(guò),更不能夠?yàn)榧夹g(shù)人員提供所謂需求,只希望透過(guò)技術(shù)人員的專(zhuān)業(yè)知識(shí)和經(jīng)驗(yàn),提供客戶(hù)能夠達(dá)到目的的應(yīng)用系統(tǒng)。
今天軟件工程的挑戰(zhàn)
要能夠有效完成項(xiàng)目的交付,我們便需要在項(xiàng)目前期建立明確的范圍,只要我們能夠完成范圍內(nèi)的工作,客戶(hù)便能夠進(jìn)行有效的驗(yàn)收過(guò)程。但是我們?cè)谲浖こ讨袥](méi)有把范圍建立起來(lái),我們便需要不斷滿(mǎn)足客戶(hù)的思維,來(lái)提供客戶(hù)所希望達(dá)到的目的。
很多IT項(xiàng)目經(jīng)理在項(xiàng)目啟動(dòng)的時(shí)候,把工作重點(diǎn)放在把握“客戶(hù)需求”上,但執(zhí)行調(diào)研的技術(shù)人員卻把“客戶(hù)需求”誤解成系統(tǒng)的“功能需求”,希望通過(guò)調(diào)研的過(guò)程去理解系統(tǒng)需要哪些應(yīng)用功能?;仡?0世紀(jì)70、80年代的開(kāi)發(fā)過(guò)程,客戶(hù)需