要你的講解。這時(shí),請耐心一些對待需求和需求的精化工作過程中的反復(fù),因?yàn)樗侨藗兘涣髦械姆浅W匀坏默F(xiàn)象,何況這對軟件產(chǎn)品的成功極為重要。
3:準(zhǔn)確而周詳?shù)卣f明需求
編寫一份清晰、準(zhǔn)確的需求文件是非常困難的。由于處理細(xì)節(jié)問題不僅煩人而且又耗時(shí),故非常容易留下模糊不清的需求。不過,在研發(fā)過程中,必須得解決這種模糊性和不準(zhǔn)確性。而你恰是為解決這些問題作出決定的最佳人選。不然的話,你就只好靠研發(fā)人員去正確猜測了。在需求規(guī)格說明中暫時(shí)加上待定(to be determined, TBD也可采用漢語拼音略寫“DQD:待確定”)的標(biāo)志是個(gè)不錯(cuò)的辦法。用該標(biāo)志可指明了哪些需要進(jìn)一步探討、分析或增加信息的地方。不過,有時(shí)也可能因?yàn)槟硞€(gè)特別需求難以解決或沒有人愿意處理他而注上TBD標(biāo)志。盡量將每項(xiàng)需求的內(nèi)容都闡述清晰,以便分析人員能準(zhǔn)確的將其寫進(jìn)軟件需求規(guī)格說明中。如果你一時(shí)不能準(zhǔn)確表述,那就得允許獲取必要的準(zhǔn)確信息這樣一個(gè)過程。通常使用所謂的原型技術(shù)。通過研發(fā)的原型,你能同研發(fā)人員一起反復(fù)修改,不斷完善需求定義。
4:及時(shí)地作出決定
正如一位建筑師為你修建房屋,分析人員將需求你做出一些選擇和決定。這些決定包括來自多個(gè)用戶提出的處理方法或在質(zhì)量特性沖突和信息準(zhǔn)確度中選擇折衷方案等。有權(quán)做出決定的客戶必須積極地對待這一切,盡快做處理、做決定。因?yàn)檠邪l(fā)人員通常只有等你做出了決定才能行動(dòng),而這種等待會延誤項(xiàng)目的進(jìn)展。
5:尊重研發(fā)人員的需求可行性及成本評估
所有的軟件功能都有其成本價(jià)格,研發(fā)人員最適合預(yù)算這些成本(盡管許多研發(fā)人員并不擅長評估預(yù)測)。你所希望的某些產(chǎn)品特性可能在技術(shù)上行不通,或?qū)崿F(xiàn)他要付出極為高昂的代價(jià)。而某些需求試圖在操作環(huán)境中需求不可能達(dá)到的性能或試圖得到一些根本得不到的數(shù)據(jù),研發(fā)人員會對此作出負(fù)面的評價(jià)意見,你應(yīng)該尊重他們的意見。有時(shí),你能重新給出一個(gè)在技術(shù)上可行、實(shí)現(xiàn)上便宜的需求,例如,需求某個(gè)行為在“瞬間”發(fā)生是不可行的,但換種更具體的時(shí)間需求說法(“在50ms以內(nèi)”,但若沒有準(zhǔn)確的技術(shù)分析不能輕易下結(jié)論),這就能實(shí)現(xiàn)了。
6: 劃分需求優(yōu)先級別
大多數(shù)項(xiàng)目沒有足夠的時(shí)間或資源來實(shí)現(xiàn)功能性的每個(gè)細(xì)節(jié)。決定哪些特性是必要的,哪些是重要的,哪些是好的,是需求研發(fā)的主要部分。只能由你來負(fù)責(zé)設(shè)定需求優(yōu)先級,因?yàn)檠邪l(fā)者并不可能按你的觀點(diǎn)決定需求優(yōu)先級。研發(fā)者將為你確定優(yōu)先級提供有關(guān)每個(gè)需求的花費(fèi)和風(fēng)險(xiǎn)的信息。當(dāng)你設(shè)定優(yōu)先級時(shí),你幫助研發(fā)者確保在適當(dāng)?shù)臅r(shí)間內(nèi)用最小的開支取得最佳的效果。在時(shí)間和資源限制下,關(guān)于所需特性能否完成或完成多少應(yīng)該尊重研發(fā)人員的意見。盡管沒有人愿意看到自己所希望的需求在項(xiàng)目中未被實(shí)現(xiàn),但畢竟是要面對這種現(xiàn)實(shí)的。業(yè)務(wù)決策有時(shí)不得不依據(jù)優(yōu)先級來縮小項(xiàng)目范圍或延長工期,或增加資源,或在質(zhì)量上尋找折衷。
7:評審需求文件和原型
正如我們將在第1 4章討論的,無論是正式的還是非正式的方式,對需求文件進(jìn)行評審都會對軟件質(zhì)量提高有所幫助。讓客戶參和評審才能真正鑒別需求文件是否的確完整、正確說明了期望的必要特性。評審也給客戶代表提供一個(gè)機(jī)會,給需求分析人員帶來反饋信息以改進(jìn)他們的工作。如果你認(rèn)為編寫的需求文件不夠準(zhǔn)確,就有義務(wù)盡早告訴分析人員并為改進(jìn)提供建議。通過閱讀需求規(guī)格說明,非常難想象實(shí)際的軟件是什么樣子的。更好的方法是先為產(chǎn)品研發(fā)一個(gè)原型。這樣你就能提供更有價(jià)值的反饋信息給研發(fā)人員,幫助他們更好地理解你的需求。必須認(rèn)識到:原型并非是個(gè)實(shí)際產(chǎn)品,但研發(fā)人員能將其轉(zhuǎn)變、擴(kuò)充成功能齊全的系統(tǒng)。