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