,看看有什么問題,然后用更好的方式重寫。我將對每個(gè)例子都提出自己的分析和改進(jìn)的建議。也歡迎你提出不同的見解。我所占優(yōu)的只是我知道每個(gè)需求的出處。因?yàn)槟阄叶疾皇钦嬲目蛻?,我們只能猜測每個(gè)需求的意圖。
例1.“產(chǎn)品應(yīng)在不少于每60秒的正常周期內(nèi)提供狀態(tài)信息”
這個(gè)需求是不完整的:狀態(tài)信息是什么,如何顯示給用戶。這個(gè)需求有幾處含糊。我們在談?wù)摦a(chǎn)品的哪部分?狀態(tài)信息間隔真的假定為不少于60秒?,甚者每10年顯示一條新的狀態(tài)信息也可以?也許它的意圖是消息間隔不應(yīng)超過60秒,那么1毫秒是不是太短?“每”這個(gè)詞導(dǎo)致了不確定性。問題的后果,就是需求的不可證實(shí)。
彌補(bǔ)缺陷,重寫需求的一種方法:
1、狀態(tài)信息
1.1后臺任務(wù)管理器因該以誤差上下不超過10秒的60秒間隔,在用戶界面的指定位置顯示狀態(tài)信息
1.2如果后臺進(jìn)程處理正常,那么應(yīng)該顯示任務(wù)已完成的百分?jǐn)?shù)/比
1.3任務(wù)完成時(shí),應(yīng)顯示相關(guān)的信息
1.4后臺任務(wù)出錯(cuò)應(yīng)該顯示錯(cuò)誤信息
為了分別測試和追蹤,我將其分成了多個(gè)需求。如果將幾個(gè)需求串接在一節(jié)中,在構(gòu)造和測試時(shí)就很容易漏掉一個(gè)。
例2.“產(chǎn)品應(yīng)瞬間在顯示和隱藏不可打印字符間切換”
計(jì)算機(jī)在瞬間不能做任何事,所以這個(gè)需求不切實(shí)可行。它的不完整性表現(xiàn)在沒有聲明觸發(fā)狀態(tài)切換的條件。軟件要在某些條件下更改自己?或者用戶為了模仿更改要做一些動作?而且,在文檔中改變顯示的范圍是多大:選中的文本,整個(gè)的文檔,或其他的?這也是個(gè)模糊的問題。不可打印字符合隱藏字符一樣嗎?或者是一些屬性標(biāo)志或一些控制字符?問題的后果,就是需求的不可證實(shí)。
象這樣編寫需求也許更好一些:“用戶能夠在一個(gè)由特定觸發(fā)條件激活處于編輯的文檔中在顯示和隱藏所有HTML標(biāo)記間切換”。現(xiàn)在就很清楚,不可打印字符是HTML標(biāo)記。由于沒有定義觸發(fā)條件,需求對設(shè)計(jì)沒有約束力。只有設(shè)計(jì)人員選定了觸發(fā)條件后,你才能編寫測試驗(yàn)證觸發(fā)的正確操作。
例3.“HTML分析器可以產(chǎn)生HTML標(biāo)記錯(cuò)誤報(bào)告,幫助HTML入門者快速解決錯(cuò)誤”。單詞“快速”使其模糊,沒 有加進(jìn)錯(cuò)誤報(bào)告的定義也是其部完整。我不知道,你怎么驗(yàn)證這個(gè)需求。找一個(gè)自稱為HTML的入門者,看看能不能根據(jù)錯(cuò)誤報(bào)告快速解決錯(cuò)誤?
試試這個(gè):“HTML分析器可以產(chǎn)生一個(gè)錯(cuò)誤報(bào)告,錯(cuò)誤報(bào)告包含有在被分析文件中出錯(cuò)的HTML文本和行號以及錯(cuò)誤的描述。如果沒有錯(cuò)誤,就不會產(chǎn)生錯(cuò)誤報(bào)告”。現(xiàn)在我們知道了,什么會被加到出錯(cuò)報(bào)告中,但是出錯(cuò)報(bào)告是個(gè)什么樣子,則留由設(shè)計(jì)人員決定。我們還指定了一個(gè)例外:如果沒有發(fā)現(xiàn)錯(cuò)誤,不產(chǎn)生錯(cuò)誤報(bào)告。
例4.“如果可能,主管號碼應(yīng)通過聯(lián)機(jī)校驗(yàn),而不是通過主全體主管號碼列表校驗(yàn)”。真感到絕望,什么是“如果可能”:如果技術(shù)上可行?如果主全體主管號碼列表可以聯(lián)機(jī)獲得?要避免象“應(yīng)該”的這類不確切的詞??蛻羰切枰@個(gè)功能性還是不需要。我曾看過一些需求說明書,采用諸如:應(yīng),將,應(yīng)該/將要等一些詞描述優(yōu)先級的細(xì)微差別。但我更喜歡用“應(yīng)”清楚的說明需求的意圖,指明優(yōu)先級。這是修改后的:系統(tǒng)應(yīng)校驗(yàn)輸入的主管號碼而不通過聯(lián)機(jī)的主全體主官號碼列表。如果在列表中沒有發(fā)現(xiàn)主管號碼,將會顯示一條錯(cuò)誤信息,也不接受指令。
在理解各個(gè)已完成的糟糕需求上,開發(fā)人員將會遇到的難題是:開發(fā)人員與客戶將會在審核需求,未達(dá)成共識前發(fā)生激烈的爭論。詳細(xì)檢查大的需求文檔不是一件輕松的事情。我清楚有人做過,而且他們花在檢查上的每一分鐘都是值得的。相對于開發(fā)階段和用戶的抱怨電話,在這個(gè)階段修補(bǔ)缺陷是便宜的,
編寫質(zhì)量
項(xiàng)目經(jīng)理勝任力免費(fèi)測評PMQ上線啦!快來測測你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html