讀《有效需求分析》
最近在一個(gè)技術(shù)群里看到張逸大佬強(qiáng)力推薦一本關(guān)于需求分析的書《有效需求分析》,于是在 Kindle 上下單了,讀完后有一種相見恨晚的感覺。
本書特點(diǎn)
從書中的一些案例可以看出,作者擅長(zhǎng) ToB 軟件的需求分析,如果您是從事的 ToB 軟件的相關(guān)工作,那閱讀本書時(shí)會(huì)有更多的共鳴。
書中有大量的案例,閱讀起來不僅不枯燥,反倒覺得挺有意思,特別是一些日常生活中例子,能引發(fā)我們更多的思考。
每一個(gè)章節(jié)都有能落地的產(chǎn)物輸出,所有的產(chǎn)物整合在一起就是完整的需求文檔,可以讓你不僅知道一些理論,還知道怎么落地。
我們常見的問題
1、辛辛苦苦開發(fā)的系統(tǒng),跟客戶演示的時(shí)候達(dá)不到客戶的預(yù)期;
2、上線后,客戶反復(fù)提出“變更”,從客戶視角來看是功能沒有按要求完成,從開發(fā)的視角感覺客戶在百般刁難;
3、邊界難以控制,已經(jīng)按照“要求”完成了,客戶還不斷提出新的東西。
讀完這本書可以立即解決這些問題嗎?答案肯定是不能,但能給我們帶來啟發(fā)和思考,能讓我們?cè)诮鉀Q這些問題的路上往前邁進(jìn)一步。
書中的內(nèi)容不少,本文只是我結(jié)合自己的認(rèn)知把覺得重要的點(diǎn)展開來說說。
什么是需求
什么是需求?書中給出了一個(gè)非常精煉的回答:現(xiàn)實(shí)和期望之間的差距。就是中間這個(gè)差距需要我們?nèi)ニ伎肌⒄{(diào)研,這是一個(gè)迭代的過程,直到最后達(dá)到期望甚至超過期望,如果用了一些錯(cuò)誤的方法,或者被客戶牽著鼻子走,最后結(jié)果可能還不如現(xiàn)實(shí)。
方案不是需求
開篇例舉的一個(gè)生活中的小例子充分說明了什么是需求,什么是方案:
晚上小孩吵著說要吃餅干,最后給了點(diǎn)面包,小孩吃完就乖乖睡著了,在這里吃餅干是方案,需求是小孩的肚子餓了,當(dāng)沒有餅干時(shí),可以使用第二種方案,給他吃面包也可以解決這個(gè)需求問題。
如果客戶的接口人稍微懂點(diǎn)技術(shù),在做需求調(diào)研時(shí)就很容易提出方案級(jí)的需求,這時(shí)就需要警惕了,需要用一些問題來深挖背后的真實(shí)需求,比如:
為什么會(huì)有這樣一個(gè)項(xiàng)目,是因?yàn)橥袠I(yè)都有?還是因?yàn)閮?nèi)部管理需要? 這個(gè)系統(tǒng)是哪些角色的人用?能解決他們什么問題? 沒有這個(gè)系統(tǒng)的時(shí)候現(xiàn)在是怎么來解決這些問題的? 用戶使用這功能的頻率是多少?這功能如果做砸了,對(duì)誰影響最大?
如果能挖到真實(shí)的需求,就可以根據(jù)情況來制定最優(yōu)方案了。如果我們“完美”地滿足了客戶提出的“方案級(jí)需求”,最終的結(jié)果未必能讓客戶滿意,客戶通常善于發(fā)現(xiàn)問題,提出問題,但給出的方案往往不能完美解決問題。
在公司的內(nèi)部其實(shí)也存在著這種問題,比如項(xiàng)目團(tuán)隊(duì)的同事在遇到產(chǎn)品滿足不了的功能時(shí),需要給產(chǎn)品提需求,經(jīng)常看到的需求描述是:
在某某功能模塊添加一種按鈕類型; 在某某地方需要多一種搜索條件的配置。
這些都是方案,而不是需求,項(xiàng)目的同事根據(jù)自己的理解和認(rèn)知完成了從需求到方案的轉(zhuǎn)換,而這個(gè)方案很多時(shí)候并不是最優(yōu)。
所以每每收到這種“需求”時(shí),會(huì)馬上跟項(xiàng)目的同事反復(fù)確認(rèn)客戶到底想要什么,了解到真實(shí)背景后,才能結(jié)合產(chǎn)品的功能給出合適的解決方案。
干系人
任何企業(yè)準(zhǔn)備上一套系統(tǒng)有各種各樣的原因,可能是為了提高生產(chǎn)效率、提高協(xié)同辦公效率,也可能是為了做一些政績(jī)。所以針對(duì)不同的場(chǎng)景,我們首先需要找出這個(gè)系統(tǒng)的相關(guān)干系人。
識(shí)別干系人有幾個(gè)重要的判斷標(biāo)準(zhǔn):
是否是關(guān)鍵部門復(fù)雜人? 是否對(duì)項(xiàng)目有一票否決權(quán)? 系統(tǒng)上線是否對(duì)大量的使用者產(chǎn)生負(fù)面影響?比如:工作模式改變等 識(shí)別出的人員是否與項(xiàng)目有直接關(guān)系?
如果能夠準(zhǔn)確的識(shí)別關(guān)鍵關(guān)系人,還需要對(duì)關(guān)系人進(jìn)行分析:
同一類如果有多個(gè)干系人,需要選出最有代表性的一個(gè); 不同干系人之間是否有利益沖突; 干系人的專業(yè)背景、興趣愛好(方便日后溝通); 不同的干系人在各自角色上希望項(xiàng)目能解決什么問題? 對(duì)項(xiàng)目的落地有什么擔(dān)心?
做項(xiàng)目不光是要做好事,關(guān)鍵還要能搞定人,能讓重點(diǎn)干系人感受到系統(tǒng)的價(jià)值,項(xiàng)目就容易成功。
我認(rèn)為項(xiàng)目的前期最核心的就是上面兩個(gè)步驟:挖出核心訴求和找出重點(diǎn)干系人。剩下的就是分解需求進(jìn)行開發(fā)實(shí)現(xiàn)了。不同的團(tuán)隊(duì)對(duì)需求分解和開發(fā)實(shí)現(xiàn)肯定都有適合自己的方式和方法,具體可以去閱讀本書,下面說說在項(xiàng)目需求調(diào)研過程中經(jīng)常會(huì)忽略的非功能性需求。
非功能性需求
非功能性需求通常指,安全性、性能、擴(kuò)展性、穩(wěn)定性等等,這些非常重要,但也是最容易被我們忽視掉的。
非功能性需求針對(duì)不同的客戶或系統(tǒng)會(huì)有不同的側(cè)重點(diǎn),比如:
費(fèi)控系統(tǒng)對(duì)計(jì)算的準(zhǔn)確性要求高,接口需要做冪等處理等等; 客戶是集團(tuán)性質(zhì)的企業(yè),而且系統(tǒng)是全員使用,并發(fā)量大,性能上有較高的要求; 一些合資企業(yè),系統(tǒng)需要進(jìn)行多語言支持,可能還會(huì)進(jìn)行跨地域部署; 事業(yè)單位、政府機(jī)構(gòu)對(duì) UI 層面會(huì)有獨(dú)到的見解; 公檢法司的項(xiàng)目中會(huì)對(duì)安全性要求比較高,包括可能有些數(shù)據(jù)列需要加密。
這些非功能性的需求在調(diào)研階段應(yīng)該和功能性需求一起同步進(jìn)行,根據(jù)客戶的特征進(jìn)行分析和識(shí)別,最終作為開發(fā)交付的一個(gè)檢查項(xiàng)進(jìn)行檢查。
上面列舉的都是和系統(tǒng)本身相關(guān)的一些要求,除此之外,還有很多的外在因素也是在前期調(diào)研時(shí)就應(yīng)該考慮的,比如:
客戶希望上線的時(shí)間節(jié)點(diǎn)? 如果功能較多,能不能進(jìn)行分期交付? 客戶有沒有明確的技術(shù)上的要求,比如不能使用 Windows 部署,或者開發(fā)語言只能使用 Java? 有沒有歷史系統(tǒng)需要做數(shù)據(jù)遷移?如果有需要達(dá)到什么樣的目標(biāo),是整體切換還是需要雙系統(tǒng)并存一段時(shí)間進(jìn)行逐步替換? 是否需要和第三方系統(tǒng)進(jìn)行對(duì)接?如果需要,需要知道第三方系統(tǒng)的接口人信息以及接口規(guī)范。
現(xiàn)在各種各樣的書籍琳瑯滿目,感興趣的書買了,就有機(jī)會(huì)去閱讀,這是我一直以來的一個(gè)觀點(diǎn),做需求每個(gè)項(xiàng)目負(fù)責(zé)人都有自己的方法,但多讀書學(xué)習(xí)一些方法和技巧,沒準(zhǔn)哪天就能用上了。再說了,多讀書,往上可以提升我們的格局和眼界,往下也能夯實(shí)和固化我們的能力。
希望本文對(duì)您有所幫助!
