對于一個稍微復雜的產品來說,工作流的設計都是不可避免的一個重要部分。工作流和審批流總體來說都是流程和步驟的集合。通過研讀此篇文章和經驗累積,歸納總結了用到工作流的兩種情況:
1、涉及到流程審批的審批流
其特點是將審批的角色劃分為生產者與處理者。生產者即生產數據的角色,其在工作流的工作是創建新數據;處理者則是針對已有數據的進行某些處理。比如請假審批流程,財務報銷審批流程,生產者即員工發起請假申請,處理者是HR操作同意或駁回。簡單來說,審批流進行的某些功能是以處理者的需求進行設計的,所以設計這類審批流的時候,需要更多的從處理者方面去考慮。
2、多人協作的工作流
對于工作流來說,更像是流水線工作,在系統中主要就是到了那個步驟就流轉到某個角色,完成后再流轉到下一個角色,將所有角色串聯起來就是完成的工作流。比如商標系統的訂單流程、報件流程及官文流程。對于這類工作流,重點是要梳理好前后邏輯關系,進行有效的功能拆分。
其中工作流設計方向需要考慮的3個因素,我認為是:工作流內容、工作流狀態、工作流程的制定及角色的劃分。
1、工作流內容
其內容包含:工作內容的產生、流轉環節、到最后的消費,也就是去向。
2、工作流狀態
一般來說分為:待審批—審批中—審批完成,不同場景或階段可分為不同情況。每個狀態對應不同的操作權限,比如通過、退回、否決、撤回等。
3、工作流的制定及角色劃分
傳統的工作流程來說大致可以分為這樣幾種情況:自由/半自由流程、固定(串行)流程、分支流程、并發流程(并發流程與執行、并發流程或執行)。而考慮并行還是串行的處理方式則是根據具體的業務場景決定的,一般來說上下級分明或步驟有嚴格遞進關系的流程采用串行流程;無先后順序,多人協作的流程是并行審批的。
以上可以稱之為標準工作流,即后臺給予固定的模板,相關配置人員進行配置即可。有些復雜的系統中,以上幾種情況都是共同出現的。比如以前在做SAAS情況下,為了滿足各種客戶需求,設計了非標準工作流,后臺壓力小、操作簡單、流程靈活配置。在大多數情況下,一個非標準工作流可以拆分為多個標準工作流,可以將每一種情況都拆分成一個工作流,然后將生產端入口保持統一,每一步的不同操作可以進入不同的工作流,最終流轉的出口保持一致即可,有點類似于開發中設計模式的工廠模式。
所以設計好一個工作流,不僅可以使得后期使用系統的時候更加高效,同時也是提升產品自身能力的一個挑戰。
(找個地方,記錄一下)