為什么我建議B端產(chǎn)品都要掌握UML思維?
對(duì)于B端產(chǎn)品經(jīng)理而言,UML的思維是幫助B端產(chǎn)品進(jìn)行業(yè)務(wù)調(diào)研的利器。本文結(jié)合自己的實(shí)踐經(jīng)驗(yàn),與大家分享如何應(yīng)用UML思維做B端產(chǎn)品,希望對(duì)你有所啟發(fā)。
B端產(chǎn)品們做業(yè)務(wù)調(diào)研工作時(shí),是不是經(jīng)常遇到這些情況:
1)公司業(yè)務(wù)復(fù)雜,極容易錯(cuò)漏某個(gè)重要的業(yè)務(wù)節(jié)點(diǎn),等你把原型都出好了,業(yè)務(wù)過來說他們還有XXX情況需要加入系統(tǒng)。
2)公司部門利益不一致,每個(gè)部門都覺得應(yīng)該優(yōu)先實(shí)現(xiàn)他們的需求。
前段時(shí)間我閱讀了大象希形老師的書籍《Thinking in UML》。大象希形老師是在IBM有10年豐富經(jīng)驗(yàn)的架構(gòu)師,這本書集合了他工作中的經(jīng)驗(yàn)心得。
閱讀完這本書后,我發(fā)現(xiàn)UML的思維是幫助B端產(chǎn)品進(jìn)行業(yè)務(wù)調(diào)研的利器,每一位B端產(chǎn)品都應(yīng)該具備這種思維。
在運(yùn)用這種思維之前,我也經(jīng)常陷入雜亂的業(yè)務(wù)規(guī)則、沖突的業(yè)務(wù)需求中,不知道如何處理。
但是運(yùn)用了UML思維后,我在處理公司級(jí)別的大項(xiàng)目,且截止時(shí)間僅有一個(gè)月的情況下,我保質(zhì)保量地梳理出了項(xiàng)目需求的所有脈絡(luò),推進(jìn)項(xiàng)目順利完成交付。
通過這篇文章,我把這次實(shí)踐后的經(jīng)驗(yàn)分享出來,希望能幫助到大家。
(友情提示:本篇文章干貨滿滿,讀完一遍后可以先收藏,實(shí)際運(yùn)用的時(shí)候再翻出來回顧。)
一、UML思維是什么
想要理解UML思維是什么,首先需要了解UML是什么。
UML(Unified Modeling Language)中文名稱是統(tǒng)一建模語言,又稱標(biāo)準(zhǔn)建模語言。是一種為面向?qū)ο笙到y(tǒng)的產(chǎn)品進(jìn)行說明、可視化和編制文檔的一種標(biāo)準(zhǔn)語言。
那UML思維是什么呢?
UML思維我認(rèn)為可以簡單地理解為“面對(duì)對(duì)象的方法”。
在軟件領(lǐng)域,有兩種常見的術(shù)語:面對(duì)過程的方法、面對(duì)對(duì)象的方法。
什么叫面對(duì)過程,什么叫面對(duì)對(duì)象呢?
面對(duì)過程方法認(rèn)為我們的世界是由一個(gè)個(gè)相互關(guān)聯(lián)的小系統(tǒng)組成的,就像DNA一樣,整個(gè)人體都是由這樣的小系統(tǒng)用嚴(yán)密的邏輯組合而成。并且面對(duì)過程的方法假設(shè)這個(gè)過程是穩(wěn)定的,不會(huì)改變的。
在使用“面對(duì)過程方法”做設(shè)計(jì)時(shí),我們需要找到過程的起點(diǎn),順藤摸瓜將這個(gè)過程中牽扯的因素逐一分析出來,理清這個(gè)過程中的因果關(guān)系,最后到達(dá)過程的終點(diǎn)。
而面對(duì)對(duì)象的方法認(rèn)為我們的世界是由各不相干的獨(dú)立個(gè)體組成的。過程不是這個(gè)世界的本源,過程是由一些“對(duì)象”通過特定的規(guī)則組織起來的。
如果把世界比喻成汽車,那么對(duì)象就是汽車上每個(gè)不同的零件。
不同的零件組合成了汽車,不同零件之間的組合也會(huì)達(dá)到不同的效果。如果規(guī)則允許的情況下,我們還可以將零件隨意更換。比如材質(zhì)可以從鋼鐵換成鋁合金的,來源可以從工廠A換成工廠B的。
面對(duì)對(duì)象的方法不考慮對(duì)象之間的因果關(guān)聯(lián),只是在需要的時(shí)候把他們拼合在一起,這種方法能更好地應(yīng)對(duì)我們現(xiàn)在面對(duì)的復(fù)雜業(yè)務(wù)。
二、如何把UML思維運(yùn)用到業(yè)務(wù)調(diào)研中
可能看到這里,你會(huì)覺得:“UML思維也太抽象了!我要怎么用UML思維做需求分析呢?”
其實(shí)只需要記?。合葘I(yè)務(wù)當(dāng)成是一輛汽車(整體),然后拆汽車?yán)锏牧慵ú糠郑?,最后將零件拼合起來(連接)。
一般我們常見的業(yè)務(wù)調(diào)研方法是這樣的:先明確調(diào)研目標(biāo),再選取調(diào)研對(duì)象,然后明確自己的調(diào)研方法,執(zhí)行調(diào)研計(jì)劃,最后得出結(jié)論。
可是這樣的調(diào)研方法太寬泛了,調(diào)研對(duì)象怎么選取才是正確的?是所有相關(guān)人員都要調(diào)研嗎?執(zhí)行調(diào)研計(jì)劃該怎么做才能得到用戶最準(zhǔn)確的需求?我該怎么提問?
而運(yùn)用了UML思維,業(yè)務(wù)調(diào)研流程能夠更被細(xì)化,對(duì)我們的具體工作更有指導(dǎo)意義:先是明確調(diào)研目標(biāo),再梳理業(yè)務(wù)中所有的人事物(整體),然后確定業(yè)務(wù)主角、訪談業(yè)務(wù)主角(部分),最后得出結(jié)論(連接)。
針對(duì)我細(xì)化的每一個(gè)步驟,下面我會(huì)仔細(xì)講一下怎么落地,和這么做的好處。
為了大家更好地理解,我會(huì)輔以我自己參與過的項(xiàng)目案例舉例說明,大家可以結(jié)合案例去更好地理解。
步驟1:梳理業(yè)務(wù)中所有的人、事、物
1.1 為什么這么做
為什么第一個(gè)步驟是先梳理業(yè)務(wù)的整體呢?
因?yàn)檫@么做有兩個(gè)好處:第一個(gè),了解業(yè)務(wù)的整體能讓我們更快速地把握業(yè)務(wù)背后的邏輯。第二個(gè),了解整體業(yè)務(wù)能避免我們?cè)谛枨笳{(diào)研的過程中遺漏了業(yè)務(wù)細(xì)節(jié)。
如果我們?cè)陂_頭不是梳理整體,而是梳理某個(gè)業(yè)務(wù)節(jié)點(diǎn),那我們很快就會(huì)被繁雜的業(yè)務(wù)擾亂自己真正的目標(biāo)。
之前我在為公司的會(huì)員體系搭建管理系統(tǒng)時(shí),就因?yàn)橐婚_始太著眼于具體的會(huì)員升級(jí)規(guī)則,會(huì)員購買折扣之類的需求,反而被彎彎繞繞的業(yè)務(wù)規(guī)則弄得不知道如何下手,影響了工作的開展。
并且因?yàn)槲业那腥朦c(diǎn)是某個(gè)會(huì)員規(guī)則,由這個(gè)會(huì)員規(guī)則再帶出了其他業(yè)務(wù)事件,這樣切入和梳理,非常容易遺漏了業(yè)務(wù)中某個(gè)人或某些業(yè)務(wù)事件。
直接切入具體需求的處理方式就好像在走一個(gè)迷宮,不停走進(jìn)死胡同再出來,磕磕碰碰,最終才能找到了正確的道路。可是如果我們能一開始就能從整體俯視整個(gè)迷宮,那我們就能更快地找到正確的道路。
所以通過一開始就把業(yè)務(wù)整體給梳理清楚,能夠避免我們遺漏了業(yè)務(wù)中某個(gè)人或某些業(yè)務(wù)事件,也能更方便我們了解業(yè)務(wù)的全局。
1.2 怎么落地
為了更好地梳理業(yè)務(wù)中的人、事、物,我們需要依靠一個(gè)工具——業(yè)務(wù)用例圖。
用例圖是UML中十分基礎(chǔ)和常用的圖,主要元素有業(yè)務(wù)主角和業(yè)務(wù)用例兩個(gè)。我通常用小人的圖案表示業(yè)務(wù)主角,橢圓來表示業(yè)務(wù)用例。
用例圖通常使用在我們業(yè)務(wù)調(diào)研的過程中。通過梳理業(yè)務(wù)所有的相關(guān)角色,和這些角色在業(yè)務(wù)中會(huì)進(jìn)行的活動(dòng)得出用例圖。
以我做的充值卡業(yè)務(wù)為例,通過對(duì)組織架構(gòu)和崗位職責(zé)的閱讀,可以大概了解到他的角色組成和業(yè)務(wù)用例是這樣的:
他們用業(yè)務(wù)用例圖來表示是這樣的:
通過業(yè)務(wù)用例圖,我們能更清楚地看到業(yè)務(wù)中人、事、物之間的關(guān)系,也能注意到某些事件可能存在跨多個(gè)部門的情況。遇到這種情況時(shí),需要我們?cè)谛枨笤O(shè)計(jì)時(shí)需要額外注意。
步驟2:確定關(guān)鍵角色
2.1 為什么這么做
通過上一個(gè)步驟我們已經(jīng)把業(yè)務(wù)中所有的人事物都整理出來了,但這并不代表著我們要對(duì)所有的人都進(jìn)行調(diào)研。
如果碰巧我們負(fù)責(zé)的系統(tǒng)牽涉部門較多,涉及人員也較多的情況下,往往時(shí)間和精力都不允許我們對(duì)每位用戶都進(jìn)行訪談。
最好的方法是我們找到業(yè)務(wù)流程中的關(guān)鍵角色,僅對(duì)關(guān)鍵角色進(jìn)行訪談。
提前整理出關(guān)鍵角色,也能夠讓我們對(duì)自己的系統(tǒng)目標(biāo)有更清晰的認(rèn)知,避免被一些雜亂的需求和業(yè)務(wù)流程擾亂了思路。
2.2 怎么落地
如何確定關(guān)鍵角色?
在確定關(guān)鍵角色之前,首先需要我們確定系統(tǒng)邊界。
系統(tǒng)邊界可以簡單理解為:系統(tǒng)提供哪些功能?使用角色是哪些人?
如果你的系統(tǒng)沒有明確的目標(biāo),那你就永遠(yuǎn)無法定義使用你的系統(tǒng)最關(guān)鍵的人群有哪些。
就好比我們寫一篇文章,如果我們寫的文章沒有一個(gè)明確的目標(biāo),那么我們永遠(yuǎn)也無法知道誰會(huì)愿意點(diǎn)開文章查看,誰會(huì)愿意將文章全部看完。
這里還是繼續(xù)以充值卡的業(yè)務(wù)為例子:
剛才我們已經(jīng)主要梳理出了我們業(yè)務(wù)中包含的所有人、事、物,這時(shí)候我們定位充值卡系統(tǒng)主要提供——充值卡配置、充值卡購買/退款、充值卡售賣、訂單管理、用戶消耗記錄、充值卡業(yè)績看板的功能:
那么我們可以從業(yè)務(wù)用例圖中篩選出,主要使用這些功能模塊的人群有——銷售、銷售組長、財(cái)務(wù)、用戶。
通過系統(tǒng)的邊界,我們就能確定充值卡業(yè)務(wù)的關(guān)鍵角色是銷售、銷售組長、財(cái)務(wù)、用戶。
薪酬專員雖然在我們業(yè)務(wù)流中也有被梳理出來,但是這次系統(tǒng)實(shí)現(xiàn)的功能和薪酬專員不會(huì)直接相關(guān),所以薪酬專員不算是業(yè)務(wù)主角。訪談時(shí)主要針對(duì)確定下來的角色進(jìn)行訪談就好了。
步驟3:調(diào)研關(guān)鍵角色
3.1 為什么這么做
怎樣的調(diào)研才能讓我們更準(zhǔn)確地獲取到用戶需求?
答案就是我們要以用戶視角去調(diào)研關(guān)鍵角色。
如果不以用戶視角出發(fā)會(huì)怎么樣呢?下面聽我講個(gè)小故事:
想象一下,我們生活在自行車剛被發(fā)明出來的時(shí)代。
今天我們剛領(lǐng)了工資,走入一家超市,想給自己買一輛自行車,這時(shí)候?qū)з徣藛T非常熱情的招呼了你,并向你這么描述這輛自行車:“這輛自行車是個(gè)交通工具,它由剎車系統(tǒng)和傳動(dòng)系統(tǒng)組成…”
相信我們聽到這句話一定會(huì)一臉懵,不知道自行車是做什么的,對(duì)我們有什么用處。
但如果導(dǎo)購人員換了種方式和你介紹:“自行車可以通過踩動(dòng)腳踏來讓自行車快速前進(jìn),讓你更快到達(dá)目的地。當(dāng)我們手捏著剎車,就可以使自行車停下來?!?/p>
這種介紹方式,是不是瞬間清晰了很多?
同樣的例子換成我們將要搭建的系統(tǒng)。系統(tǒng)還沒有被搭建起來,誰也不知道系統(tǒng)會(huì)長什么樣子。如果我們?cè)跇I(yè)務(wù)調(diào)研的期間就先入為主的以計(jì)算機(jī)的視角去描述系統(tǒng),可能最后得到的結(jié)果和業(yè)務(wù)想要的結(jié)果會(huì)出現(xiàn)偏差。
3.2 怎么落地
那么我們?cè)鯓尤ヒ杂脩粢暯亲稣{(diào)研呢?其實(shí)非常簡單,在訪談的過程中,我們可以重點(diǎn)詢問調(diào)研對(duì)象這四個(gè)問題:
- 您對(duì)系統(tǒng)有什么期望?
- 您打算在系統(tǒng)中做什么事情?
- 您做這件事情的目的是什么?
- 你就希望這件事情做完后有什么樣的結(jié)果?
這4個(gè)問題本質(zhì)上的思路就是詢問對(duì)方希望系統(tǒng)能幫助解決什么問題,理由是什么,和他希望最終能達(dá)成什么目的。
理由和目的能幫助我們判斷使用者操作某個(gè)動(dòng)作是否是一定要在系統(tǒng)實(shí)現(xiàn)的,這個(gè)動(dòng)作最終是不是能帶來價(jià)值的。
下面以充值卡業(yè)務(wù)來舉例,因?yàn)槲恼缕颍@里我只展示銷售組長的訪談?dòng)涗浨鞍氩糠?,但是每個(gè)人的訪談?dòng)涗浀乃悸范际且粯拥摹?/p>
我們?cè)谧鲈L談的時(shí)候不一定要照搬上面的4個(gè)問題,記住最底層我們需要了解到的信息是對(duì)方希望系統(tǒng)能幫助解決什么問題,理由是什么,和他希望最終能達(dá)成什么目的。
訪談對(duì)象:銷售組長
問:關(guān)于充值卡業(yè)務(wù),您對(duì)系統(tǒng)的期望是什么?(希望系統(tǒng)能幫助解決什么問題)
答:我希望系統(tǒng)能展示清楚充值卡的消耗明細(xì),用戶知道自己花了多少,剩余多少。我們內(nèi)部也要知道。然后我希望能清楚地展示每位銷售他售賣的充值卡金額,和他售賣的這些充值卡消耗情況。
問:我了解了。那充值卡的相關(guān)功能搭建起來后,您首先得能看到用戶的消耗明細(xì),然后和您組內(nèi)銷售售賣的充值卡消耗明細(xì)。還有其他的嗎?(希望系統(tǒng)能幫助解決什么問題)
答:還有營收計(jì)算。我們現(xiàn)在每個(gè)部門的充值卡業(yè)績分開來了,這個(gè)要統(tǒng)計(jì)清楚。
問:好的。下面我想針對(duì)這些點(diǎn)展開細(xì)聊。我想先請(qǐng)問一下,咱們知道用戶充值卡消耗明細(xì)的目的是什么嗎?我們負(fù)責(zé)銷售的同時(shí),還要負(fù)責(zé)后續(xù)的消耗嗎?(理由是什么)
答:不負(fù)責(zé)的,一個(gè)是充值卡還有錢的用戶,消費(fèi)可能更大。我們想先挖掘這些用戶。還有用戶也會(huì)找我們對(duì)消費(fèi)明細(xì),我們也要答上來。
問:明白了。充值卡的消耗明細(xì)主要還是希望幫助您達(dá)成挖掘用戶的目的對(duì)嗎?對(duì)數(shù)這個(gè)工作雖然有,但應(yīng)該不是主要工作內(nèi)容。(達(dá)成什么目的)
答:沒錯(cuò)的。我希望針對(duì)充值卡剩余金額,能分類展示。剩余較多且快到期的,我們可以優(yōu)先挖掘。剩余較少的,可以慢點(diǎn)再挖掘。
問:您剛才提到需要知道銷售售賣的充值卡消耗情況。咱們工作中還是得對(duì)自己售賣的充值卡是否消耗了負(fù)責(zé)對(duì)嗎?(理由是什么)
答:算是。這個(gè)不影響我們的績效也沒有KPI,只是財(cái)務(wù)會(huì)催促我們。
問:那這個(gè)功能的主要目的您是希望給您一個(gè)展示,提早知道消耗情況?(達(dá)成什么目的)
答:是的。(通過這里我們可以判斷,其實(shí)銷售組長只是想知道消耗情況,好配合財(cái)務(wù)部門的工作,這個(gè)需求的價(jià)值是不如第一個(gè)需求的價(jià)值大的。)
…
…
(這里的訪談內(nèi)容和上面的內(nèi)容比較相似,限于文章篇幅略過)
…
…
問:非常感謝您今天抽出時(shí)間來參與訪談。
答:不客氣的,您有問題再問我。
通過訪談,我們又能進(jìn)一步整理出每一位角色對(duì)系統(tǒng)的需求。這些需求我們也可以通過用例圖來表示:
1)用戶:用戶可以購買充值卡、在購買的時(shí)候可以選擇充值卡付款、同時(shí)可以查看自己的消耗金額、剩余金額。(經(jīng)過訪談,了解到銷售不希望用戶對(duì)充值卡可以退款這個(gè)事情感知太強(qiáng),所以相比一開始的業(yè)務(wù)用例,我們的系統(tǒng)用例則刪除掉了用戶可以退款的用例。)
2)銷售:銷售可以自行生成充值卡訂單,可以查看自己的售賣記錄,同時(shí)可以幫助用戶發(fā)起充值卡退款。
3)財(cái)務(wù):經(jīng)過訪談,了解到財(cái)務(wù)要進(jìn)行退款審核、查看和導(dǎo)出訂單、同時(shí)需要收到異常消耗的警報(bào)。
4)銷售組長:經(jīng)過訪談,了解到銷售組長要查看用戶消耗記錄,充值卡銷售情況和要在營銷活動(dòng)期間能根據(jù)本組的情況進(jìn)行一定程度的充值卡套餐配置。
相比于一開始的業(yè)務(wù)用例,這里的用例圖會(huì)更具體,細(xì)化到系統(tǒng)要實(shí)現(xiàn)的功能模塊。
步驟4:輸出結(jié)論
將整體、部分都梳理清楚后,我們需要輸出結(jié)論,也就是把每個(gè)部分連接起來了。
這時(shí)候我們需要產(chǎn)出的就是業(yè)務(wù)流程圖。如果業(yè)務(wù)體量相對(duì)不是特別大,那么到這個(gè)步驟我們系統(tǒng)的一些基本模塊也可以產(chǎn)出來了。
通過最后產(chǎn)出的業(yè)務(wù)流程圖,這時(shí)候我們?cè)O(shè)計(jì)的框架就已經(jīng)出來了,前期準(zhǔn)備的工作到這里也基本告一段落,下面可以開始梳理具體的需求內(nèi)容了。
寫在最后
相信你通過閱讀我的文章,能夠大致了解利用UML思維去做需求調(diào)研的主要流程和要點(diǎn)。
我們?cè)僖黄鸹仡櫹?,利用UML的思維去做業(yè)務(wù)調(diào)研主要為以下四個(gè)步驟:
- 梳理業(yè)務(wù)中所有的人事物。利用業(yè)務(wù)用例圖整理起來,并且要和業(yè)務(wù)方過一下是否還有遺漏。
- 確定業(yè)務(wù)主角。從梳理出來的人事物中,利用系統(tǒng)邊界的概念,篩選出業(yè)務(wù)主角。
- 訪談業(yè)務(wù)主角。從用戶的角度出發(fā),詢問用戶對(duì)系統(tǒng)的期望。
- 輸出調(diào)研結(jié)論。輸出業(yè)務(wù)流程圖、系統(tǒng)的包含的大體模塊。顆粒度可以粗一些。
以上就是我利用UML的思維細(xì)化了自己業(yè)務(wù)調(diào)研的經(jīng)驗(yàn)分享,希望對(duì)大家同樣能有啟發(fā)。
因?yàn)槲乙彩俏蛔x者,對(duì)書中概念的理解可能存在偏頗的地方,歡迎大家找我一起討論。
本文由 @Thea小里 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
為什么不產(chǎn)出類圖呢?
因?yàn)樵谖业臉I(yè)務(wù)場景下可以省略,但是這個(gè)需要根據(jù)自身公司業(yè)務(wù)情況來哈。
講究~
????????
學(xué)到了
太好啦,希望對(duì)你有幫助!
寫的很好,點(diǎn)贊。個(gè)人理解,所謂UML思維,其實(shí)就是運(yùn)用UML設(shè)計(jì)方法論(結(jié)構(gòu)化)來思考和做事情。
是的呢!結(jié)構(gòu)化是一個(gè)很實(shí)用的思維方式。贊!
寫的真不錯(cuò)~
感謝認(rèn)可!??