什么是需求
需求是產品必須完成的事以及必須具備的品質。
功能性需求
功能性需求是產品必須完成的那些事,要求一定的功能和品質。
例子:培訓機構的班主任可以給所在班級學員打考勤
非功能性需求
非功能性需求是產品必須具備的屬性或品質。諸如觀感、可用性、安全性和法律限制等。
例子: 平臺用戶數為5萬人,每天登錄用戶數為10000左右,網絡的帶寬為100M帶寬。在工作時間根據資料名稱條件進行搜索,可以在3秒內得到搜索結果。
這類需求通常在產品的功能確定之后(但并非總是如此)。也就是說,一旦知道了產品要做的事情,就可以確定它的行為方式,它需要具備什么品質以及它的響應速度、可用性、可讀性和安全性。
限制條件
限制條件是全局性的需求。它們可以是對項目本身的限制,或是對產品最終設計的限制。
例子:南京平臺必須在2010年開學的第一學期上線
客戶是在說,如果顧客不能在給定的時間前使用該產品,那么它就沒有什么用了。其效果是,需求分析師必須對需求進行限制,只包括那些在最后期限前能夠提供最大價值的需求。
需求分析的重要性
背景:馮大勇吃魚時嗓子被魚刺卡住了?,F在正坐在椅子上候診。
大夫:(在桌上拿起一份掛號單,大聲的喊)馮大勇!
馮大勇:(病怏怏的樣子,邊走邊咳嗽)我是。
大夫:怎么了?(低頭整理手中的資料,自言自語,并打手勢,示意馮大勇坐下)
馮大勇:我...(咳嗽)...我今天...(咳嗽)
大夫:不用說了,我知道了。(從桌子下面拿出一個大盒子,放在桌子上)我看你適合吃這種藥。這是本院獨家開創的哮喘新藥“咽喉糖漿”,療程短,見效快,一個療程吃3盒,平均每天只需花費3塊錢。給你先開6盒吧!(邊說邊開藥方)
馮大勇非常驚訝地瞪大眼睛并止不住地彎腰大聲咳嗽,以至于把魚刺都咳出來了。馮大勇從口里掏出一條巨型魚刺,遞給醫生。醫生見到魚刺先是吃驚,而后又非常尷尬。
醫生不了解病人的需求就用藥,是草菅人命;銷售員不了解客戶的需求就進行推銷,不僅自己要徒勞無功地浪費很多口舌,更重要的是完不成銷售的目標。給客戶 推銷軟件產品,也相當于醫生給病人治病,應當首先充分、全面地了解客戶的需求所在、期望所在,然后才能帶給他一個完美的解決方案。
需求分析沒有做好的后果一般會有下列現象:
1、浪費時間和資源來滿足用戶并不需要的需求(過度實現一些功能);
2、開發出來的產品技術上先進,但不滿足用戶需求;
3、總是需要比較長的時間來達成對產品設計的共識;
4、在產品設計,開發和測試工作中對于用戶需求的解釋不一致;
5、員工會厭倦因需求不斷被重新解釋而導致的返工;
6、未說明的或不正確的需求會導致員工與用戶間的不滿;
7、不穩定的產品,用戶的不滿意對我們未來的市場造成損失;
8、浪費時間,增加成本,使得在一些投標的項目中不能低價;
1、如果你在編碼的時候發現某幾行有誤,那么改掉這幾行就行了。而如果在編碼階段發現需求有誤,那么你很可能需要改變所有代碼來適應新的需求
2、在需求階段消除問題的代價最小,而如果需求問題等到產品發布出去后才發現的話,那修復的成本就會N倍的增加。
3、穩定的需求是軟件開發的關鍵。有了穩定的需求,軟件開發工作可能從結構設計到詳細設計到代碼到測試都會平穩順利的進行。
為什么要做需求分析
1、“決策性”--要不要做這個產品,通過對市場需求的分析來決策項目是否需要立項;
2、“方向性”--良好的需求分析可以對項目人員明確方向,讓項目成員知道下面應該如何實施;
3、“策略性”--既然知道了為什么要做需求分析,就需要了解什么是需求分析,及如何做。需求分析并不是簡單的對與錯,比如說做一個產品,“做技術最先進的軟件,還是做最好賣的軟件”,這個需求有錯嗎,沒有,只能說需要從不同的地方去考慮,去定位。
如何進行需求分析
“ 需求分析”不代表“用戶要求什么就是什么”也不代表“我們能做什么就做什么”,做為需求人員,在進行需求分析的時候,首先應該明白用戶的需求,然后再加上 自己的分析處理過程,知道哪些我們現在能做,哪些我們做不了,哪些我們咬咬牙齒能做,需求人員在做需求分析的時候不能一味的成為客戶的傳話筒,要有自己的 分析。
一般可以從三個方面去考慮:
1、功能需求--產品應該完成哪些功能,即向用戶提供的功能,一般來說這個都是比較硬性的標準;
2、非功能性需求--用戶可能不能明確告訴你的一些需求,比如說性能達到什么要求,可靠性方面,響應時間,擴展性,性能方面等,這塊的內容并不 是說用戶需要,而是說不知道需要做成什么樣的,我們不能不做,做了只會對自己受益。要不然等到后期用戶使用感覺這慢,那不爽,那倒霉的還是是自己;
3、限制條件--在需求分析中需要考慮一些條件約束,規則等,比如客戶的約束,行業的約束,法律的約束以及自己的約束等,這些都需要在需求分析考慮清楚,要不然做出一款白人狂毆黑人的游戲給黑人玩,那就慘了……
測試需求分析的步驟
1 、 熟悉需求背景及商業目標:
a) 了解清楚項目發起的原因,是為了解決用戶的什么問題。
b) 當前的解決方案是不是最優的,為什么會這樣做?
2 、業務模型法:
a) 考慮本項目與外部系統的交互,劃分系統邊界(除了本項目的需求中要求做的事情,其他的都可以是外部系統,本系統和外部系統之間的交互就是系統的邊界),可以參考系統分析說明書。
b) 確定測試范圍和關注點。系統的邊界是測試的重點,特別需要關注邊界交互時的數據交互。
原文轉自:http://www.blogjava.net/qileilove/archive/2013/05/20/399492.html