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