產(chǎn)品設(shè)計(jì)之從業(yè)務(wù)到產(chǎn)品
編輯導(dǎo)語(yǔ):作為產(chǎn)品經(jīng)理,應(yīng)該都經(jīng)歷過(guò)這樣的過(guò)程,從業(yè)務(wù)需求推導(dǎo)產(chǎn)品需求。那么,我們?cè)撊绾螐臉I(yè)務(wù)需求推導(dǎo)出產(chǎn)品需求?作者梳理了相關(guān)流程,希望對(duì)你有所幫助。
注:產(chǎn)品設(shè)計(jì)屬于產(chǎn)品工作的中間環(huán)節(jié),在它的前面還有規(guī)劃等工作,我們這里說(shuō)的產(chǎn)品設(shè)計(jì)的工作邊界是指從調(diào)研分析完,如何從0到1設(shè)計(jì)出產(chǎn)品功能,并能指導(dǎo)后續(xù)的開(kāi)發(fā)工作。
今天這篇推文按理說(shuō)應(yīng)該屬于產(chǎn)品設(shè)計(jì)的第一篇,先講從業(yè)務(wù)需求如何推導(dǎo)出產(chǎn)品需求。
我們先放上產(chǎn)品設(shè)計(jì)過(guò)程的基本原則:
- 從具體到抽象
- 從整體到局部
- 從高層到底層
下面我們來(lái)看看具體的設(shè)計(jì)過(guò)程,你將看到如何運(yùn)用這些設(shè)計(jì)原則。
老規(guī)矩,我們先從日常的例子說(shuō)起。
企業(yè)辦公時(shí),我們最常用的OA,ERP系統(tǒng),用戶看到的一個(gè)個(gè)功能菜單及頁(yè)面,是怎么來(lái)的?
淘寶購(gòu)物時(shí),我們看到的首頁(yè)、商品詳情頁(yè)、購(gòu)物車頁(yè)又是怎么來(lái)的?
上面我們舉的這2個(gè)例子,所用到系統(tǒng)都屬于信息系統(tǒng)這一類(根據(jù)徐鋒在《軟件需求最佳實(shí)踐》對(duì)2B系統(tǒng)的分類,除信息化信息,還有嵌入式系統(tǒng)等)。根據(jù)信息工程的定義,信息系統(tǒng)是人、數(shù)據(jù)、過(guò)程和接口的組合,以處理信息流為目的的人機(jī)一體化系統(tǒng)。這類系統(tǒng)也是大家最常接觸的系統(tǒng)。
這類系統(tǒng)有個(gè)特點(diǎn),把我們生產(chǎn)、生活的流程、場(chǎng)景搬到系統(tǒng)上。仔細(xì)觀察,你會(huì)發(fā)現(xiàn)上面說(shuō)的例子都離不開(kāi)流程。所以,先梳理清楚線下的業(yè)務(wù)流程,是我們線上化的第一步。
一、從業(yè)務(wù)流程到系統(tǒng)流程
完成需求調(diào)研與分析后的第一步就是找出業(yè)務(wù)主干。一家企業(yè)的內(nèi)部運(yùn)轉(zhuǎn)是由公司戰(zhàn)略目標(biāo)分解為每年的經(jīng)營(yíng)目標(biāo),由經(jīng)營(yíng)目標(biāo)又拆解為每個(gè)部門的工作目標(biāo),而完成這些工作目標(biāo)在每個(gè)部門內(nèi)由不同的角色的人按既定的流程來(lái)實(shí)現(xiàn)。而有不少工作還常常是跨部門的協(xié)作。
注意:信息系統(tǒng)是服務(wù)于目標(biāo)分解后的具體工作。但沉淀于系統(tǒng)中的數(shù)據(jù),又反過(guò)來(lái)可以輔助目標(biāo)的制定。
一般來(lái)說(shuō),大部分中小型企業(yè)都有自己的制度、流程。我們可以請(qǐng)需求單位先提供現(xiàn)行的業(yè)務(wù)流程。
為了便于理解,我放上兩張圖。
圖1 一個(gè)從線索到交付的業(yè)務(wù)流程圖
圖2 ERP系統(tǒng)的各模塊的數(shù)據(jù)流圖
業(yè)務(wù)流程描述的對(duì)象是某一具體業(yè)務(wù),而系統(tǒng)數(shù)據(jù)描述的對(duì)象是業(yè)務(wù)背后的數(shù)據(jù)流。
這里要特別提醒一點(diǎn):業(yè)務(wù)流程是用于原本的線下實(shí)操,當(dāng)它要放到線上,往往因?yàn)槠渲械牟糠只顒?dòng)無(wú)法線上化或者線上化時(shí)發(fā)現(xiàn)需要增加一些管控環(huán)節(jié),所以常常需要對(duì)其進(jìn)行一定的裁剪、優(yōu)化。
從業(yè)務(wù)流程圖到系統(tǒng)流程圖,是一個(gè)從具體到抽象的過(guò)程。通過(guò)描述的對(duì)象的轉(zhuǎn)化,系統(tǒng)流程圖剝離掉具體業(yè)務(wù),抽象出數(shù)據(jù)的流動(dòng)、加工和存儲(chǔ)。
以圖1為例,從業(yè)務(wù)流程來(lái)看,分為經(jīng)銷商/直接用戶、公??蛻?,如以圖2的系統(tǒng)流程圖來(lái)表示,可以用客戶資料來(lái)統(tǒng)一表示。因?yàn)閺臄?shù)據(jù)的視角來(lái)看,經(jīng)銷商、公??蛻舳际强蛻簟?/p>
你可以會(huì)疑問(wèn),為什么要這樣做?我們把業(yè)務(wù)流程圖直接1:1還原到系統(tǒng)上不香嗎?
接著說(shuō)說(shuō)這樣做的目的。
要講清楚目的,就需要先說(shuō)說(shuō)數(shù)據(jù)和信息的關(guān)系:數(shù)據(jù)是反映客觀事物屬性的記錄,是信息的具體表現(xiàn)形式。數(shù)據(jù)經(jīng)過(guò)加工處理之后,才成為信息,如下圖:
信息系統(tǒng)是提取了具體業(yè)務(wù)背后有效的數(shù)據(jù),加工成信息,并去掉了冗余的數(shù)據(jù)。這樣的信息系統(tǒng),數(shù)據(jù)才有利用的價(jià)值,系統(tǒng)效率也更高。
講完抽象,我們接下來(lái)再看看抽象之后,我們又要如何一步步還原、滿足原本的業(yè)務(wù)需求?
二、用戶在系統(tǒng)里干什么?
我們可以借助用例圖來(lái)展示用戶希望系統(tǒng)能干什么?
圖3 一個(gè)電商系統(tǒng)的用例圖
你如果認(rèn)真觀察會(huì)發(fā)現(xiàn)上圖和圖1的業(yè)務(wù)流程圖有部分相似之處。
相似點(diǎn):兩者都有參與者和活動(dòng)。
差異點(diǎn):業(yè)務(wù)流程圖主要描述的是一個(gè)業(yè)務(wù)從開(kāi)始到結(jié)束的活動(dòng)順序,而用例圖主要描述的是參與者要在系統(tǒng)做的某些事。
由此可以推測(cè),管理層更關(guān)注業(yè)務(wù)流程圖,而執(zhí)行層更關(guān)注用例圖。
不論是業(yè)務(wù)流程圖還是用例圖,它們的活動(dòng)的粒度都是可以逐步分層的,可以先畫整體,再畫具體部分。
看到這里,你可能會(huì)有疑問(wèn):業(yè)務(wù)流程圖和用例圖有什么關(guān)系?
徐鋒在《有效需求分析》一書中,指出用例圖就是從業(yè)務(wù)流程圖推導(dǎo)出來(lái)。這個(gè)推導(dǎo)的過(guò)程是這樣的:業(yè)務(wù)流程圖如上面所說(shuō)是線下一個(gè)個(gè)業(yè)務(wù)的完整活動(dòng)流,在線上化的過(guò)程我們要識(shí)別哪些活動(dòng)是系統(tǒng)可實(shí)現(xiàn)?然后再通過(guò)用例圖表示各種角色未來(lái)要在系統(tǒng)做什么(系統(tǒng)需具備哪些功能)?
注意:用例圖在業(yè)務(wù)流程圖的活動(dòng)的基礎(chǔ)上,增加了不同用例之間的關(guān)系,如下圖4:
不論是借書還是還書用例都包含了需要先驗(yàn)證讀者身份這個(gè)用例,而超期罰款是還書可能發(fā)生的擴(kuò)展用例。
通過(guò)用例之間的關(guān)系,進(jìn)一步厘清了未來(lái)系統(tǒng)開(kāi)發(fā)過(guò)程中的功能關(guān)聯(lián)性。這是原來(lái)的業(yè)務(wù)流程圖所沒(méi)有的。
三、系統(tǒng)應(yīng)具備哪些功能和內(nèi)容?
前面說(shuō)了業(yè)務(wù)流程,接下來(lái)我們要在業(yè)務(wù)流程的基礎(chǔ)上,繼續(xù)找出實(shí)體。
先解釋下什么是實(shí)體?
實(shí)體是在實(shí)際問(wèn)題中客觀存在的,并且可以相互區(qū)別的事物或者概念??梢跃唧w到人、對(duì)象、概念、事件。我們這里說(shuō)的實(shí)體是在概念數(shù)據(jù)模型階段的高層描述(可以理解為在人的頭腦中的一個(gè)名詞概念,比如“員工”),可對(duì)應(yīng)未來(lái)在物理數(shù)據(jù)模型階段(指數(shù)據(jù)庫(kù)設(shè)計(jì))要存儲(chǔ)到數(shù)據(jù)庫(kù)的信息。
關(guān)于找出實(shí)體的方法,推薦可通過(guò)前面說(shuō)的業(yè)務(wù)流程圖來(lái)找出實(shí)體,實(shí)體一般就在流程的每個(gè)活動(dòng)的名詞上。比如“下單”這個(gè)活動(dòng),這里的“訂單”就是我們說(shuō)的實(shí)體。
這些實(shí)體就是未來(lái)系統(tǒng)建設(shè)要存儲(chǔ)的有用信息。
而要表達(dá)實(shí)體及其關(guān)系,我們可以通過(guò)ER圖,我從【人人都是產(chǎn)品經(jīng)理】上找了到作者小狼人分享的ER圖:
圖5上是買家下單ER圖,下是其中買家這個(gè)實(shí)體的屬性。
通過(guò)這個(gè)ER圖,我們可以看到下單這個(gè)業(yè)務(wù)流程,涉及了買家、商品、交易訂單、子訂單(比如不同商家拆單)、支付信息這5個(gè)實(shí)體。圖中還表現(xiàn)出了這些實(shí)體間的聯(lián)系關(guān)系,比如一個(gè)買家可能有多張訂單。最后還看到了每個(gè)實(shí)體的屬性信息。
有了ER圖,就為后面的數(shù)據(jù)庫(kù)設(shè)計(jì)提供了設(shè)計(jì)依據(jù)。
從ER圖到數(shù)據(jù)庫(kù)設(shè)計(jì),是一個(gè)從高層到低層的設(shè)計(jì)過(guò)程。
四、用戶與系統(tǒng)到底如何互動(dòng)?
一開(kāi)始我們對(duì)信息系統(tǒng)的定義提到信息系統(tǒng)是以處理信息流為目的的人機(jī)一體化系。我們接著看看參與者和系統(tǒng)的信息互動(dòng)。
這里我們會(huì)用到一個(gè)叫時(shí)序圖的工具。
圖6 學(xué)生在系統(tǒng)中查詢成績(jī)成績(jī)時(shí),與系統(tǒng)發(fā)生的信息流
上圖能直觀地反應(yīng)學(xué)生這個(gè)角色,在不同實(shí)體對(duì)象間的信息流轉(zhuǎn)(發(fā)送消息、接受消息、處理消息、返回消息)順序。
一般什么時(shí)候要用到時(shí)序圖?
根據(jù)我的個(gè)人經(jīng)驗(yàn),當(dāng)兩套系統(tǒng)之間需要做接口對(duì)接時(shí),通過(guò)時(shí)序圖來(lái)說(shuō)明兩者之間的信息傳遞順序,是個(gè)不錯(cuò)的方法。
圖7 用戶通過(guò)企業(yè)微信登錄第三方系統(tǒng)的時(shí)序圖
從上圖我們可以看出信息在各系統(tǒng)間的流轉(zhuǎn),各套系統(tǒng)傳遞什么信息,獲取什么信息,可以一目了然。
五、開(kāi)發(fā)前的可視化呈現(xiàn)
前面的環(huán)節(jié),都是為最后的系統(tǒng)原型設(shè)計(jì)做準(zhǔn)備。如果沒(méi)有前面的分析環(huán)節(jié),直接進(jìn)入原型設(shè)計(jì),我們大概率會(huì)做出一個(gè)臃腫、缺乏邏輯、沒(méi)有體系的系統(tǒng)。
到這里我們?cè)侔焉厦孀龅姆治龉ぷ鞔饋?lái):
- 通過(guò)系統(tǒng)流程圖,我們可以劃分出這套系統(tǒng)應(yīng)該由哪些大模塊組成?
- 通過(guò)用例圖,我們可以分析出系統(tǒng)應(yīng)該具備哪些功能?這些功能間有什么內(nèi)在聯(lián)系?
- 通過(guò)ER圖,我們可以分析出系統(tǒng)的功能背后的數(shù)據(jù)實(shí)體,可指導(dǎo)未來(lái)數(shù)據(jù)庫(kù)要如何設(shè)計(jì)(功能頁(yè)面大概有哪些信息?)
- 通過(guò)時(shí)序圖,我們可以解決跨系統(tǒng)的接口開(kāi)發(fā)存在的責(zé)任不清的問(wèn)題。信息流在各個(gè)系統(tǒng)應(yīng)如何流轉(zhuǎn)?
這個(gè)時(shí)候,我們?cè)倌脕?lái)做原型設(shè)計(jì),就真的是手到擒來(lái)。咔咔咔,一頓操作猛如虎。一個(gè)個(gè)功能頁(yè)面就可以落地下來(lái)了。
圖8 一個(gè)電商網(wǎng)站的首頁(yè)原型圖
不知道,你有沒(méi)發(fā)現(xiàn),從業(yè)務(wù)需求到產(chǎn)品需求的整個(gè)過(guò)程,我們都沒(méi)談到類、方法等與開(kāi)發(fā)直接相關(guān)的名詞?
這是最后我想和產(chǎn)品經(jīng)理同行們聊的,UML這套系統(tǒng)建模工具,本身是獨(dú)立于任何程序設(shè)計(jì)語(yǔ)言。
在《軟件工程》一書中,對(duì)UML有非常詳細(xì)的介紹,它不只是一套工具,還是一種設(shè)計(jì)理念。
產(chǎn)品經(jīng)理們可以使用UML完成概念層設(shè)計(jì)(理解為概要設(shè)計(jì)),設(shè)計(jì)人員可以通過(guò)UML完成說(shuō)明層設(shè)計(jì)(對(duì)應(yīng)詳細(xì)設(shè)計(jì)),開(kāi)發(fā)人員可以通過(guò)UML完成實(shí)現(xiàn)層開(kāi)發(fā)。
過(guò)程中,我不提倡產(chǎn)品經(jīng)理們使用UML的類圖、對(duì)象圖等與設(shè)計(jì)、開(kāi)發(fā)相關(guān)的工具圖表,一方面是如上面所說(shuō),大家做的是不同層面的工作;另一方面是你不懂工具的真正用途,只懂其形不懂其神,還會(huì)誤導(dǎo)了你的下游伙伴。
上面的這個(gè)理念同樣適用于最后的原型圖(圖中只用了黑、白、灰三種顏色),一個(gè)產(chǎn)品經(jīng)理沒(méi)有美工的基礎(chǔ),卻要輸出所謂高保真原型,殊不知給下游的美工帶來(lái)了諸多困擾(因?yàn)槟阆氘?dāng)然用了各種花花綠綠的配色,搞得人家美工都不知道如何下手去收拾你的殘局)。
祝你在專業(yè)的道路上,走到極致。這已經(jīng)是超過(guò)80%的人。不要亂玩所謂跨界,我們已經(jīng)夠卷了,別瞎添亂。
作者:追夢(mèng)人,公眾號(hào):豆芽悟
本文由 @追夢(mèng)人 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于CC0協(xié)議
看到底下的朋友講到應(yīng)該怎么快怎么來(lái),為什么要使用UML?
如果你是做2B項(xiàng)目,這么想的話,產(chǎn)品還沒(méi)上線,可能就做不下去了
怎么快怎么來(lái),可能更適合于早期的2C類項(xiàng)目,這種項(xiàng)目沒(méi)有復(fù)雜的流程、業(yè)務(wù)規(guī)則,更重視前端的頁(yè)面展示,對(duì)數(shù)據(jù)流的要求不高,功能間的數(shù)據(jù)過(guò)賬少。這種情況下,我和你談UML,可能你覺(jué)得是多余
你真的去做個(gè)簡(jiǎn)單的2B進(jìn)銷存軟件,大概率就知道沒(méi)那么容易了
產(chǎn)品經(jīng)理們可以使用UML完成概念層設(shè)計(jì)(理解為概要設(shè)計(jì)),設(shè)計(jì)人員可以通過(guò)UML完成說(shuō)明層設(shè)計(jì)(對(duì)應(yīng)詳細(xì)設(shè)計(jì)),開(kāi)發(fā)人員可以通過(guò)UML完成實(shí)現(xiàn)層開(kāi)發(fā)。
黃花菜都涼了
哈哈哈哈 贊成。 等你寫完MRD PRD 再把UML搞完,項(xiàng)目早就延了。哈哈哈。 目前個(gè)人在使用過(guò)程中是怎么快怎么來(lái),表達(dá)清楚即可。
咱們的使命不就是把需求轉(zhuǎn)成可以理解的嘛,為啥非得是UML呢