不管多復(fù)雜的系統(tǒng)設(shè)計(jì),都離不開這9個(gè)字
編輯導(dǎo)語(yǔ):在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),對(duì)產(chǎn)品底層設(shè)計(jì)能力的掌握十分重要,如此,才能夠在接手新需求、新業(yè)務(wù)時(shí)不慌不忙,做好產(chǎn)品規(guī)劃方案。在文中,作者提出了理流程、定單據(jù)、填功能的系統(tǒng)設(shè)計(jì)策略。具體如何實(shí)施?不妨來看看作者結(jié)合了自身經(jīng)驗(yàn)的這份解讀。
無(wú)論做什么事情時(shí),我們總是希望能深諳其道、舉一反三,找到底層邏輯和運(yùn)轉(zhuǎn)規(guī)律,這就需要我們多加觀察、學(xué)習(xí)、積累、總結(jié),繼而形成自己的方法論。
上學(xué)、做研究、創(chuàng)業(yè)、做產(chǎn)品規(guī)劃、系統(tǒng)設(shè)計(jì)無(wú)不如此。本篇文章以木筆本人切身經(jīng)驗(yàn)分享一些B端系統(tǒng)設(shè)計(jì)的方法和步驟,希望對(duì)一些新老朋友有所幫助。
在做系統(tǒng)設(shè)計(jì)時(shí),遇到一個(gè)業(yè)務(wù)提的一個(gè)新的需求丟過來時(shí),新手小Z經(jīng)常焦頭爛額,就算對(duì)既有系統(tǒng)和流程已經(jīng)很熟悉了,在設(shè)計(jì)新的功能時(shí)還是漏洞百出。
而老道的產(chǎn)品的老A卻總能得心應(yīng)手,即便對(duì)過往業(yè)務(wù)不是很了解,經(jīng)過幾天的學(xué)習(xí),也總能設(shè)計(jì)出一份業(yè)務(wù)方比較滿意的方案,而且漏洞較少。
兩人的差距在哪呢?不是責(zé)任心,不是態(tài)度,而是產(chǎn)品底層設(shè)計(jì)能力。因?yàn)槔螦經(jīng)過多年摸爬滾打,總結(jié)了一套放之四海而皆準(zhǔn)的產(chǎn)品法則,這套法則足以讓老A馳騁產(chǎn)品界,立馬定江山。
小Z對(duì)老A仰慕至極,虛心求教,老A笑著送給了小Z9個(gè)字:理流程,定單據(jù),填功能。而這9個(gè)字正是老A總結(jié)的產(chǎn)品箴言,可放諸四海,童叟無(wú)欺。
第一步:理流程。
當(dāng)接到一個(gè)新的項(xiàng)目需求時(shí),不要上來就開始聊系統(tǒng)實(shí)現(xiàn),應(yīng)該先和業(yè)務(wù)方一起把主干流程梳理一遍,保證流程是通暢無(wú)阻且切實(shí)可行的。
流程理順了,業(yè)務(wù)方的訴求也就清晰了,是否可行,哪些環(huán)節(jié)有坑都一目了然了,同時(shí)在梳理的過程中,系統(tǒng)層面的流程節(jié)點(diǎn)也比較清晰了。
第二步:定單據(jù)。基于業(yè)務(wù)流程各關(guān)鍵環(huán)節(jié)的產(chǎn)出歸納出系統(tǒng)的單據(jù)和狀態(tài),用單據(jù)存儲(chǔ)業(yè)務(wù)的過程數(shù)據(jù),用狀態(tài)管理流程的關(guān)鍵節(jié)點(diǎn)。
第三步:填功能。針對(duì)需要系統(tǒng)支持的環(huán)節(jié),設(shè)計(jì)系統(tǒng)功能,并與流程和單據(jù)相對(duì)應(yīng)。
做系統(tǒng)設(shè)計(jì)和蓋實(shí)體大樓流程是一樣的,理流程的過程就像做規(guī)劃,是搞清楚業(yè)務(wù)訴求和分析可行性的過程,比如這塊地未來是要做商業(yè)中心還是蓋住房,樓間距幾何、地面規(guī)劃如何等。
定單據(jù)就是打地基,把樓宇的主體結(jié)構(gòu)固定下來,確定結(jié)構(gòu)框架、材質(zhì)和關(guān)鍵施工環(huán)節(jié),然后開始動(dòng)工。
填功能是最后的裝修階段,是在主體結(jié)構(gòu)上進(jìn)行包裝、把最終成果呈現(xiàn)出來。
流程是方向、單據(jù)是執(zhí)行,功能是落地,流程決定了要什么,單據(jù)設(shè)計(jì)決定了怎么做,功能實(shí)現(xiàn)則決定做成什么樣子,三者相應(yīng)相輝,一起達(dá)成業(yè)務(wù)目標(biāo)。
▲系統(tǒng)設(shè)計(jì)核心3要素:流程、單據(jù)和功能
一、理流程:庖丁解牛,理清業(yè)務(wù)和系統(tǒng)流程
在B端業(yè)務(wù)里,尤其是供應(yīng)鏈這一類偏重業(yè)務(wù)流程和多系統(tǒng)交互的領(lǐng)域,流程是業(yè)務(wù)開展的基礎(chǔ),幾乎所有的需求都來源于流程。
當(dāng)我們接到一個(gè)新的需求時(shí),應(yīng)該花50%以上的時(shí)間用于梳理流程,流程的梳理分為業(yè)務(wù)流程和系統(tǒng)流程兩部分。
業(yè)務(wù)流程由業(yè)務(wù)負(fù)責(zé)規(guī)劃,用于描述操作流程的順序,關(guān)鍵元素是[操作角色][操作節(jié)點(diǎn)];系統(tǒng)流程由產(chǎn)品經(jīng)理負(fù)責(zé)出具,是對(duì)業(yè)務(wù)流程分析后產(chǎn)出的系統(tǒng)交互流程,重在梳理系統(tǒng)之間的交互邏輯,關(guān)鍵元素是[操作系統(tǒng)][系統(tǒng)功能],下圖是業(yè)務(wù)流程和系統(tǒng)流程的泳道圖對(duì)比。
▲系統(tǒng)流程圖與業(yè)務(wù)流程圖
根據(jù)不同的業(yè)務(wù)場(chǎng)景,流程可以分為主干流程、輔助流程、異常流程三種:
- 主干流程:處理業(yè)務(wù)必不可少的主流程,就像樹的主干一樣,不實(shí)現(xiàn)就沒法滿足業(yè)務(wù)訴求,比如采購(gòu)的建單、倉(cāng)庫(kù)的收貨、上架等;
- 輔助流程:從主干流程分出來的子流程,如同樹的細(xì)枝末節(jié),屬于錦上添花,實(shí)現(xiàn)了有利于業(yè)務(wù)更好開展,不實(shí)現(xiàn)也不會(huì)影響,比如導(dǎo)入采購(gòu)明細(xì)、批量收貨、批量上架等;
- 異常流程:出現(xiàn)異常情況的處理流程,也必須實(shí)現(xiàn),否則遇到異常了就出現(xiàn)了流程卡點(diǎn),比如采購(gòu)單的駁回、收貨錯(cuò)誤修改、出庫(kù)揀貨異常等;
通常來說,主干流程和異常流程優(yōu)先級(jí)最高,必須在項(xiàng)目上線時(shí)就要具備,但異常流程因?yàn)椴唤?jīng)常發(fā)生,如果工期趕不上,可以考慮用簡(jiǎn)單的方案替代(比如業(yè)務(wù)方線下處理)。輔助流程一般不緊急,可根據(jù)資源情況安排,如果項(xiàng)目第一期排不上,可放到后續(xù)迭代版本中。
▲如何梳理流程
在梳理業(yè)務(wù)流程時(shí),我們可以遵循先主干再異常,最后分支的原則,盡量把項(xiàng)目中涉及到的流程以及每一個(gè)操作角色、操作環(huán)節(jié)都清晰地描繪出來,然后再對(duì)著操作節(jié)點(diǎn)梳理系統(tǒng)功能。
有些操作節(jié)點(diǎn)是需要系統(tǒng)功能支持的(比如采購(gòu)建單、收貨),就需要有與之對(duì)應(yīng)的系統(tǒng)功能,還有一些是純線下行為(比如搬運(yùn)、清掃),則不需要系統(tǒng)功能。
另外,操作節(jié)點(diǎn)和系統(tǒng)功能并不是一對(duì)一的,有的操作可能需要多個(gè)功能支持,也可能多個(gè)操作只對(duì)應(yīng)一個(gè)功能。
系統(tǒng)功能梳理出來以后,我們接著梳理每個(gè)功能對(duì)應(yīng)的輸入和輸出,有些輸入和輸出只體現(xiàn)在信息流上,有些則需要其它形式的產(chǎn)出。
例如倉(cāng)庫(kù)收貨完成時(shí),我們需要對(duì)收貨的結(jié)果和過程數(shù)據(jù)保存下來,這是信息層面的輸出,同時(shí)還需要為收貨員打印一張紙質(zhì)的收貨單,這是實(shí)體單據(jù)輸出。在梳理的過程中要對(duì)各環(huán)節(jié)的輸入和輸出做詳細(xì)的記錄和拆解,這是我們下一步設(shè)計(jì)單據(jù)和狀態(tài)的依據(jù)。
流程梳理的最后一步是做系統(tǒng)劃分,將系統(tǒng)功能與當(dāng)前已有的系統(tǒng)進(jìn)行匹對(duì),定位每個(gè)系統(tǒng)功能的系統(tǒng)邊界,如果還沒有系統(tǒng),正好以此梳理結(jié)果為依據(jù)做系統(tǒng)規(guī)劃。
系統(tǒng)的劃分并沒有嚴(yán)格的執(zhí)行標(biāo)準(zhǔn),有些處于兩個(gè)系統(tǒng)交界的功能放在A系統(tǒng)也行,B系統(tǒng)也行(例如兩個(gè)系統(tǒng)交互時(shí),枚舉值的映射),這時(shí)可以根據(jù)架構(gòu)合理性、資源情況和操作便捷性等因素綜合評(píng)估。
二、定單據(jù):框架構(gòu)建,明確單據(jù)和狀態(tài)
在B端系統(tǒng)中,單據(jù)是用來存儲(chǔ)和流轉(zhuǎn)業(yè)務(wù)信息的憑證。系統(tǒng)流程及各環(huán)節(jié)的產(chǎn)出梳理出來以后,就可以以此規(guī)劃系統(tǒng)單據(jù)和單據(jù)狀態(tài)了。
單據(jù)有兩大核心要素:關(guān)鍵屬性和流轉(zhuǎn)狀態(tài)。關(guān)鍵屬性來源于流程各環(huán)節(jié)的產(chǎn)出,記錄業(yè)務(wù)開展過程中的詳細(xì)數(shù)據(jù),流轉(zhuǎn)狀態(tài)設(shè)計(jì)來源于系統(tǒng)關(guān)鍵節(jié)點(diǎn)的變化,記錄流程的流轉(zhuǎn)過程。
系統(tǒng)流程的每一個(gè)環(huán)節(jié)都會(huì)有輸入和輸出,輸出的信息需要保存下來,這些信息就是單據(jù)的屬性,也是最原始的單據(jù)數(shù)據(jù),還是下一環(huán)節(jié)的輸入數(shù)據(jù)。
我們?cè)囍鴮?duì)各環(huán)節(jié)的產(chǎn)出數(shù)據(jù)進(jìn)行提煉,如果發(fā)現(xiàn)下一環(huán)節(jié)與上一環(huán)節(jié)的信息集合一樣,只有個(gè)別信息不同,則可以將這兩個(gè)環(huán)節(jié)設(shè)計(jì)為一個(gè)單據(jù),但如果差異非常大,就需要設(shè)計(jì)成不同的單據(jù)。
例如下圖中,采購(gòu)的結(jié)果會(huì)生成采購(gòu)單,我們需要設(shè)計(jì)一張采購(gòu)單來承載采購(gòu)的所有信息,收貨的輸入信息來源于采購(gòu)明細(xì)。
但由于收貨結(jié)論與采購(gòu)明細(xì)相差很大,兩者并不是一個(gè)維度的數(shù)據(jù)集合,采購(gòu)單產(chǎn)生于采購(gòu)系統(tǒng),收貨則是在倉(cāng)儲(chǔ)系統(tǒng),一條采購(gòu)明細(xì)會(huì)生成多條收貨明細(xì),所以收貨結(jié)論需要單獨(dú)設(shè)計(jì)一張收貨單來承載。
另外,收貨結(jié)論會(huì)作為驗(yàn)收的輸入信息,但驗(yàn)收和收貨只是入庫(kù)流程中的兩個(gè)環(huán)節(jié),并無(wú)很大的差異,所以可以統(tǒng)一設(shè)計(jì)到收貨單中,根據(jù)狀態(tài)加以區(qū)分(當(dāng)然不同業(yè)務(wù)形態(tài)下的流程不盡相同,如果驗(yàn)收需要對(duì)收貨結(jié)論進(jìn)一步拆分或合并,則二者就無(wú)法共用單據(jù)存儲(chǔ),就需要設(shè)計(jì)不同的單據(jù)了)。
▲如何定義單據(jù)
系統(tǒng)流程的流轉(zhuǎn)是基于單據(jù)的流轉(zhuǎn)狀態(tài)來的,單據(jù)流轉(zhuǎn)狀態(tài)是單據(jù)的非常重要的屬性,也是驅(qū)動(dòng)流程流轉(zhuǎn)的靈魂。
狀態(tài)設(shè)計(jì)來源于系統(tǒng)關(guān)鍵節(jié)點(diǎn)的變化,在規(guī)劃狀態(tài)時(shí),我們需要把系統(tǒng)流程從頭到尾所有的節(jié)點(diǎn)都整理成線,然后挑出哪些是影響流程流轉(zhuǎn)的關(guān)鍵節(jié)點(diǎn),對(duì)節(jié)點(diǎn)的流向結(jié)果進(jìn)行提煉,便得到了單據(jù)的狀態(tài)。
例如倉(cāng)庫(kù)入庫(kù)流程中,供應(yīng)商到貨以后,會(huì)分別進(jìn)行①供應(yīng)商簽到→②倉(cāng)庫(kù)收貨或拒收(合格品驗(yàn)收,不合格拒收)→③倉(cāng)庫(kù)驗(yàn)收→④倉(cāng)庫(kù)入門上架等4個(gè)節(jié)點(diǎn),根據(jù)4個(gè)節(jié)點(diǎn)的輸出結(jié)論,便能分別設(shè)計(jì)出供應(yīng)商簽到、收貨完成、拒收、驗(yàn)收完成、上架完成等5個(gè)收貨單狀態(tài)(當(dāng)然這只是最簡(jiǎn)單的舉例,實(shí)際倉(cāng)庫(kù)收貨流程會(huì)復(fù)雜的多),如圖所示。
▲根據(jù)系統(tǒng)節(jié)點(diǎn)設(shè)計(jì)單據(jù)狀態(tài)
我們?cè)谠O(shè)計(jì)單據(jù)狀態(tài)時(shí),需要遵循幾個(gè)原則:
- 狀態(tài)之間應(yīng)該是平行且互斥的,不能存在交集。
- 狀態(tài)之間流轉(zhuǎn)應(yīng)該有清晰流向,是線型而不是網(wǎng)型,不要相互穿插跳躍。
- 狀態(tài)的設(shè)計(jì)不是憑空捏造的,必須和某個(gè)關(guān)鍵節(jié)點(diǎn)相呼應(yīng),由節(jié)點(diǎn)觸發(fā)狀態(tài)機(jī)流轉(zhuǎn)。
- 狀態(tài)設(shè)計(jì)最好只有一個(gè)開始節(jié)點(diǎn),但可以有多個(gè)結(jié)束節(jié)點(diǎn)(正常結(jié)束狀態(tài)和異常結(jié)束狀態(tài)分開)。
- 狀態(tài)設(shè)計(jì)應(yīng)該足夠精簡(jiǎn),只有對(duì)關(guān)鍵邏輯產(chǎn)生影響的節(jié)點(diǎn),才適合設(shè)計(jì)為狀態(tài)。
三、填功能:破繭而出,實(shí)現(xiàn)系統(tǒng)功能
當(dāng)流程和單據(jù)梳理清晰以后,系統(tǒng)設(shè)計(jì)就成功了80% 了,最后20%在于系統(tǒng)功能的填充和實(shí)現(xiàn),將功能按照業(yè)務(wù)需要的風(fēng)格輸出,形成系統(tǒng)原型和需求文檔。
在填充系統(tǒng)功能時(shí),也是有章可循的,我們需要依賴前面所做的流程梳理和系統(tǒng)單據(jù):
1)首先,將流程節(jié)點(diǎn)中的線下操作流程和系統(tǒng)處理流程進(jìn)行分類,只有系統(tǒng)處理流程是需要實(shí)現(xiàn)系統(tǒng)功能的。
2)接著,基于各環(huán)節(jié)的輸入和輸出信息設(shè)計(jì)對(duì)應(yīng)的功能。功能包含帶頁(yè)面的操作性功能,以及不需要頁(yè)面的系統(tǒng)邏輯處理功能,輸入信息對(duì)應(yīng)到系統(tǒng)功能上通常是查詢條件、信息錄入、導(dǎo)入等功能,輸出信息通常對(duì)應(yīng)查詢結(jié)果、存儲(chǔ)信息、操作日志、導(dǎo)出等功能。
3)然后,將關(guān)鍵功能與單據(jù)的狀態(tài)變更結(jié)合起來,梳理出每個(gè)功能的詳細(xì)邏輯以及對(duì)應(yīng)的單據(jù)狀態(tài)變更,系統(tǒng)功能便設(shè)計(jì)完成了。
4)最后,功能設(shè)計(jì)完以后,將系統(tǒng)功能和非系統(tǒng)功能串在一起驗(yàn)證一下是否和業(yè)務(wù)流程預(yù)期一致,不能出現(xiàn)流程盲區(qū)和卡點(diǎn);若有,則繼續(xù)完善,直到整個(gè)業(yè)務(wù)流程通暢無(wú)阻。
在設(shè)計(jì)B端系統(tǒng)功能設(shè)計(jì)時(shí),可以參考尼爾森經(jīng)典十原則,同時(shí)一定要遵循實(shí)用大于美觀的原則,這里總結(jié)幾個(gè)設(shè)計(jì)小貼士:
1)頁(yè)面功能應(yīng)該分清主次,頁(yè)面越簡(jiǎn)單越好,這樣的學(xué)習(xí)成本和實(shí)現(xiàn)成本最低,拒絕花里胡哨。
2)同一個(gè)系統(tǒng)內(nèi)各頁(yè)面設(shè)計(jì)的控件、頁(yè)面布局、風(fēng)格、顏色、字體應(yīng)該統(tǒng)一,且符合大眾操作習(xí)慣。
3)如果可以,頁(yè)面應(yīng)該聚焦,盡量在一個(gè)頁(yè)面完成核心操作,少做跳轉(zhuǎn),因?yàn)槊恳淮翁D(zhuǎn)都是動(dòng)作和時(shí)間上的浪費(fèi)。
4)批量操作很有用,例如查詢時(shí)可以查多個(gè)SKU、操作時(shí)可以批量審核等,系統(tǒng)的一個(gè)批量功能,可能會(huì)給業(yè)務(wù)的操作效率帶來飛躍。
5)操作記錄很重要,當(dāng)出現(xiàn)問題需要排查時(shí),日志是案發(fā)現(xiàn)場(chǎng)最好的黑匣子,所以無(wú)論如何,核心操作的日志功能不要省,否則總有一天,會(huì)為自己的一時(shí)懶惰埋單。
6)設(shè)計(jì)一個(gè)好的灰度策略,通過新老流程并行,由老流程逐步過渡到新流程,有問題了也可以隨時(shí)切換,可以極大的降低項(xiàng)目風(fēng)險(xiǎn)。
以上便是老A的系統(tǒng)設(shè)計(jì)9字箴言了,掌握了這個(gè)方法,再?gòu)?fù)雜的系統(tǒng)設(shè)計(jì)也能夠?qū)訉悠饰?,直到最終落地,如庖丁解牛。
方法本身并不神奇,其實(shí)就是需求分析和拆解的過程,但知易行難,每一步的技能磨練都需要我們懷謙卑之心深扎到一線去摸爬滾打才能慢慢領(lǐng)悟,這個(gè)過程叫做經(jīng)驗(yàn),不經(jīng)歷就無(wú)法得驗(yàn)。
如果問我有沒有更快的系統(tǒng)設(shè)計(jì)成長(zhǎng)技巧,答案是肯定的,就兩個(gè)字:實(shí)戰(zhàn)!百聞不如一見,百看不如一試,唯有多加實(shí)戰(zhàn)才能在真實(shí)的業(yè)務(wù)環(huán)境和項(xiàng)目壓力中迅速成長(zhǎng),繼而逐漸找到自己的方法論,以不變之策應(yīng)萬(wàn)變之事。?到那時(shí),你且看他……
作者:木筆,產(chǎn)品一俗生,深耕于供應(yīng)鏈領(lǐng)域,微信公眾號(hào):供應(yīng)鏈產(chǎn)品筆記
本文由 @木筆 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
總結(jié)的到位
請(qǐng)問,這里的“單據(jù)” 是不是有點(diǎn)類似后臺(tái)開發(fā)人員的“數(shù)據(jù)表”. 而且常規(guī)的不都是梳理功能架構(gòu)、信息架構(gòu)么,作者這里梳理是否能代替?
單據(jù)應(yīng)該指的是類似:銷售單、發(fā)貨單、采購(gòu)單等
謝謝老師,解決了燃眉之急。
向你學(xué)習(xí)
很不錯(cuò),記個(gè)筆記~