摘要:
說教性質(zhì)的需求分析理論,各位看了也白看,所以咱們就來一個(gè)真實(shí)個(gè)案——“訂餐系統(tǒng)”體驗(yàn)一下。
“訂餐系統(tǒng)”貌似簡單,但陷阱重重,各種需求分析的經(jīng)典場景將會(huì)一一重現(xiàn),各位做好準(zhǔn)備接受這個(gè)挑戰(zhàn)沒有?
1.1某IT公司員工的吃飯問題
咱們出來干活的,天天需要吃午飯,所謂“午飯吃不好,工作干不好”。某IT公司深知這個(gè)道理,為了讓大家方便吃午飯,由公司統(tǒng)一訂餐,并且費(fèi)用全包。
這樣的做法,大家當(dāng)然開心了,不過行政部的同事就要辛苦一點(diǎn),每天要“服侍”大家吃飯,我們看看怎樣個(gè)做法:
文員每天都要向餐廳索取最新菜單,然后拿著菜單找每個(gè)人確認(rèn)今天吃什么。
大家都確認(rèn)后,文員以電話或者傳真的方式,向餐廳訂餐。
餐廳送來午飯,文員通知大家,然后大家來取餐。
這樣的做法維持了一段時(shí)間,但是問題逐漸就來了。
員工A抱怨:我明明點(diǎn)了酸菜魚,干嘛給我送來紅燒魚。
員工B抱怨:我剛才去開會(huì)了,沒有點(diǎn)餐,怎么就這樣把我的餐給漏了?
員工C抱怨:我對中午飯要求不高,每天吃麻辣牛肉就可以了,不需要天天來問我吃啥,打斷我的工作。
......
大家都開始來責(zé)怪文員了。
文員受了一肚子的委屈,她解釋如下:
有些人寫的字不太清楚,有時(shí)會(huì)搞錯(cuò);
公司這么多人,有人上廁所有人去開會(huì),我哪能保證每次都不漏人。
我按員工C說法做了,沒有再問他了,但有一天取餐的時(shí)候,他說上火,不吃麻辣牛肉,要我換!都定了,怎么換?。勘kU(xiǎn)起見,我以后天天都問他了。
嗚嗚......
公司領(lǐng)導(dǎo)覺得問題責(zé)任不在于文員,而是這樣的訂餐方式太落后了,導(dǎo)致諸多問題!好歹是一個(gè)IT公司嘛,訂餐也需要信息化!于是領(lǐng)導(dǎo)萌生了要做一個(gè)訂餐系統(tǒng)的想法。
于是咱們的好戲就開始了......
1.2 需求分析的大道理
你非常光榮地接受了這個(gè)任務(wù),領(lǐng)導(dǎo)任命你為訂餐系統(tǒng)的項(xiàng)目經(jīng)理,你會(huì)如何展開需求分析工作呢?
可能你會(huì)這樣想:那還不容易,這么簡單的系統(tǒng),直接編碼就行了,還寫什么需求!
伙計(jì),不要沖動(dòng),看到這里請你先停止閱讀,找張紙和筆,用你自以為合適的方式列出這個(gè)系統(tǒng)的需求。
請寫完后才繼續(xù)往下看噢!
不聽話了?沒寫完就往下看?
咱們先說說需求分析的一些大道理:
首先我們需要明確項(xiàng)目的背景,我們要回答這些問題:也就是為什么會(huì)有這個(gè)項(xiàng)目?
客戶為什么想做這樣的一個(gè)項(xiàng)目?如果沒有這個(gè)項(xiàng)目會(huì)怎樣?
了解背景的基礎(chǔ)上,我們需要進(jìn)一步了解以下內(nèi)容:
1)本項(xiàng)目解決了客戶的什么問題?
2)本項(xiàng)目涉及到什么人、什么單位?
3)本項(xiàng)目的目標(biāo)是什么?
4)本項(xiàng)目的范圍是怎樣的?
5)本項(xiàng)目的成功標(biāo)準(zhǔn)是什么?
以上這些內(nèi)容,我們稱之為客戶的“需要”。
接下來,就可以定詳細(xì)的需求規(guī)格說明書了,一般我們會(huì)對功能性需求和非功能性需求都列出詳細(xì)的要求,我們這里把這些要求定義為“需求規(guī)格”。
對于功能性需求,我們往往會(huì)描述成用例圖。
對于非功能性需求,往往會(huì)對系統(tǒng)穩(wěn)定性、性能、兼容性等提出要求。
什么是背景?
背景這東西比較籠統(tǒng),簡單地說就是這個(gè)項(xiàng)目的來由,我們需要用說故事的方式講清楚項(xiàng)目的背景。
什么是需要?
需要就是客戶真正想要的東東,是高層次的需求,我們可以把需要解決的問題、關(guān)鍵涉眾、項(xiàng)目的目標(biāo)、范圍、項(xiàng)目成功標(biāo)準(zhǔn)等全部統(tǒng)稱為需要。
什么是需求規(guī)格?
需求規(guī)格是很細(xì)級別的但又沒有細(xì)到詳細(xì)設(shè)計(jì)程度的需求了,描述出系統(tǒng)與用戶是如何交互的,系統(tǒng)要滿足怎樣的一些非功能要求。
需求分析過程,無非就是由背景到需要到需求規(guī)格的過程,這個(gè)過程是螺旋前進(jìn)的。需求分析中最難解決的問