需求詳解

1. 引言

不少人像老黃牛同樣辛辛苦苦作了不少年軟件開發,但卻連「需求」究竟是什麼都不清楚。固然,沒有人本身會認可這點!ui

2. 什麼是需求?

凡事都有一個開頭,軟件項目也不例外,對於軟件項目來講,需求就是項目最開始的一個輸入。翻譯

參考維基百科,需求定義以下:ip

In systems engineering, a requirement can be a description of what a system must do, referred to as a Functional Requirement.開發

簡單翻譯一下就是:需求即系統須要作什麼。rem

但正是這個簡單的定義,讓不少人陷入了陷阱:需求即功能。產品

單純從字面意思來理解這樣也是沒有問題的:系統須要作什麼,固然就是系統要提供什麼功能了!io

3. 需求樣例

咱們來看一個簡單的例子:ATM自動取款機。require

有的人說,ATM的功能是取款、存款、查詢餘額,因此針對ATM的需求應該是:取款、存款、查詢餘額;軟件

有的人說,ATM的功能有不少:識別卡、密碼認證、點鈔、驗鈔、查詢餘額、跨行取款等,因此針對ATM的需求應該是:識別卡、密碼認證、點鈔、驗鈔、查詢餘額、跨行取款密碼

  • 若是你是ATM購買商,你認爲哪一種纔是你的需求?

  • 若是你是ATM製造者,你認爲哪一種纔是你的需求?

  • 若是你是ATM使用者,你認爲哪一種纔是你的需求?

可能大部分人都會支持第二種,緣由很簡單:取款也要密碼認證、存款也要密碼認證,因此密碼認證是一個需求,而不是分到兩個需求裏面。

並且第二種方式劃分需求有一個好處:系統最後提供的功能和需求基本上是一一對應的。

看起來很美妙,但其實咱們忽略了一個問題:採用第二種方式的主要緣由是咱們對ATM機很熟悉了!

但若是換一個身份,好比說你是一個只識字的農民工,你對ATM機的要求會是「識別卡、密碼認證。。。。。。」這樣專業的需求麼?

確定不會,你的需求應該是「取款」、「存款」、「查詢餘額」。

咱們繼續打破砂鍋問到底:爲何農民工兄弟的需求確定是「取款」、「存款」、「查詢餘額」,而不是「識別卡」、「密碼認證」、「點鈔」。。。。。。?

咱們假設一下,假如農民工兄弟對ATM的需求是「點鈔」,那麼就會出現這樣滑稽的場景:他常常拿着卡去ATM機,讓ATM機點一下鈔;又或者他的需求是「密碼認證」,那麼他常常拿着卡去ATM機驗證一下密碼。

你固然不會看到這樣的場景,農民工兄弟也不會有這樣的需求,他只管能取到錢便可,由於取到錢他就能夠拿錢去花了,至於取錢的過程當中管你是密碼認證、點鈔仍是驗鈔,說的搞笑一點:他更但願把卡插進去,錢就自動吐出來並且不受限額。

4. 小結

相信到這裏,你已經可以明白需求和功能的差異了,咱們總結一下:

  • 需求:對客戶來講有價值的事情

  • 功能:系統爲了實現客戶價值而提供的能力

所以,區別是需求仍是功能的方法很簡單了:只要判斷是否對客戶有價值。

咱們能夠舉更多例子來證實這個方法:

  • POS機:「買單」是需求,「商品掃描」、「金額彙總」、「收銀」等是功能,由於買完單後顧客就能將產品拿走;

  • 汽車:「駕駛」是需求,「發動機」、「剎車」、「加速」等是功能;

  • 打印機:「打印」是需求,「進紙」、「設定」、「與電腦鏈接」等是功能;

。。。。。。

(有興趣的朋友能夠本身多想一想)

相關文章
相關標籤/搜索