一、 了解你的團(tuán)隊(duì)和其他風(fēng)險(xiǎn)承擔(dān)者
系統(tǒng)需求工程師不單純是一個(gè)技術(shù)工作者,也應(yīng)該是個(gè)很好的交際者。老外的書籍我并沒有看到過多關(guān)于“需求獲取中人際交往”的論述,大多是輕描談寫,但是在中國卻要把這個(gè)放在首位。我親眼見過甲方和乙方因?yàn)榧儌€(gè)人性格問題導(dǎo)致需求會(huì)開得很緊張的場(chǎng)面。我們能對(duì)這種現(xiàn)象避而不談嗎?我曾經(jīng)說過,在中國獲取需求最好的地方是在飯桌上,這種觀點(diǎn)老外會(huì)覺得不可思議。因此,不管是在需求獲取、分析還是管理整個(gè)過程中,系統(tǒng)需求工程師不能忽視與人打交道的過程,應(yīng)該分析每個(gè)人的優(yōu)點(diǎn)缺點(diǎn),有的放矢,為了獲取最終的需求有時(shí)要講究策略和戰(zhàn)術(shù)。在這個(gè)看似簡(jiǎn)單的問題亦或是管理心理學(xué)的問題上恐怕我們這些習(xí)慣于搞技術(shù)的人需要學(xué)習(xí)一輩子。能讓大部分人在整個(gè)系統(tǒng)需求獲取和管理中都能和平相處也是系統(tǒng)需求工程師一項(xiàng)責(zé)任。
二、 學(xué)習(xí)即待開發(fā)系統(tǒng)的全部業(yè)務(wù),了解得越深越好
通常情況下,系統(tǒng)需求工程師可能對(duì)待開發(fā)系統(tǒng)根本一點(diǎn)都不了解,隔行如隔山,熟悉目標(biāo)單位的具體業(yè)務(wù)是較大的考驗(yàn),這也要求系統(tǒng)需求工程師善于學(xué)習(xí)。不僅僅是學(xué)習(xí)具體業(yè)務(wù),還要學(xué)習(xí)行業(yè)業(yè)務(wù),因?yàn)榭蛻舸硖岢龅男枨蟛灰欢ㄊ钦麄€(gè)行業(yè)中最科學(xué)的最合理的需求,如果系統(tǒng)需求工程師能控制需求導(dǎo)向往正確合理的方向發(fā)展,其好處是多方面的,既有助于是客戶得到最好的業(yè)務(wù)需求又有利于軟件復(fù)用。
三、 獲得所有需求的模型和關(guān)聯(lián)圖
通過需求收集獲得的大多是口頭上或是文字表述的需求,這種需求映射到系統(tǒng)開發(fā)上是有偏差的,口頭上表達(dá)很容易的一項(xiàng)需求讓計(jì)算機(jī)實(shí)現(xiàn)有時(shí)會(huì)變得非常復(fù)雜。因此建立各種模型尤為重要,這種模型可能是由專業(yè)的需求分析員來做。同樣一個(gè)設(shè)計(jì)項(xiàng)目,兩個(gè)人做出來的可能完全不一樣,因?yàn)樾枨蠓治鰡T對(duì)需求的理解可能不一樣。系統(tǒng)需求工程師應(yīng)該有責(zé)任把好關(guān),細(xì)微的差別是允許的,但決不能偏離最初需求的含義。
四、 獲得接口原型和數(shù)據(jù)字典
往往在獲取需求是客戶代表說這需要一個(gè)接口,需要使用其他系統(tǒng)的某些數(shù)據(jù)。但如何實(shí)施,有沒有政策法規(guī)和技術(shù)的壁壘呢,所以系統(tǒng)需求工程師不能把問題想得過于簡(jiǎn)單。接口兩頭的系統(tǒng)經(jīng)常是黑盒與黑盒的關(guān)系,事先必須設(shè)計(jì)接口原型,有條件的情況下需要進(jìn)行測(cè)試,這些工作應(yīng)該在設(shè)計(jì)之前就做。數(shù)據(jù)字典是人類和計(jì)算機(jī)模型之間的橋梁和紐帶,也是所有風(fēng)險(xiǎn)承擔(dān)者理解這個(gè)系統(tǒng)的統(tǒng)一規(guī)約,系統(tǒng)需求工程師在深入學(xué)習(xí)這些表述的同時(shí)有義務(wù)讓所有參與者明白一些重點(diǎn)詞匯、字段的含義。
五、 時(shí)刻不忘需求的優(yōu)先級(jí)和可行性分析論證
主次不分是大忌,開發(fā)任何一個(gè)項(xiàng)目都有重點(diǎn)和非重點(diǎn),把力量向重點(diǎn)傾斜會(huì)取得令人滿意的結(jié)果,如果不分主次地盲目開發(fā),設(shè)計(jì)者費(fèi)了九牛二虎之力做出來的東西最后發(fā)現(xiàn)根本不是主要的。如果在需求分析階段就非常注意把需求分成等級(jí),哪些是整個(gè)系統(tǒng)的核心,哪些是次要的或者不影響整個(gè)業(yè)務(wù)流程的,這對(duì)隨后的開發(fā)有著重要的意義。
六、 發(fā)現(xiàn)錯(cuò)誤和遺漏立刻改正
作為系統(tǒng)需求工程師不能過于樂觀,要知道需求分析員和其他風(fēng)險(xiǎn)承擔(dān)者不是每個(gè)人都認(rèn)真仔細(xì)閱讀和分析你的所有文檔。事實(shí)上大多數(shù)情況下他們不會(huì)承擔(dān)“沒有宏觀把握需求”這個(gè)責(zé)任,因此系統(tǒng)需求工程師有責(zé)任也有必要從大局著手來發(fā)現(xiàn)宏觀架構(gòu)和細(xì)枝末節(jié)的錯(cuò)誤,可以召集出一個(gè)團(tuán)隊(duì)對(duì)設(shè)計(jì)好的全部“藍(lán)圖”召開幾次糾錯(cuò)會(huì),最好此時(shí)就把程序設(shè)計(jì)者和客戶代表也請(qǐng)過來。大家一起發(fā)現(xiàn)錯(cuò)誤和遺漏的同時(shí),也在達(dá)成一個(gè)潛在的共識(shí),同時(shí)還加深了所有參與者對(duì)該項(xiàng)目的認(rèn)識(shí)理解程度。我就見過因?yàn)橐粋€(gè)小小的錯(cuò)誤導(dǎo)致整個(gè)系統(tǒng)流轉(zhuǎn)出現(xiàn)問題的實(shí)例,其實(shí)這些錯(cuò)誤完全可以在設(shè)計(jì)之初解決。
七、 抓住亮點(diǎn)和