獲取工程項目需求的幾種方法及其適用環(huán)境
俗話說,“良好的開端是成功的一半”。需求獲取作為項目伊始的活動,是非常重要的。我們知道,需求調研不充分、用戶需求描述不完整不準確,輕則影響項目建設的順利程度,重則影響應用系統(tǒng)的質量,甚至決定項目的成敗。
目前我們所開發(fā)的軟件項目一般有兩種類型:產品項目和工程項目。產品項目一般都會有充足的時間進行非常仔細的需求調研和分析,而工程項目卻并非如此(因為它往往受諸多因素的影響)。
本文擬討論如何根據(jù)工程項目管理的實際特點,采用合適的方法低成本高效率地獲取用戶的需求。
產品項目一般是根據(jù)公司戰(zhàn)略和市場需求研發(fā)的旨在進行批量出售或推廣的項目,工程項目一般是根據(jù)與用戶簽定的合同研發(fā)的旨在滿足特定用戶需求的項目。筆者所開發(fā)和管理的項目主要是工程項目,在項目的建設過程中,感覺到最頭疼的是項目需求的獲?。晃覀兺ㄏ喈敶蟮木υ谛枨螳@取和需求確認上,然而有時效果還很不理想。經過幾年時間的項目實踐,我們逐步總結出針對不同項目情況所適合采用的需求獲取方法,這些方法能大大提高需求獲取的效率?,F(xiàn)總結之,愿與大家分享。
我們知道,一個工程項目,如果從開發(fā)方(即承建方)和用戶方(即建設方)對需求的清楚程度來分,大致可以分為如下四種:開發(fā)方和用戶方都清楚項目需求、開發(fā)方不清楚項目需求但用戶方清楚、開發(fā)方和用戶方都不清楚項目需求、開發(fā)方清楚項目需求但用戶方不清楚。
針對這四種類型的項目,我總結出四種對應的需求獲取方法:會議討論法、問卷調查法、界面原型法和可運行原型系統(tǒng)法。
一、會議討論法
所謂“會議討論法”,是指開發(fā)方和用戶方召開若干次需求討論會議,達到徹底弄清項目需求的一種需求獲取方法。
這種方法適合于開發(fā)方不清楚項目需求(一般開發(fā)方是剛開始做這種業(yè)務類型的工程項目)但用戶方清楚項目需求的情況。因為用戶清楚項目的需求,則用戶能準確地表達出他們的需求,而開發(fā)方有專業(yè)的軟件開發(fā)經驗,對用戶提供的需求一般都能準確地描述和把握。
這種方法的一般操作步驟是:
步驟一、開發(fā)方根據(jù)雙方制定的《需求調研計劃》召開相關需求主題溝通會;
步驟二、會后開發(fā)方整理出《需求調研記錄》提交給用戶方確認;
步驟三、如果此主題還有未明確的問題則再次溝通,否則開始下一主題;
步驟四、所有需求都溝通清楚后,開發(fā)方根據(jù)歷次《需求調研記錄》整理出《用戶需求說明書》,提交給用戶方確認簽字。
由于開發(fā)方不清楚項目需求,因此需要花較多的時間和精力進行需求調研和需求整理工作。
二、問卷調查法
所謂“問卷調查法”,是指開發(fā)方就用戶需求中的一些個性化的、需要進一步明確的需求(或問題),通過采用向用戶發(fā)問卷調查表的方式,達到徹底弄清項目需求的一種需求獲取方法。
這種方法適合于開發(fā)方和用戶方都清楚項目需求的情況。因為開發(fā)方和建設方都清楚項目的需求,則需要雙方進一步溝通的需求(或問題)就比較少,通過采用這種簡單的問卷調查方法就能使問題得到較好的解決。
這種方法的一般操作步驟是:
步驟一、開發(fā)方先根據(jù)合同和以往類似項目的經驗,整理出一份《用戶需求說明書》和待澄清需求(或問題)的《問卷調查表》提交給用戶;
步驟二、用戶閱讀《用戶需求說明書》,并回答《問卷調查表》中提出的問題,如果《用戶需求說明書》中有描述不正確或未包括的需求,用戶可一并修改或補充;
步驟三、開發(fā)方拿到用戶返回的《用戶需求說明書》和《問卷調查表》進行分析,如仍然有問題,則重復步驟二,否則執(zhí)行步驟四;
步驟四、開發(fā)方整理出《用戶需求說明書》,提交給用戶方確認簽字。
由于這種方法比較簡單、側重點明確,因此能大大縮短需求獲取的時間、減少需求獲取的成本、提交工作效率。
三、界面原型法
所謂“界面原型法”,是指開發(fā)方根據(jù)自己所了解的用戶需求,描畫出應用系統(tǒng)的功能界面后與用戶進行交流和溝通,通過“界面原型”這一載體,達到雙方逐步明確項目需求的一種需求獲取的方法。
這種方法比較適合于開發(fā)方和用戶方都不清楚項目需求的情況。因為開發(fā)方和用戶方都不清楚項目需求,因此此時就更需要借助于一定的“載體”來加快對需求的挖掘和雙方對需求理解。這種情況下,采用“可視化”的界面原型法比較可取。
這種方法的一般操作步驟是:
步驟一、開發(fā)方根據(jù)其所了解到的需求(如通過合同或與用戶交流),采用界面制作工作描畫出應用系統(tǒng)的功能界面;
步驟二、將應用系統(tǒng)的功能界面提交給用戶并與用戶溝通,挖掘出新需求或就需求達成理解上的一致;
步驟三、開發(fā)方就不斷獲取的需求進行增量式整理,根據(jù)新的需求豐富和細化界面原型;
步驟四、雙方經過多次界面原型的交互,開發(fā)方最終整理出《用戶需求說明書》,提交給用戶方確認簽字。
由于開發(fā)方和用戶方都不清楚項目需求,因此此時需求獲取工作將會比較困難,可能導致的風險也比較大。采用這種“界面原型”的方式,能加速項目需求的“浮現(xiàn)”和雙方對需求的一致理解,從而減小由于需求問題可能給項目帶來的風險。
針對這種類型的項目,我們也可以采用下面將要介紹的“可運行原型系統(tǒng)法”,但由于開發(fā)方對需求不了解(證明以前缺乏類似項目的開發(fā)經驗和產品積累),如果開發(fā)一個可運行的原型系統(tǒng),則幾乎需要從零開始編寫代碼,前期投入會很大。
四、可運行原型系統(tǒng)法
所謂“可運行原型系統(tǒng)法”,是指開發(fā)方根據(jù)合同中規(guī)定的基本需求,在以往類似項目應用系統(tǒng)的基礎上進行少量修改得出一可運行系統(tǒng),通過“可運行原型系統(tǒng)”這一載體,達到徹底挖掘項目需求的一種需求獲取的方法。這種方法比較適合于開發(fā)方清楚項目需求但用戶方不清楚項目需求的情況。
這種類型的項目,開發(fā)方一般都有類似項目的建設經驗,因此可以在以往項目的基礎上,快速“構建”出一可運行系統(tǒng),然后借助于這一“載體”來加快對需求的挖掘和雙方(特別是用戶方)對需求的理解。這種情況下,采用“所見即所得”的可運行原型系統(tǒng)法比較可取。
這種方法的一般操作步驟是:
步驟一、開發(fā)方根據(jù)其所了解到的需求(如通過合同或與用戶交流),在以往類似項目的基礎上,快速“構建”出一可運行系統(tǒng);
步驟二、通過向用戶演示“可運行原型系統(tǒng)”,逐步挖掘并讓用戶確認項目需求;
步驟三、開發(fā)方就不斷獲取的需求進行增量式整理,根據(jù)新的需求豐富可運行原型系統(tǒng);
步驟四、雙方經過多次可運行原型系統(tǒng)的交互,開發(fā)方最終整理出《用戶需求說明書》,提交給用戶方確認簽字。
由于開發(fā)方清楚用戶的需求(證明以前有類似項目的開發(fā)經驗和產品積累),但用戶方自己不清楚,因此此時開發(fā)一個“可運行原型系統(tǒng)”,開發(fā)方的投入不會很大,但對于用戶理解和確認項目需求非常有利,因此針對這種類型的項目這是一種比較理想的需求獲取方式
這種方法的另一個好處是:正式系統(tǒng)一般可以在該“可運行原型系統(tǒng)”的基礎上演化而成,為后續(xù)開發(fā)工作節(jié)省不少的工作量和成本。值得注意的是,以上總結出的這四種需求獲取方法不是互斥的,我們可以根據(jù)項目的實際特點獨立應用或組合應用。
總的來說,“忙碌,不代表有效率;方法,遠勝于苦干”。所以我們從事軟件項目開發(fā)的朋友們,都能掌握好恰當?shù)姆椒?,以圖能獲得“事半功倍”的效果。
本文參考:中國項目管理資源網(wǎng)