對(duì)“需求分析報(bào)告”的簽名是建立在一個(gè)需求協(xié)議的基線上,因此我們對(duì)簽名應(yīng)該這樣理解:“我同意這份需求文檔表述了我們對(duì)項(xiàng)目軟件需求的了解,進(jìn)一步的變更可在此基線上通過(guò)項(xiàng)目定義的變更過(guò)程來(lái)進(jìn)行。我知道變更可能會(huì)使我們重新協(xié)商成本、資源和項(xiàng)目階段任務(wù)等事宜。”對(duì)需求分析達(dá)成一定的共識(shí)會(huì)使雙方易于忍受將來(lái)的摩擦,這些摩擦來(lái)源于項(xiàng)目的改進(jìn)和需求的誤差或市場(chǎng)和業(yè)務(wù)的新要求等。 需求確認(rèn)將迷霧撥散,顯現(xiàn)需求的真面目,給初步的需求開(kāi)發(fā)工作畫(huà)上了雙方都明確的句號(hào),并有助于形成一個(gè)持續(xù)良好的客戶與開(kāi)發(fā)人員的關(guān)系,為項(xiàng)目的成功奠定了堅(jiān)實(shí)的基礎(chǔ)。
六、點(diǎn)評(píng)需求分析誤區(qū)
要想說(shuō)什么是好的需求分析,不如說(shuō)什么是不好的需求分析,知道什么是不好的,自然也就知道了什么是好的。以下就是一些不好的情況:
(1)創(chuàng)意和求實(shí)
毋庸質(zhì)疑的,每個(gè)人都會(huì)為自己的一個(gè)新的Idea而激動(dòng)萬(wàn)分,特別是當(dāng)這個(gè)Idea受到一些根本不知道你原本要干嘛的人的驚贊時(shí)。但是請(qǐng)注意,當(dāng)你激動(dòng)得意的時(shí)候,你可能已經(jīng)忘了你原本是在描述一個(gè)需求,而不是在策劃一個(gè)創(chuàng)意、創(chuàng)造一個(gè)概念。很多剛開(kāi)始做需求分析的人員都或多或少的會(huì)犯這樣的錯(cuò)誤,陶醉在自己的新想法和新思路中,卻違背了需求的原始客觀性和真實(shí)性原則。
永遠(yuǎn)別忘了:需求不是空中樓閣,是實(shí)實(shí)在在的一磚一瓦。
(2)解剖的快感
幾乎所有搞軟件的人,做需求分析的時(shí)候,一上來(lái)就會(huì)把用戶告訴你的要求,完完整整的作個(gè)解剖,切開(kāi)分成幾個(gè)塊,再細(xì)分成幾個(gè)子塊,然后再條分縷析。可是當(dāng)用戶迷惑的看著你辛辛苦苦做出來(lái)的分析結(jié)果問(wèn)你:我想作一個(gè)數(shù)據(jù)備份的任務(wù),怎么做?這時(shí),你會(huì)發(fā)現(xiàn),需要先后打開(kāi)三個(gè)窗口才能完成這個(gè)任務(wù)。
永遠(yuǎn)別忘了:分解是必需的,但最終的目的是為了更好的組合,而不是為了分解。
(3)角度和思維
經(jīng)常聽(tīng)到這樣的抱怨:“用戶怎么可以提出這樣苛刻的要求呢?”。細(xì)細(xì)一了解,你會(huì)發(fā)現(xiàn),用戶只不過(guò)是要求把一個(gè)需要兩次點(diǎn)擊的功能,改成只有一次點(diǎn)擊。這樣會(huì)導(dǎo)致需要改變需求、改變編碼、甚至重新測(cè)試,增加工作量??墒牵绻麚Q個(gè)角度來(lái)想想,這個(gè)功能,開(kāi)發(fā)的時(shí)候只用了幾次、幾十次,可是用戶每天都要用幾百次甚 至幾千次幾萬(wàn)次,改動(dòng)一下就減少了一半的工作量,對(duì)他來(lái)說(shuō),這樣的需求難道會(huì)苛刻嗎?
永遠(yuǎn)別忘了:沒(méi)有任何需求是不對(duì)的,不對(duì)的只是你的需求分析。試著站在用戶的思維角度想想,你的需求分析就會(huì)更加的貼近用戶,更加的合理。軟件應(yīng)該是以人為本的。
(4)程序員邏輯
從程序員成長(zhǎng)為系統(tǒng)分析員是一個(gè)普遍的軌跡,但并不是一個(gè)好的程序員就必然能成為一個(gè)好的系統(tǒng)分析員。一些程序員的固化邏輯,使得他們?cè)谧鲂枨蠓治龅臅r(shí)候往往鉆進(jìn)了一些牛角里面。比如說(shuō)1/0邏輯(或者是說(shuō)黑白邏輯),認(rèn)為不是這樣就是那樣,沒(méi)有第三種情況。可實(shí)際情況往往是,在一定的時(shí)候是這樣,其它時(shí)候是那樣。又比如窮舉邏輯,喜歡上來(lái)就把所有一二三可能的情況列舉出來(lái),然后一個(gè)一個(gè)分別處理,每個(gè)占用三分之一的時(shí)間;可是實(shí)際的情況往往是,三分之一的情況占了99%的比例,其它兩種情況一年都不會(huì)遇到一次。實(shí)際中還有很多這樣的例子,不一一列舉了。
永遠(yuǎn)別忘了:需求分析和程序設(shè)計(jì)不盡相同,合理、可行是才是重要的。跳出程序設(shè)計(jì)的圈子,站在系統(tǒng)的角度上來(lái)看問(wèn)題,你的結(jié)論會(huì)截然不同。