李金瑤
摘 要 軟件系統(tǒng)的實(shí)施,是需求、代碼、文檔資料等多方面因素的綜合產(chǎn)物。作為項(xiàng)目初期的需求調(diào)研,是系統(tǒng)后續(xù)設(shè)計(jì)、開發(fā)的基石,其重要性及復(fù)雜性已經(jīng)得到越來越多項(xiàng)目管理人員的重視,本文通過對(duì)需求調(diào)研方法的探討,希望對(duì)項(xiàng)目實(shí)施有一定的實(shí)踐意義。
【關(guān)鍵詞】需求調(diào)研 軟件系統(tǒng) 探討方法
1 引言
軟件需求調(diào)研是軟件項(xiàng)目實(shí)施的開始階段,是系統(tǒng)設(shè)計(jì)、開發(fā)的重要依據(jù),因此需求調(diào)研的質(zhì)量對(duì)軟件項(xiàng)目的成敗至關(guān)重要。然而,在調(diào)研過程中對(duì)用戶需求的獲取受到很多因素的制約,例如,在項(xiàng)目初期用戶對(duì)系統(tǒng)的需求往往并不明確,調(diào)研人員與用戶對(duì)同一問題的理解可能存在偏差等等。本文將結(jié)合實(shí)際項(xiàng)目經(jīng)驗(yàn),簡要介紹軟件系統(tǒng)需求調(diào)研的概念,并對(duì)具體的調(diào)研過程進(jìn)行闡述,最后,對(duì)軟件系統(tǒng)調(diào)研的注意事項(xiàng)進(jìn)行探討。
2 軟件系統(tǒng)需求調(diào)研基本知識(shí)
2.1 軟件需求的定義
需求指項(xiàng)目中必須提供的功能或遵守的條件,具體可分為功能性需求、非功能性需求和約束條件。功能性需求,即系統(tǒng)需要實(shí)現(xiàn)的具體功能,如報(bào)表功能、審批功能等。非功能性需求,指軟件質(zhì)量屬性的,包括軟件的易用性、響應(yīng)時(shí)間、可靠性、容錯(cuò)性、擴(kuò)展性等。約束條件則指系統(tǒng)必須滿足的一些要求,如使用的瀏覽器版本、數(shù)據(jù)庫及操作系統(tǒng)版本等。在軟件實(shí)施過程中,功能性需求的完成標(biāo)志著系統(tǒng)滿足了用戶的基本辦公要求,在此基礎(chǔ)上,非功能性需求的實(shí)現(xiàn)程度直接的影響著用戶體驗(yàn),進(jìn)而影響用戶對(duì)整個(gè)系統(tǒng)質(zhì)量的感官與評(píng)價(jià)。
2.2 軟件需求調(diào)研的定義
提到軟件系統(tǒng)的建設(shè),人們首先想到的往往是代碼開發(fā)環(huán)節(jié),而容易忽略掉需求調(diào)研的重要性。軟件需求調(diào)研指的是深入的了解用戶需求,挖掘存在的問題,并討論可行的解決辦法,最終與用戶就目標(biāo)系統(tǒng)必須要做什么這個(gè)問題達(dá)成一致。軟件需求調(diào)研是項(xiàng)目的起點(diǎn),一份高質(zhì)量的需求調(diào)研能夠顯著減少項(xiàng)目后期的變更風(fēng)險(xiǎn),是系統(tǒng)保質(zhì)、按時(shí)的交付的關(guān)鍵。因此,項(xiàng)目啟動(dòng)初期,必須預(yù)留出充足的需求調(diào)研時(shí)間。
2.3 軟件需求調(diào)研的目的
需求調(diào)研的目的可以概括為以下三個(gè)方面:正確理解用戶的業(yè)務(wù)現(xiàn)狀,充分挖掘用戶需求(包括功能性需求及非功能性需求);收集完整的用戶資料;劃分需求的優(yōu)先級(jí),為后續(xù)的代碼開發(fā)工作提供依據(jù)。
3 需求調(diào)研的實(shí)施
3.1 調(diào)研前的準(zhǔn)備工作
項(xiàng)目啟動(dòng)后,即可開始需求調(diào)研的工作。在正式調(diào)研前,要明確調(diào)研實(shí)施人員,其能力與最終需求調(diào)研成果的質(zhì)量息息相關(guān)。為了更好的把握用戶需求,一個(gè)調(diào)研團(tuán)隊(duì)中應(yīng)至少由項(xiàng)目的管理人員、技術(shù)人員以及業(yè)務(wù)專家這三類構(gòu)成。隨后,要制定詳細(xì)的調(diào)研計(jì)劃,包括調(diào)研起始時(shí)間,調(diào)研對(duì)象、涉及的主要模塊,調(diào)研各階段預(yù)計(jì)要花費(fèi)的時(shí)間等,并將調(diào)研計(jì)劃交由用戶審核、認(rèn)可。
3.2 實(shí)施需求調(diào)研
3.2.1 調(diào)研實(shí)施
按照排定的需求調(diào)研計(jì)劃實(shí)施調(diào)研,并形成調(diào)研紀(jì)要。調(diào)研中,通過向用戶復(fù)述技術(shù)人員所記錄內(nèi)容的方法,查看技術(shù)人員的理解是否與用戶的表達(dá)主旨相一致。調(diào)研主體可包含以下幾點(diǎn):
(1)業(yè)務(wù)的現(xiàn)狀及日常工作中存在的問題;
(2)業(yè)務(wù)涉及哪些部門、崗位或其它相關(guān)者;
(3)業(yè)務(wù)在部門內(nèi)及部門間的操作流程;
(4)業(yè)務(wù)處理過程中是否有一些先決條件、是否有異常處理情況;
(5)用戶對(duì)提升現(xiàn)有作業(yè)模式的需求內(nèi)容;
(6)非功能性方面的需求;
3.2.2 調(diào)研方法
(1)訪談法。調(diào)研人員與用戶面對(duì)面的交談,由用戶描述業(yè)務(wù)現(xiàn)狀。并記錄訪談內(nèi)容。
(2)問卷調(diào)查法。調(diào)研人員將需要了解的問題制作成問卷,分發(fā)給業(yè)務(wù)人員收集信息,并對(duì)收集的數(shù)據(jù)進(jìn)行綜合分析。
(3)實(shí)地觀察法。調(diào)研人員在企業(yè)員工實(shí)際辦公地駐場,觀察用戶每日的工作流程、工作中存在的問題并記錄。
(4)查閱資料法。調(diào)研人員對(duì)用戶提供的業(yè)務(wù)資料進(jìn)行匯總、分析。
總的來說,訪談法是一種直接有效的獲取用戶信息的調(diào)研方式,也在實(shí)際操作中被廣泛應(yīng)用。但是,訪談對(duì)象通常很難將他們的工作完整的描述給調(diào)研人員,實(shí)地觀察法便是在訪談的基礎(chǔ)上,一個(gè)行之有效的了解用戶實(shí)際業(yè)務(wù)的方法。同時(shí),實(shí)地觀察法有助于調(diào)研人員發(fā)現(xiàn)用戶工作中的痛點(diǎn),而這些細(xì)節(jié)很可能在訪談過程中被用戶忽略。例如,在一項(xiàng)運(yùn)輸系統(tǒng)的調(diào)研中,在用戶辦公地駐場時(shí),我們發(fā)現(xiàn)用戶日均打印的單據(jù)量較大,而當(dāng)前的打印紙張是單頁多聯(lián)紙,存在人工撕頁和手動(dòng)送紙的問題,每天都需人工看守不停歇的打印當(dāng)天的路單。另一方面,運(yùn)輸公司原有的針式打印機(jī)工作噪音大,干擾客戶電話接聽,也影響調(diào)度人員的工作狀態(tài)。這些都使打印路單成為調(diào)度工作的瓶頸。發(fā)現(xiàn)這一問題后,我們即向用戶建議,將單頁多聯(lián)打印紙更換為帶孔多聯(lián)打印紙,并采用網(wǎng)絡(luò)打印的方式,將打印機(jī)放置在適合的房間內(nèi),通過遠(yuǎn)程打印便可實(shí)現(xiàn)本地的打印工作。通過這些措施,大大節(jié)省了人力,提高了調(diào)度人員的工作效率,并優(yōu)化了其工作環(huán)境,得到了用戶的肯定,也使系統(tǒng)后期的推廣得到了更多的用戶支持。
3.3 編寫軟件需求說明書
主體調(diào)研結(jié)束后,要完成軟件需求說明書的編制,并提交給用戶。盡管編寫軟件需求說明讓很多技術(shù)人員非常頭疼,但是我們不能因此而忽略它的重要性,一份高質(zhì)量的需求說明書,不僅能夠讓用戶認(rèn)可調(diào)研團(tuán)隊(duì)的專業(yè)素養(yǎng),而且有助于技術(shù)人員整理思路、匯總資料,實(shí)現(xiàn)信息的共享,為系統(tǒng)的設(shè)計(jì)、開發(fā)提供便捷。軟件需求說明中可以包含的內(nèi)容有:
(1)用戶公司的基本情況,如組織架構(gòu)、業(yè)務(wù)現(xiàn)狀(要把每個(gè)業(yè)務(wù)部門的業(yè)務(wù)現(xiàn)狀逐條闡述清晰,將調(diào)研紀(jì)要中的流程圖、文檔資料、相關(guān)截圖等羅列在其中);
(2)用戶公司現(xiàn)有系統(tǒng)的應(yīng)用情況,如功能、界面、介紹材料等;
(3)闡明用戶希望系統(tǒng)實(shí)現(xiàn)的目標(biāo),對(duì)系統(tǒng)的功能性、非功能性需求。
3.4 軟件需求說明書的確認(rèn)
軟件調(diào)研階段要與用戶針對(duì)需求進(jìn)行反復(fù)確認(rèn),用戶對(duì)軟件需求說明書的簽字確認(rèn)標(biāo)志著軟件調(diào)研階段的完成。
4 需求調(diào)研的注意事項(xiàng)
4.1 先宏觀后微觀,由粗到細(xì)
調(diào)研應(yīng)采取先宏觀后微觀的策略,從企業(yè)的業(yè)務(wù)、組織架構(gòu)等整體情況入手,再順藤摸瓜,深挖細(xì)節(jié)。用戶是企業(yè)業(yè)務(wù)領(lǐng)域的專家,但調(diào)研人員對(duì)用戶業(yè)務(wù)的理解往往是有限的,雙方在交流中存在隔閡,如果調(diào)研從細(xì)節(jié)入手,調(diào)研人員很容易失去對(duì)用戶核心業(yè)務(wù)的整體把握。
4.2 調(diào)研對(duì)象要涵蓋各個(gè)層次的用戶,包括領(lǐng)導(dǎo)層、中層以及基層業(yè)務(wù)人員
首先,領(lǐng)導(dǎo)層更關(guān)心項(xiàng)目的宏觀目標(biāo),因此與領(lǐng)導(dǎo)層調(diào)研,可以了解到系統(tǒng)開發(fā)的總體目的,所要達(dá)到的決策支持等核心方針。其次,中層領(lǐng)導(dǎo)關(guān)心工作實(shí)現(xiàn)的收益,他們是系統(tǒng)各模塊的直接需求者,對(duì)相對(duì)應(yīng)功能的定義、業(yè)務(wù)間的銜接、報(bào)表決策進(jìn)行把控。最后,基層業(yè)務(wù)人員是系統(tǒng)的操作者,也是真正了解系統(tǒng)各流程具體細(xì)節(jié)的人,在把握公司領(lǐng)導(dǎo)層以及中層對(duì)系統(tǒng)的要求后,調(diào)研工作的重點(diǎn)便是針對(duì)基層員工展開深入、詳細(xì)的調(diào)研。讓相關(guān)的基層人員充分參與調(diào)研,一方面,可以準(zhǔn)確把握每項(xiàng)操作的細(xì)節(jié);另一方面,能夠?qū)ο到y(tǒng)后續(xù)的推廣起到積極的作用。
4.3 收集齊所有業(yè)務(wù)報(bào)表、票據(jù)等材料,并保留完整的電子版材料
業(yè)務(wù)相關(guān)的報(bào)表資料都可以作為后續(xù)系統(tǒng)設(shè)計(jì)中的參考依據(jù),同時(shí),調(diào)研人員通過對(duì)這些資料進(jìn)行分析,很可能會(huì)發(fā)現(xiàn)一些遺漏的信息點(diǎn)。因?yàn)檎{(diào)研過程中,用戶的描述往往集中于他們常規(guī)的工作情況,但是對(duì)日常工作中的繁瑣細(xì)節(jié),以及面對(duì)異常情況的處理等特殊情況,很難面面俱到的涉及。在這種情況下,如果調(diào)研人員對(duì)用戶的業(yè)務(wù)不夠熟悉,就要仔細(xì)研究用戶的票據(jù)資料,要理解其中的每一個(gè)細(xì)節(jié)、每一個(gè)字段的由來,對(duì)于不清楚的要點(diǎn)要及時(shí)的向用戶詢問,幾經(jīng)反復(fù),對(duì)掌握用戶真實(shí)的業(yè)務(wù)情況有很大的幫助。
4.4 每日的調(diào)研成果要以書面的形式記錄下來
每天調(diào)研結(jié)束后要及時(shí)完成調(diào)研紀(jì)要,整理當(dāng)日的信息,并且總結(jié)出仍需明確的問題,在下一次調(diào)研時(shí)同用戶確認(rèn)。這樣一來便于調(diào)研人員梳理思路,避免遺漏,二來,考慮到項(xiàng)目團(tuán)隊(duì)成員可能并不能全程參與調(diào)研,一份詳盡的調(diào)研記錄更有利于項(xiàng)目組成員之間的信息共享,全面掌握項(xiàng)目相關(guān)信息。
4.5 對(duì)需求的評(píng)估與分級(jí)
在完成對(duì)用戶需求的收集后,調(diào)研人員需要對(duì)這些信息進(jìn)行分析、評(píng)估和分級(jí)。首先,不同部門、不同層級(jí)的用戶所關(guān)心的問題不同,造成他們所提出的需求有可能是相矛盾的,這就需要調(diào)研人員通過分析,識(shí)別其中不合理的地方并盡早反饋給相關(guān)用戶進(jìn)行協(xié)調(diào)確認(rèn),并最終與各方溝通,形成統(tǒng)一、可接受的需求。其次,項(xiàng)目受成本、工期、技術(shù)等因素的制約,也許不能一次性將用戶提出的所有需求都盡善盡美的實(shí)現(xiàn),因此在編制需求說明之前,調(diào)研人員要和用戶溝通,將需求按優(yōu)先級(jí)進(jìn)行分類,確保系統(tǒng)的基本功能以及用戶重點(diǎn)關(guān)注的功能得到實(shí)現(xiàn)。
5 結(jié)論
綜上,軟件需求調(diào)研中,要準(zhǔn)確把握用戶需求是非常困難的,調(diào)研人員須認(rèn)真制定調(diào)研計(jì)劃,調(diào)研對(duì)象的選擇除了系統(tǒng)的使用者外,更要包含公司領(lǐng)導(dǎo)及中層領(lǐng)導(dǎo),以宏觀把握管理層對(duì)系統(tǒng)的核心要求。此外,調(diào)研順序要先整體后局部,將訪談法與實(shí)地觀察法相結(jié)合,根據(jù)項(xiàng)目的實(shí)際情況,還可考慮輔以問卷調(diào)查及查閱資料法,對(duì)調(diào)研過程中涉及的業(yè)務(wù)書面資料要收集全面,并記錄在調(diào)研紀(jì)要中。與用戶確認(rèn)調(diào)研成果,同時(shí)調(diào)研人員要對(duì)用戶需求進(jìn)行全面分析及優(yōu)先級(jí)的分類,在項(xiàng)目條件允許的前提下,尋求最合理的需求方案。最后,不能忽略需求規(guī)格說明書的編制,只有需求規(guī)格說明書得到用戶的認(rèn)可,才能夠開始下一階段的工作。
參考文獻(xiàn)
[1]張友生.信息系統(tǒng)項(xiàng)目管理師考試輔導(dǎo)教程(第三版)[M].電子工業(yè)出版社,2012.
[2]張海藩,呂云翔.軟件工程[M].人民郵電出版,2013.
[3]陳媛,雷婷.淺談如何做好軟件的需求分析[J].中國科技博覽,2010(04).
作者單位
中海油信息科技有限公司天津分公司 天津市300452