話說小P剛剛加入到一個專案組裡面,專案經理安排他做需求分析,小P一聽需求分析就有點不樂意,心裡嘀咕:“需求有什麼分析的啊?客戶要什麼給什麼唄,簡直是浪費我這個人才!”
雖然不樂意,但畢竟工作還是要做,很快小P接到了的第一個需求,客戶打電話來說“我要一隻羊”,小P一聽就覺得太簡單了,簡單的寫了一下需求“XXX客戶需要一隻羊”,然後就交給同樣是新手的小Q去處理,小Q也覺得很簡單,直接抓了一隻羊就送過去了!
結果客戶的投訴很快就來了,專案經理找到小P,黑著臉訓斥小P,但小P還覺得委屈,因為他覺得自己就是按照客戶要求做的。還好訓斥歸訓斥,經理最後安排了專案組老蝦指導小P。
老蝦是老員工了,處理過幾年的客戶需求了。小P誠惶誠恐的向老蝦請教如何分析客戶需求,沒想到老蝦簡單的給出了一個出人意料的答案“5W + 1H + 8C,簡稱就是518,我要發:)”
小P很好奇:“什麼是5W + 1H + 8C?”
老蝦開始侃侃而談:
“5W就是 Who、When、Where、What、Why”
“1H就是 How”
“8C指的是8個約束和限制,即Constraints,包括效能Performance、成本Cost、時間Time、可靠性Reliability、安全性Security、合規性Compliance、技術性Technology、相容性Compatibility”
小P一聽這麼多的英文單詞,雖然頭有點暈,但更加好奇了:“能否詳細解釋一下,下次請你吃巴西燒烤。”小P已經開始使出糖衣炮彈了。
老蝦笑道:“你小子就開始向我發糖衣炮彈了,巴西燒烤就算了,可口可樂一瓶吧”,於是老蝦開始傳授他的獨門祕笈。
1) 5W
老蝦侃侃而談:
“Who:就是需求利益相關人,我們按照需求的生命週期流程來分類,包括購買者->管理者->使用者->評估者,注意評估者一般是政府機構、第三方諮詢公司、各類組織等”;
“When:就是指需求相關的時間,這裡可以指季節,如春夏秋冬;也可以指作息時間,例如白天晚上,所有和時間相關的資訊都屬於此類”;
“Where:就是需求相關的地點,這裡可以指國家,如美國和中國;也可以指場所,例如室內、街道等”;
“What:就是需求的最終輸出,即客戶希望得到什麼東西,例如一份檔案、一個報表、一輛車”;
“Why:就是需求的驅動力,即客戶為什麼提這個需求,客戶的問題在哪裡”;
“哇塞”,小P驚歎道:“老蝦就是老蝦哈,想不到一個需求處理還有這麼多的學問!”不過驚歎歸驚歎,小P還是不是很明白,於是問道:“瞭解這些W有什麼用麼?”
老蝦喝了一口茶,笑道:“直接說有什麼用你可能不是很好理解,我給你講個笑話吧。有一個建築公司的需求分析人員收到了一個客戶需求‘給我建一棟很大的房子’,於是建築公司就建了房子,房子是歐式風格,又大又寬敞,全套宜家家居,全木地板,進口電器。。。。。簡直是應有盡有,結果客戶來收房子的時候說了一句話,讓建築公司吐血,你知道是什麼話麼?”
小P想了想,搖了搖頭。老蝦繼續:“客戶說‘先生們,我是要一棟房子給我們的長頸鹿住!’”
“哈哈哈。。。。。”小P忍不住大笑起來:“真有趣,我大概明白了。”
“哦”,老蝦也笑著問:“那你說說其它的W是怎麼理解的?”
小P也開始侃侃而談:“還是以長頸鹿的房子為例子吧”
“Who:這套房子的購買者是動物園、管理者是動物園的飼養員、使用者是長頸鹿、評估者可能是動物管理協會、衛生局等政府部門”
“When:這個可能要求一年四季了,如果長頸鹿知識運來展覽一下,那麼就是展覽的這幾個月。”
“Where:這個房子要建在動物園,而不是其它居民小區,那麼動物園肯定有一些相關的規定”
“What:要求一套房子,但不是簡單意義上的房子,而是長頸鹿住的房子,這就需要考慮高度、圍欄等”
“Why: 這個就可能動物園要臨時展覽,也可能要引進長頸鹿,也有可能是原來的長頸鹿房子破舊了”
“嗯,不錯”,老蝦讚賞的點點頭“小夥子悟性不錯,不過我要提醒你一點,這5個W中有一個是最重要的,如果這個W錯了,那麼即使其它W都正確了,那麼也是一個完美的錯誤需求,你猜猜是那個W?”
“是Who?”小P試探性的答道。
“不是,而是Why這個W”,老蝦說道:“這個是最重要的,因為這才是需求的驅動力,也是需求的價值所在。”
“我明白了”,小P若有所悟的說:“需求最終就是要解決客戶的問題的,而Why就是真正的問題所在”
“不錯,看來5W部分你已經基本掌握了,以後多多實踐就能夠提高這部分的分析水平了”老蝦讚道。“接下來給你講講How”
2) 1H
老蝦正準備開講,小P卻急急的插嘴說:“這個簡單,就是指需求怎麼實現吧?”
“不對,”老蝦道:“你的這個想法是很多人常犯的錯誤,需求分析階段的How不是指如何實現需求,而是指需求本身的流程,如何實現需求那是設計階段的事情!”
小P為自己的錯誤而感到有點不好意思,虛心請教老蝦:“需求本身還有什麼流程?”
老蝦道:“有的需求可能很簡單,客戶想要的東西也很明確;但有的需求比較複雜,涉及到多次互動,或者多個狀態變化等,這種情況就要把需求的流程描述清楚。舉個例子吧,取款是一個需求,但取款本身包含多次互動,要插卡、輸入密碼、輸入金額、列印賬單、取錢這些步驟,How就是用來描述這整個流程是如何執行的。”
“哦,”小P若有所悟的點點頭:“也就是說涉及多個動作、多個步驟、多個狀態、多個處理的需求要寫清楚How !”
“對,”老蝦讚賞的點點頭:“看你學的還挺快,我們今天就一鼓作氣講完,接下來我們來看看8C。”
3) 8C
老蝦喝了口茶潤了潤嗓子,繼續講道:
“效能Performance:主要包括響應時間和吞吐量”
“成本Cost:就是客戶願意為這個需求花多少錢”
“時間Time:指客戶要求什麼時候交付需求”
“可靠性Reliability:指系統長時間正確執行的能力,銀行、證券、電信這些公司,對當機時間要求很嚴格的”
“安全性Security:指對資訊保安的保護能力,涉及到錢、身份證、社會保險號等需求對這個要求很高”
“合規性Compliance:指滿足各種行業標準、法律法規、規範等,例如3C、SOX、3GPP、ITUT等”
“技術性Technology:有的客戶可能要求我們採用某種技術,例如客戶現在都是Windows的機器,那麼就可能要求我們基於Windows平臺開發”
“相容性Compatibility:指我們的產品與系統與客戶其它已有的產品或者系統的相容能力,要知道現在很少有產品是孤立執行的,特別是在大企業、大公司中,多個系統都是互相互動、互相配合的”
“哇塞,”小P再一次驚歎於老蝦的厲害:“老蝦果然是老蝦啊,厲害!”
“不要忙著怕我馬屁哈,”老蝦笑道:“知道為什麼要考慮這些嗎?”
小P想了想說:“不滿足這些約束,那麼即使需求做出來了也是不符合要求的。”
老蝦接道:“你說的沒錯,更專業的說法是需求分為功能屬性和質量屬性,前面的5W+1H是屬於功能屬性,而8C是屬於質量屬性,一個需求最終是否被正確的實現了,既要看功能屬性是否正確,也要看質量屬性是否正確,兩者缺一不可!”
“明白,”經過老蝦的一番講解和點拔之後,小P覺得如醍醐灌頂,終於基本掌握了需求分析的理論方法,心裡恨不得立刻就開始處理需求了!
老蝦看到小P躍躍欲試的樣子,提醒他說:“不要以為知道518就可以處理好需求了,要想處理好需求,既要知道這些方法論,也要在實踐中多練習。”
“知道了,非常感謝老蝦!”小P高興的說:“我這就去按照你剛才教我的方法把關於‘羊’的需求重新分析一遍!”
後來,小P同志把“羊”的需求又分析了一遍,這次受到了老蝦、專案經理、甚至客戶的讚揚,親愛的讀者朋友,你能按照上面的方法也幫小P重新分析一遍麼?