編輯導語:對於產品經理來説,往往需要設計流程狀態,那麼什麼是流程狀態?它有什麼作用?設計流程狀態時,需要些注意什麼呢?本文作者從自身經驗出發,從流程狀態的命名、流轉條件、操作功能、映射關係、互斥關係5個方面進行了思考。
筆者剛轉行做產品經理時,曾設計過一個話費充值業務的訂單流程,訂單狀態只有“充值中、充值成功、充值失敗”狀態。
自認為完整,但這訂單流程不僅缺失了“充值中”的前置狀態“待提交充值”,也沒有考慮可能存在的其他流程和狀態,如支付流程的“未支付、支付中、支付成功、支付失敗”狀態;退款流程的“退款中、退款成功、退款失敗”等狀態。
而且,狀態間的流轉條件、話費訂單狀態與用户端原訂單狀態的映射關係等方面,考慮也有所欠缺,整個方案設計顯然不能支撐業務的正常運轉,在需求評審時,被無情的打回重新思考。
將業務流程產品化為系統流程,是B端產品經理的核心工作內容之一,而流程狀態,則是系統流程設計的重要組成部分。
如果流程狀態設計不合理,會影響使用人員對流程進度的把握,嚴重的話,可能會導致業務無法正常運轉。
一、什麼是流程狀態?截圖是淘寶的物流詳情,相信大家並不陌生,可以看到商品下單後,快件會經歷“xx已收取快件、xx收件點裝車、發往xx中轉站、到達xx中轉站、xx中轉站裝車、到達xx網點、xx在派送快件、本人簽收/代簽收”等物流過程,最終到達用户手中。
物流流程由一系列的物流過程構成,物流過程雖然詳細,但大大降低了可讀性,用户無法第一時間判斷快件的現狀。
淘寶為了提高物流流程的可讀性和結構性,基於快件不同階段、不同狀況的表現形態,定義成為物流狀態:已下單、已攬件、運輸中、派送中、已簽收。
- 已下單:商品已經下單
- 已攬件:已收取快件
- 運輸中:收件點裝車、發往中轉站、到達中轉站、中轉站裝車、到達網點
- 派送中:派送快件
- 已簽收:本人簽收/代簽收
相對於物流過程,使用物流狀態來描述物流流程的現狀,更直觀和簡潔。
綜上所述,流程狀態是為了直觀、簡潔描述一個流程的現狀,基於對象在流程內不同狀況的表現形態,經過分析和提煉後,定義成具有業務特徵的可視化形容詞,是構成流程的核心因素。
二、流程狀態有什麼作用?1. 準確把握流程進度,便於跟蹤業務在系統作業時(如下單、發貨),會經歷各種系統流程,而管理人員最關心的就是流程進度。如果系統流程沒有流程狀態,我們只能通過大量文字來描述當前流程的狀況和流轉順序。
那麼,當管理人員在面對成千上萬條業務數據時,將要投入更多精力去跟蹤業務的情況,而且無法準確把握流程進度。
通過“調撥狀況”查看眾多調撥單的調撥情況,看着都費勁。
但如果將“調撥狀況”通過使用“調撥狀態”的方式表達,管理人員可以一目瞭然的掌握調撥流程的當前進度、執行情況和轉換順序;再通過批量篩選同類型調撥狀態,可提高跟蹤效率。
2. 引導用户正確操作如果系統流程缺少流程狀態,我們將無法根據在什麼狀況下,提供相應的功能操作,只能把所有功能操作都展示出來,讓管理人員自行判斷和操作。
管理人員在面對複雜流程的交互操作時,將會不知所措,不清楚當前狀況下應該做什麼,很容易導致操作失誤,影響流程的運轉。
如果根據流程狀態的標識,展示和隱藏對應的功能操作,將有效避免管理人員對交互操作的迷茫和操作失誤。即通過流程狀態限定對應的功能操作,從而達到引導用户操作的目的。
如當調撥流程處於“待採購入庫”狀態時,僅能進行【取消調撥、修改調撥、入庫採購單】操作,不能進行【入庫調撥單】或【上架入庫商品】操作。
由流程狀態限制功能操作的設計,是引導用户正確操作、防止誤操作的常用手段。
三、設計流程狀態時需要注意什麼?1. 流程狀態的命名流程狀態的名稱並不是一個簡單符號,直接影響流程的狀況能否準確傳達給用户,本質是如何定義一個流程狀況。讓用户羣體理解並接受的流程狀態名稱,是發揮其價值的第一步。那麼,該如何給流程狀態命名?
1)運用結構化方式命名
由於流程狀況的描述方式,僅僅對信息要點進行羅列,各流程狀況之間的信息是分散的,缺乏邏輯順序,大大降低了用户的可讀性。
通過結構化方式把流程狀況的要點進行提煉,定義成流程狀態名稱,體現出各流程狀態的結構關係,可提高可讀性。
常用的結構化命名方式有以下2種:
副詞+動作:用於修飾關鍵流程狀況的動作
流程狀況“貨物在華南倉,還沒裝車調撥出庫”,其中“調撥出庫”為關鍵動作,通過副詞“待”修飾動作,定義為“待調撥出庫”,表示貨物還沒調撥出庫;再如其他狀態:待支付、待採購入庫、已發貨等。
動作+結果:用於描述流程狀況動作與結果的關係
流程狀況“用户通過支付寶支付成功”,其中“支付”是動作,“成功”是結果,定義為“支付成功”,表示支付動作的結果;再如其他狀態:支付中、交易成功等。
2)名稱要契合業務
TO B產品的流程狀態往往與業務強相關,當管理人員看到狀態名稱時,能第一時間判斷流程屬於哪個業務,還能從當前的所處狀態,推斷業務已經過了哪些狀態,之後還有哪些狀態。
如果脱離業務隨便命名,會增加用户的理解成本,嚴重的話,可能會導致用户作出錯誤的決策。
倉庫管理系統的流程五花八門,當我們看到“待審核調撥單、待調撥出庫、已調撥出庫、已調撥入庫”等狀態時,能立馬知道這是屬於調撥流程的狀態。
但如果僅顯示“待審核、待出庫、已出庫、已入庫”,我們可能就要思考這是屬於物料出入庫流程、成品出入庫流程,或者是其他流程的狀態,這無疑會增加理解成本和降低工作效率。
2. 流程狀態之間的流轉條件流轉條件指滿足某個既定條件後,狀態A才能流轉至狀態B,或者狀態A會逆向返回前面某個狀態,在未達到流轉條件前,狀態A不能往下走到下一個狀態。
如果沒有流轉條件,意味着流程狀態之間失去了建立聯繫的信號,系統將無法自動執行流轉。
而管理人員在面對錯綜複雜的流程狀態時,也只能自行判斷和人為操作流程狀態的走向,一旦流程狀態流轉方向有誤,將直接影響業務的正常運行。
通過設定清晰的流轉條件,可串聯起獨立分散的流程狀態,確保系統流程的各流程狀態有序、有方向的流轉,支撐業務的運行。
當話費訂單由於“充值結果為充值失敗”時,充值狀態由“充值中”流轉為“充值失敗”;當話費訂單由於“充值失敗而自動退款”條件時,充值狀態由“充值失敗”流轉為“退款中”;當“網絡異常、系統故障等原因”導致退款失敗時,系統自動發起重新退款,充值狀態由“退款失敗”返回上一節點“退款中”。
通過“充值失敗、自動退款、退款異常、正常退款”流轉條件,將話費訂單流程的“充值中、充值失敗、退款中、退款失敗、退款成功”狀態建立了關聯關係,如下圖(已省略部分流程和細節)。
3. 流程狀態的操作功能一般情況下,流程狀態在滿足既定的流轉條件後,可由系統自動執行流轉,完成系統流程的閉環。
但也會存在一些不適合系統全自動流轉,必須要人工干預和操作後才能執行的非標準化、高風險流程,如財務付款流程、短信羣發流程等。
人工干預和決策的流程,需要操作功能的支撐。否則,系統流程會一直停留在某個流程狀態無法推進。
不同的流程狀態,所需的操作功能是不同的,操作功能會與流程狀態產生作用,引起流程狀態的流轉,我們要考慮與流程狀態對應的操作功能,將流程狀態和操作功能相結合,引導用户操作。
如訂單交易失敗需要人工審核才能退款的情況下,“交易失敗”狀態要有與之對應【審核退款】的操作功能。管理人員點擊【審核退款】操作後,訂單流程才能從“交易失敗”流轉到“退款中”狀態。
4. 流程狀態的映射關係一個業務從開始到結束會經歷一系列的流程狀態,在設計流程狀態時,一般會把用户端可見的流程狀態,與運營管理端的流程狀態相互分離。
如果對用户開放所有運營管理端的流程狀態,不僅增加用户對系統流程的理解成本,還會造成信息干擾。
電商平台為了便於用户理解訂單流程,將用户端的訂單流程設計為“待付款、待發貨、待收貨、待評價、退換/售後”狀態。
站在運營管理的角度,一筆訂單從產生到交易成功,可能會經過風控流程、支付流程、出庫流程、物流流程、售後流程、異常流程等等,每個流程都存在多個流程狀態,關係錯綜複雜。
但大部分的流程狀態,用户並不關心,也無需讓用户知曉。通過建立用户端和運營管理端流程狀態的映射關係,能解決這方面的問題。
流程狀態的映射關係,指不同系統流程之間的狀態,相互對應的結構關係,即把一個流程的流程狀態,對應到其他流程的流程狀態。
常見的映射關係有以下2種:
1)一對一的映射關係
指系統流程A和系統流程B中,A的流程狀態A1,在B中只有流程狀態B1與之對應,狀態A1與狀態B1的關係,為一對一的映射關係。
以話費直充訂單為例,用户端訂單流程的“交易成功”狀態,對應運營管理端充值流程的“充值成功”狀態。
2)一對多的映射關係
指系統流程A和系統流程B中,A的流程狀態A1、A2,與B的流程狀態B1對應,狀態A1、A2與狀態B1的關係,為一對多的映射關係。
如用户端訂單流程的“待發貨”狀態,對應WMS(倉儲系統)發貨流程的“訂單分配、揀貨、補貨、複核、打包”等狀態,形成一對多的對應結構關係。
流程狀態的映射關係,能幫助我們協調和處理不同系統流程錯綜複雜的狀態關係。
5. 流程狀態的互斥關係流程狀態的互斥關係指在同一個系統流程中,不可能同時處於兩個流程狀態,狀態之間相互排斥,具有唯一性和排他性。
即當系統流程正處於狀態A,就不會同時處於其他任何狀態,其他狀態必須等待,只有狀態A滿足流轉條件後,才能流轉到其他狀態。
狀態互斥能確保系統流程每個節點只有一個狀態在進行,保證業務數據有序的執行系統流程;否則狀態之間可能會發生衝突和歧義,系統流程將無法執行。
在訂單流程中,有“待付款、待發貨和待收貨”3種狀態,當用户提交訂單沒有付款時,訂單處於“待付款”狀態,意味着訂單不可發貨(非貨到付款),用户更不可能收貨。
“待付款”與“待發貨、待收貨”狀態不會同一時間發生。每個系統流程都會有多個狀態,為了強調業務當前的所處狀態,弱化其他狀態,狀態之間必須互斥。
四、總結流程狀態是系統流程的重要組成部分,我們設計流程狀態時,可從流程狀態的命名、流轉條件、操作功能、映射關係、互斥關係5個方面多進行思考。
作者:青木,B端產品經理;公眾號:青木產品筆記
本文由 @青木 原創發佈於人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基於 CC0 協議。