從0到1教你設計業務系統

56 評論 89889 瀏覽 1232 收藏 44 分鐘

本文將以一個案例,向讀者逐步揭示一套業務系統從0到1的設計過程。重點講述架構、模型等業務系統最本質的設計精要。

一、業務系統設計概述

1、什么是業務系統

互聯網公司常常將產品方向分為兩類,C端和B端,C端主要是面向客戶和消費者的系統,B端的范圍則相對模糊,給供應商或商家使用的系統,給內部業務人員使用的系統,都統稱為B端系統。C端和B端系統建設的出發點和側重點完全不同。C端系統偏重用戶體驗,強調感性,持續的數據分析優化,同一個按鈕不同的擺放位置都要精心設計、論證,服務對象是個人;B端系統偏重流程、模塊化,強調抽象和結構性,講究整體的規劃和體系設計,服務對象是組織和機構。

如果將B端系統進一步拆分,也可以分為兩類,第一類是商家端,常見于雙邊模式的平臺型互聯網公司,例如淘寶的賣家管理系統,美團的商家管理后臺;第二類是內部業務系統,支持企業經營、管理、業務運轉。

本文所說業務系統,指B端產品線中的企業內部業務系統。雖然B端系統也可以分為兩類,但因為都是面向業務的系統(Business),服務于組織而非個人,其設計思想和原理都是相同的,所以本文講解的內容可以應用于所有B端系統的設計場景。

常見的業務系統包括ERP(EnterpriseResource Planning),CRM(CustomerRelationship Management),SCM(Supply ChainManagement),WMS(WarehouseManagement System),TMS(TransportationManagement System),OA(Office Automation),HRM(Human ResourceManagement)等等。因為絕大多數互聯網公司都有獨特的業務模式,所以很多時候類似于CRM、WMS、TMS這類系統都自主研發,OA、HRM這類系統由于業務模型區別不大,多數都會采購標準軟件。有些互聯網巨頭也會自主研發OA、HRM。習慣上,CRM、WMS這類系統被稱為業務系統,OA、HRM這類系統被稱為內部協同軟件,但兩類系統之間也并沒有非常清晰的界定。

如果從軟件學的角度來看,所有軟件系統分為兩類,第一類是能夠實時產生業務數據的系統,叫做OLTP(Online TransactionProcessing)系統,第二類是對數據進行加工、處理、探查、挖掘、展現的系統,叫做OLAP(Online AnalyticalProcessing)系統,很顯然,業務系統屬于OLTP的范疇。
當企業發展到一定階段,業務系統對企業的高效管理運轉具備不可替代的核心作用。例如,當一家公司只有幾個銷售人員時,客戶資料用Excel即可管理。當銷售發展到上千人時,必須通過一套OCRM系統進行管理。

總體來講,業務系統對企業具有四點價值:提升管控能力、控制經營風險、降低運營成本、提升銷售業績。很多時候,業務系統建設好壞決定了企業的核心競爭力,例如外賣公司之間的競爭,配送員的效率是業務成敗的決定因素之一,而配送員的效率取決于TMS系統建設的好壞。當然,TMS系統建設的好壞,包括了軟件系統本身,以及配套落地的管理運營體系的執行。

2、為什么要學習設計業務系統

商業模式的創新是互聯網行業最大的特點,商業模式的創新會帶來業務模式的創新,業務模式的創新會帶來運營、管理機制的創新。多數情況下,互聯網公司獨特的業務模式,導致無法采買市面上成熟的標準軟件來支持業務,而作為技術驅動型企業,自主研發系統支持新業務成為不二的選擇。

例如,滴滴公司,是無法在市面上找到一款成熟的司機管理運營軟件的,要么找外包公司開發,要么自主研發,自主研發似乎更靠譜一些,這時,就需要有專業經驗的資深產品經理,結合業務,從無到有設計一套司機(甚至是針對司機運營的機構)管理系統。

再例如,美團有大量的地推人員和客戶需要管理,傳統的OCRM軟件根本無法支持美團這種強POI訴求的客戶管理,因為業務模式特殊,即便采購成熟的OCRM做定制化開發,也難以使用。所以,只能靠自主研發一套全新的基于獨特業務模式的OCRM來支持業務。

由此可以看出,互聯網企業創新的本質,決定了必須有一批優秀的業務系統設計人員,能夠結合公司特殊業務訴求,快速、合理的設計配套系統,并落地支持業務。業務系統的產品經理,要具備企業經營管理、軟件系統設計的多方面經驗和知識儲備,才能設計合理的業務系統。

3、業務系統設計的流程

業務系統從無到有的設計,是有一套標準范式可以遵循的。實際上,隨便一套《軟件工程學》教程,講述的都是業務系統的設計,但是軟件工程已經不滿足當前時代對專業人員的培養和要求。互聯網時代下的軟件設計,已經被拆分成多個細分職能,產品經理參與制定業務,設計應用功能;工程師負責技術架構,編碼實施;而在傳統軟件工程中,這兩項職能由一個角色承擔。如今的現實情況是,軟件設計人員更多的參與到了業務決策制定,軟件研發人員越來越遠離業務,只聚焦于技術。

即便如此,軟件設計中的經典思路、方法論,是沒有改變的。業務系統的產品經理,必須理解軟件工程學中的部分核心要素,才能真正設計出靠譜的系統。

一般來講,一套業務系統從0到1的構建,需要經歷如下環節。

(1)業務方案設計

PM和業務負責人一起梳理、制定業務流程、制度、機制,理解業務的問題點,并確定軟件系統解決方案。

(2)系統整體方案設計

PM結合業務訴求與目標,完成系統概要設計,包括界定業務、系統的邊界,系統功能的抽象和演進藍圖,整體應用架構的設計,如何與公司已有系統拼接、交互。

(3)系統細節方案設計

PM完成細節方案的所有設計,包括建模、角色、界面、權限等。其中建模是最難的部分,建模好壞決定了系統未來的靈活性、可擴展性。建模要求對業務的全面理解,極強的抽象歸納能力。

(4)實施驗收

PM對最終項目落地負責,系統上線后要展開持續的迭代優化,深度參與產品運營,數據分析等。

如果是從無到有設計系統,以上環節必須全面貫徹,尤其是架構設計和模型設計,是重中之重。

4、案例:某電商公司的渠道銷售系統設計

本文將結合一個虛擬的案例,逐步論述,幫助讀者理解以上所有的設計環節。

(1)背景

某電商企業A公司,成立5年,主營生鮮商品,以C端客戶為主,業務穩定,系統建設成熟。

(2)訴求

公司在三個月前嘗試開展分銷業務,成立銷售團隊,開發分銷商合作伙伴。業務試點在北京、上海開展,三個月以來發展迅速,現急需配套的軟件系統提升業務效率,控制經營風險。

(3)評估

經公司管理層評估,目前分銷業務月流水五十萬,以月增長率20%的速度快速發展。在高速發展中若干流程、管理、風險問題突出,公司決定投入研發資源建設軟件系統,支撐業務發展。

(4)任務

公司要求在2~3個月的時間內搭建出一套可以支撐分銷業務2年高速發展的軟件系統,提升效率,控制經營風險。項目期間CTO全力提供人力資源支持。

5、工作計劃

作為項目負責人,某高級PM接到任務后,首先要理清工作思路,拆解任務,制定時間計劃。只有嚴格遵循時間計劃執行工作,才能保證整體工作有序展開,如期落地。根據經驗和初步判斷,產品經理制定了粗略的工作計劃表如下。

時間緊,任務重,PM需要立即開展行動。當然,計劃表中的研發周期,純粹是一個粗拍的時間,具體實施周期要結合一期項目范圍,以及人力投入,在立項時細化。

二、業務調研與業務方案

設計系統之前,必須透徹理解業務現狀與業務目標,考慮如何結合系統改造、優化業務流程和模式。此階段可以由一個高級PM帶領幾個初級PM完成。最好邀請技術負責人一起參與,有利于技術人員提前理解業務,為技術選型和方案設計做好準備。此外,技術人員具備更好的抽象能力,深入理解業務,可以讓技術負責人協助PM共同完成整體方案設計和細節方案設計。

1、業務調研的方法

理解業務最好的方法,是輪崗參與業務環節。此外更加便捷快速的方法,是調研訪談。調研之前最好對業務能有大體的認知,安排好訪談的對象,提前準備好問題,讓訪談更加高效。以下是針對分銷業務的訪談計劃和調研表。

主持人員:產品經理、研發經理

調研對象:業務負責人、一線主管、一線業務人員、合作伙伴

調研方式:

  • 訪談
  • 數據分析

調研目標:

  • 了解業務模式和業務特點
  • 了解業務目標和業務規劃
  • 了解當前業務運轉方式
  • 挖掘當前問題與痛點

?2、業務調研總結

(1)組織架構

通過調研,理清最基本的業務組織架構圖,通過組織架構圖理解管理體系和職能單元的設計,以及后續規劃。

(2)業務目標

對關鍵業務指標和目標需要有相應梳理。

(3)業務流程

通過調研,梳理出目前的業務運作流程,如下圖。

可以看出,目前業務開展以手工作業為主。下單配送環節依托于公司已有的系統實現。

(4)問題梳理

基于目前手工作業流程,整理出如下業務問題。

  • 手工下單容易出錯,效率低;
  • 生鮮實時變價,每次下單要根據折扣表手工計算價格;
  • 無法實現客戶總部集采,大區集采,城市集采,門店自采等混合采購模式;
  • 不支持特殊分揀、配送要求;
  • 賬期客戶不能及時控制回款進度和賬期風險;
  • 對賬和開票工作復雜,大量數據表處理,容易出錯;
  • 當前流程一個運營專員只能跟進維護5個左右客戶,每日處理10筆訂單,人效極低;

3、基于業務調研的核心訴求分析

基于整體調研結論,總結出分銷系統解決業務難題的核心訴求如下。

  • 客戶自主下單(高優);
  • 系統自動定價(高優);
  • 支持客戶多門店分別定價與下單(高優);
  • 對賬報表(高優);
  • 運營人員聚焦參數設置、審核和異常問題跟進(高優);
  • 運營工作要下放到各城市分部(中優);
  • 支持賬期和預付款模式(低優);
  • 系統實現賬期風控(低優);

我們將業務主鏈路確定為高優訴求,將擴展功能或針對部分客戶的小眾功能,以及風控功能列為低優,和業務達成一致,一期項目聚焦核心流程的實現。

4、業務主流程設計

經過充分的溝通,設計出結合系統支持的核心業務流程。其中,涉及到客戶開發、合同審核等前置流程,依然通過線下處理完成,未來考慮實現分銷業務的OCRM系統進行支持,本次項目暫不考慮。

創建一套系統或平臺,支持客戶簽約后的賬號管理、價格管理、自主下單等功能。

三、系統整體方案設計

完成業務調研后,進入系統整體方案設計環節。該環節需要由經驗豐富的PM以及公司的架構師一起探討完成,因為方案涉及到和公司現有應用架構融合,還需要經過產品委員會或架構組的評審和確認。

1、系統定位

基于對業務的分析,考慮通過實現3套獨立子系統來支持分銷業務。

  • 分銷商城前臺(H5):分銷客戶的下單工具
  • 客戶管理后臺(PC):分銷客戶的子賬號管理、門店管理及業務輔助工具
  • 運營管理后臺(PC):分銷業務部門對客戶及商品定價管理的業務支持工具

首先,客戶希望能有一個便捷快速下單的工具,所以需要有一個手機版商城C端。考慮到投入產出比,通過H5來實現,具有獨立域名,外網可訪問。

其次,需要有一套方便操作的管理后臺,因為涉及到大量的商品編輯處理,賬號、門店管理等功能,所以考慮PC版本實現,暫不支持手機版。

最后,考慮到公司運營和客戶管理員的管理訴求不盡相同,操作功能和頁面差異較大,所以決定將管理后臺拆解為兩個獨立的系統,給客戶管理員使用的客戶管理后臺,具備獨立域名,外網可訪問;給公司管理人員和運營人員使用的運營管理后臺,具備獨立域名,僅限內網訪問。

設計業務系統常見的問題,是為了圖省事,把所有業務單元的功能糅合到一個系統中實現,造成管理的混亂,尤其是系統維護的混亂。一般來講,系統的抽象要結合業務完成,獨立的業務職能單元,要有各自獨立的系統來配合使用。如果業務部門之間邊界模糊,權責界定不清,也會導致系統之間存在模糊性。

清晰的系統定位,并劃清邊界,可以讓彼此具備足夠的獨立性,是系統靈活性和可擴展性的基本前提。

2、整體架構設計

現在,需要考慮分銷平臺的三個子系統,如何與公司的整體應用架構融合問題。公司經過多年發展,系統架構體系已經非常完備,大量公共組建和模塊可以復用,這樣就減輕了新平臺的實現成本和難度。分銷平臺只需要聚焦自己業務特殊獨立的地方,其他公共組建和模塊復用已有系統即可。

關于如何理解公司應用架構圖,可參考本人之前的文章《從一個故事說起,談談企業應用架構的演變史》

我們將確定的三個子系統,繪入簡化版的公司整體應用架構圖,如下。

深綠色部分是分銷平臺的三個獨立子系統,墨綠色部分是涉及打通和復用的已有系統。

電商是公司的主營業務,有成熟的訂單體系和倉配體系,分銷業務的獨特性在于前置客戶管理維護,下單后的分揀配送業務流程都一樣,所以分銷商城的訂單中心直接復用已有訂單中心,訂單寫入后續的處理流程完全不變,只需要訂單中心稍作改造即可支持,這樣也可以保證整個訂單臺賬、財務、倉儲、配送基本都不需要重寫或改造。另外分銷平臺的商品中心復用已有商品中心SKU數據,只是價格管理模塊部分需要新做一套獨立的,以支持特殊報價業務。

分銷業務的賬戶體系、權限管理體系、在線支付,都利用已有系統實現,其中賬戶體系要做改造,支持子母賬號管理,在線支付完全復用即可。

客戶資料的存儲,利用已有的客戶主數據(MDM)實現,MDM改造較大,要新做一套企業客戶數據模型。雖然是新做,但是在架構上,必須將客戶資料作為主數據來建設,統一管理維護。

最后一個問題,既然公司已經有C端商城,為什么要單獨再做一套針對分銷客戶的C端商城?經過分析評估,兩套商城整體區別較大,如果對原有商城進行改造支持分銷業務,第一工時投入比新做一套還要大,第二會影響主營業務系統的健壯性,因此最終決定新做C端商城支持分銷業務。

3、功能抽象

基于對業務的分析,以及三套系統的定位,可以抽象并繪制完整的系統功能藍圖。

功能模塊圖,是對業務訴求系統化設計的進一步高度抽象。模塊的設計,要體現出同一個業務職能單元中不同業務場景和操作的集合,模塊也代表了系統中的一二級導航菜單的設計。常見的問題,是設計人員對模塊設計的隨意和混亂,以及后來新增功能的隨意擺放,會造成用戶使用系統時產生困惑,同時還會導致開發人員編碼設計的混亂。

功能模塊圖,代表了設計師對業務和系統本質的理解和提煉,包含了對業務、系統未來發展的展望。我們常說,系統建設要有規劃和節奏,實際上功能模塊圖就是一幅遠景規劃藍圖,是系統的骨架,決定了系統的整體結構,結合業務需求,每一個具體功能的實現,都是在對骨架不斷地填充血肉,讓他更真實,更立體,更豐富。

隨著業務的開展,變化,功能模塊圖可能會有新的規劃和調整,但如果業務單元的本質和模式沒有變化,功能模塊圖不應該出現結構性的調整和改動。

4、演進藍圖

我們已經繪制了系統的功能模塊圖,體現了業務和系統規劃的脈絡,現在,讓我們開始研究這套“體系”,大概需要幾期實現,每期實現的側重點是什么,也就是常說的演進藍圖,Roadmap。

白色部分,是一期的項目范圍,聚焦解決最基本的業務流程線上化問題,以及最痛的痛點,例如對賬功能。一期功能有一個原則,凡是可以手工處理和解決的問題,都不做系統支持。所以,類似于“報表”,可以定期跑sql實現;類似于“價格系數設置”,考慮到維護頻率低,可以由RD在后臺改數據庫完成;類似于“搜索、推薦”,并不影響客戶下單,因為根據調研目前每個客戶維護的最多sku數量只有二十個,沒有搜索功能并不會嚴重影響客戶下單效率。

綠色部分,是二期的項目范圍,二期將解決部分特殊業務剛需的訴求,例如要支持“預付款”模式,“賬期”模式,“發票管理”,如果時間允許,可以一并實現若干報表查詢功能。

藍色部分,是三期的項目范圍,三期將聚焦風險控制,并強化運營功能。一般來講,很多互聯網公司初期會先跑業務,走流水,驗證可行性,成本和風險控制并不是特別在意,當業務具備一定規模時,則必須引入系統風控機制,做到事前、事中、事后的風險控制。此外,基于本案例B2B業務的特點,設計中并沒有考慮太多的C端功能。實際上C端只需要保證客戶能夠方便下單,并做一些很粗的運營、通知即可。

四、系統細節方案設計

系統整體架構和藍圖設計完成后,進入細節方案設計環節。建模部分建議由高級PM和技術負責人共同完成,界面、權限設計可以由高級PM帶領初級PM共同完成。

1、實體建模

實體建模是細節設計中最難,也是最重要的環節。實體建模代表將客觀世界的對象,抽象成結構化的描述。實體建模有問題,會導致后續業務和系統完全喪失擴展性和靈活性,甚至會很快就無法支持業務,需要推倒重做。

實體建模實際上是數據庫設計中最重要的部分,會影響數據庫表結構的設計,但更多體現了對業務本質的理解和認知。很多產品經理常常忽略實體建模,只關注功能界面設計,最終會陷入邏輯的混亂和旋渦中。

只要模型清晰合理,功能設計、界面設計都是水到渠成的事。我們將結合案例,以客戶模型設計為起點,詳細闡述實體建模的設計思路。

(1)理想化的客戶模型

首先回顧客戶訴求。目前的分銷客戶中,有比較大型的集團客戶,下設若干省市機構和庫房、門店。調研時,集團客戶有如下訴求:

  • 上海是中央倉庫,需要由上海采購員賬號下單配送到上海中央倉庫;
  • 廣州天河區是中央倉庫,需要由天河采購員下單配送到天河中央倉庫;
  • 廣州其他區是門店自采,需要由各門店采購員下單配送到各門店;
  • 廣東省需要有一個高級別采購員賬號,能夠幫廣東各倉庫和門店代下單;

以上訴求,是業務系統建設中,最經典常見的樹形組織機構管理訴求。不論是公司,還是客戶,作為企業,都有多層級管理的要求,希望軟件系統能夠支持多層級業務體系。

多層級機構管理,通常使用組織機構樹實現,在一顆樹上繪制出業務的管理層級體系。我們將分銷業務作為組織機構管理樹的根節點,客戶屬于子樹,樹形結構可以體現出客戶的行政管理層級結構。將賬號和門店(收貨對象,可以是中央倉,也可以是店鋪)作為葉子,掛在機構節點下。賬號管理的數據范疇(包括能給哪些門店下單,能查看哪些門店的數據),可以遍歷所在節點的子樹來實現。繪制示意圖如下。

通過組織機構樹,結合功能權限配置,可以實現集團客戶的管理訴求。上圖中實際上存在三個對象,組織機構節點,賬號,門店。通過實體建模ER圖,可以描述出三者的關系,如下。

每個機構都有一個“上級機構”字段,通過該字段描述的關聯關系,可以繪制出完整的組織機構樹。每個賬號或門店,只允許隸屬于一個組織機構節點,每個門店下可以維護多個收貨人。

實體建模的過程,就是將業務對象抽象,并描述之間的對應關系。例如以上ER圖,看似簡單,但卻是對組織機構樹以及賬號、門店管理體系的高度抽象。如果實現以上模型,可以支持任意靈活地集團客戶管理訴求。

(2)簡化版的客戶模型

實現組織樹模型,開發復雜度很高。經過和開發、業務溝通,最終決定采用一套簡版的客戶模型來支持一期業務,該簡版模型在需要時完全可以升級到理想版的客戶模型。

首先,和業務以及客戶溝通確認,一期暫不支持復雜的行政層級管理,只需要給客戶實現若干子賬號可以管理若干門店即可,示意圖如下。

這樣系統只需要實現一顆非常簡單的樹,每個客戶只有一個根節點而沒有子節點,以便業務系統開發時不需要編寫大量的遍歷算法,大大降低了開發難度。

根據上述規則,將模型簡化如下。

仔細觀察可以發現,該模型與前一個模型相比,唯一的變化,是在賬號和門店兩個對象之間建立了關聯關系,其他結構不變。實際上這樣處理,保持了模型未來的擴展性。當未來需要全面實現組織機構管理時,將賬號、門店之間的對應關系打斷,在業務系統中實現遍歷算法,以及組織樹管理維護功能即可,整個數據底層基本不需要調整。

(3)更豐富一些的客戶模型

業務需求中很重要的一條,能夠針對每個客戶每個門店的個性報價,設置不同的系數表,結合時價動態計算商品價格。這里涉及到幾個新的對象,系數表,報價單,為了讓管理可控,系數表是全公司通用的多套參數集合,包括了商品和價格系數,給每個門店關聯并且只能關聯一個有效的報價單,報價單關聯系數表,以保證運營人員只需要調整一次系數表,就能刷新到所有需要修改的門店的價格表。數據模型設計如下。

該模型體現了真實世界針對門店單獨報價的場景,同時也體現了價格系數表的設計思路。

?理清了賬號、門店、機構、報價單、價格系數表之間的關系,功能設計都是水到渠成的事情。如果沒有梳理清楚這些關系,功能設計、界面設計時必然是一頭霧水,漏洞百出。

(4)建模錯誤會導致擴展的災難

最后,我們來看一個建模錯誤導致災難的例子。如果我們將上圖數據模型中,賬號和門店的對應關系調整成一對多,如下。

設計人員可能會認為,目前的業務訴求很明確,一個門店只能被一個賬號管理,所以賬號和門店被設計成一對多關系。

如果有一天,客戶明確并要求必須支持一個門店被多個賬號管理,也就是要實現賬號和門店多對多的設計。實現此訴求,難度將非常非常大,因為從數據底層,到前端功能實現,都認為是一對多結構,如果要改成多對多,首先底層數據庫結構得調整,所有歷史數據要處理,其次,基本上所有涉及到讀取賬號和門店關系的功能代碼需要全部重寫,看似簡單的一個改造,會造成一場災難。

設計人員應該在設計之初,就要做好設計的預判。即便早期業務訴求是一對多,但是模型要按照多對多設計,因為這是在現實世界中合理的一種邏輯存在。即便早期沒有多對多管理的訴求,但只要模型和數據底層設計好,后續再調整會簡單很多。

那么問題來了,是不是所有對象的關系,都應該設計成多對多就行了呢?也不對,比如門店和訂單的關系,只可能是一對多,不可能是多對多,一個訂單只能是一個門店提交的,現實世界中不存在門店和訂單多對多的邏輯關系。

建模的難點和重點,就是將現實世界抽象成對象,描述其關聯關系。如果這些對象和關系沒有梳理清楚,流程、界面的設計都會是一筆糊涂賬。

2、用戶角色設計和流程圖

在整個方案中,我們設計了4個角色,來支持業務。

電商公司分銷業務部:

  • 分銷管理員 – 負責業務稽查,審核,分公司賬號的管理維護
  • 分銷運營 – 負責分公司客戶的賬號維護,報價管理

客戶:

  • 客戶管理員 – 負責下單賬號和門店的管理、維護,訂單查詢,對賬結算
  • 客戶采購 – 負責給門店下單

角色的設計,取決于業務對權責的劃分。用戶角色設計完成后,可以繪制更加詳細的,基于系統的流程圖,如下。

流程圖(以及頁面流轉圖)是所有軟件界面設計的基本前提,清晰的流程圖和各種異常情況的分支描述,可以讓后續的界面設計事半功倍。如果沒有清晰地流程圖,界面設計絕對會陷入混亂。

?3、界面設計

建模合理,流程清晰,界面設計會變的非常簡單。網上關于界面設計的文章也非常多,方法論也很多,比如尼爾森十大可用性原則,讀者可自行查閱,本文不再贅述,這里只講幾個建議。

(1)模仿是最好的設計

研究并借鑒成熟的軟件系統的設計,可以提升設計能力,少走彎路。網上有很多免費開放試用的系統,都可以用來參考,比如GoogleAnalytics,百度統計,管家婆云ERP,SalesForce等。結合你設計的軟件形態,找到行業內相似的SASS軟件,借鑒并參考其排版、布局,可以提高設計效率與合理性。

(2)拒絕花哨的前端

業務系統,不需要花哨的前端,不需要創意的控件。有很多初入行的PM,喜歡在交互設計上做太多的發明創造,對于業務系統,價值不大,并且會增加研發的工作量。我曾經見過一個業務系統,把其中的多選控件做的異常復雜,多選框中隱含了其他的交互形態,導致前端需要耗費大量的精力去定制開發實現,實在沒有必要。選用準的控件方案,可以節約PM和前端的大量時間。

什么叫標準的控件呢?MS Visio或Axure里提供的可以繪制的控件,就是標準控件。不要在這些標準控件以外去發明創造控件!

對于復雜一點的報表和儀表盤設計,推薦兩個組件庫,一個是百度的ECharts,一個是Eclipse Birt,里邊包含了大量經典的設計方案,這兩者都是開源的,可以直接拿來用。

?4、權限設計

權限設計,是業務系統設計中最重要的一部分。權限設計代表了對整個業務體系崗位和流程的理解和拆解。

?軟件系統的權限設計包含兩部分,功能權限和數據權限。功能權限是指不同角色可以操作的界面、按鈕等等,例如某一個角色在訂單查詢頁面能看到哪些字段,能操作哪些按鈕;數據權限是指不同角色在同一頁面中看到的數據范圍,例如分公司管理員在訂單查詢頁面能看到分公司的所有訂單,而區域主管只能看到所在區域的訂單。

功能權限設計的經典方法論是RBAC(Role Based AccessControl),描述了一套用戶、角色、權限組的設計理念,簡單的可以抽象為以下實體關系圖。該理論具體的講解,讀者可在網絡上自行查閱,請讀者理解RBAC的數據模型圖,可以看出,軟件系統的設計,即便是權限管理體系設計,最終也都會歸結抽象到數據模型的設計。由此可見,抽象建模能力,是PM必須掌握的核心技能。

我們將權限管理部分,進一步做一個延伸討論。

假設我們實現了前文提到的完整的組織機構樹,同時也有完善的權限控制體系,此時,系統可以完美的支持各種復雜的業務場景訴求。

我們在之前的角色設計中,新增一個角色“客戶采購員2”,其中“客戶采購員2”和“客戶采購員1”的區別是,前者的數據權限范圍,是查詢用戶當前所在組織機構樹葉子上的數據,而后者能夠查詢用戶當前所在組織機構樹葉子,以及葉子下邊所有子節點的數據。

客戶的組織架構如下:

不同賬號,所能看到的數據權限范圍見下表。請讀者結合上圖和下表,自己做出判斷,賬號4能查看哪些門店的訂單數據。如果您理解了這個案例中隱含的邏輯,則掌握了業務系統權限管理體系的主要核心思想。

?5、技術方案與項目實施

產出PRD以后,進入了技術設計和實施環節。當然,對于一套全新的系統,技術設計可能很早就已經啟動。再往后,就進入實施環節,以及上線后的持續迭代和產品運營環節。以后有機會單獨介紹此部分話題。

?六、總結

至此,我們結合一個實際案例,完整的介紹了一套系統從無到有的設計。介紹的重點是調研、架構、模塊、建模、權限,對于交互、界面等細節一筆帶過。實際上,文中已經多次強調,并且讀者現在應該也有了充分的認識,抽象、流程、建模才是業務系統設計的重點和核心,只有將業務最本質的東西高度剝離并正確抽象,才能構建一套靈活強大的系統。

對于一名后端產品經理來講,以下經驗和技能必不可可少。

  • 具備基本的商業、管理、運營常識;
  • 理解商業模式、業務目標、組織、流程;
  • 理解公司的企業應用架構和系統現狀;
  • 具備將客觀世界抽象成架構、模塊、模型的能力;

路漫漫其修遠,后端產品經理的成長是一個厚積薄發的過程,需要長期的堅持、積累、思考。希望本文能夠幫助讀者對系統的設計有一個大體的認知和理解,并融入到工作中,形成更深層次的思考。

插播一條廣告

大家好,我是《決勝B端》作者楊堃,曾在VIPKID任產品總監一職。在工作中,遇見有很多優秀的B端產品經理,但缺少體系化、針對B端產品的實操訓練,在成長中走了許多彎路。

我努力將自己多年做B端產品的經驗提煉總結出來,和起點學院聯合打造了一門B端產品體系課——《To B產品實戰訓練營》希望能給需要的同學一些實質性的幫助。

幫助大家構建B端產品知識體系脈絡,掌握B端產品建設,從業務診斷、需求分析,到抽象建模、設計落地的全過程的方法思路,最終直接應用于工作實踐。

掃碼即可報名,還可為大家爭取到的專屬優惠~

立即搶座,報名成功后即可領取詳細課程資料!

作者:楊堃(微信號公眾號goYangKun),9年互聯網研發、產品設計經驗,曾就職于傳統外資保險公司,百度,現就職于vipkid。

本文由 @楊堃 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自 Pexels,基于 CC0 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 好難 ??

    來自北京 回復
  2. 還是畢業時就看過,但沒有看到骨子里,現在做了項目后自己總結,回過頭來看看別人怎么做,大體的思路都是差不多的,差別在于每一塊做的精細度

    來自廣東 回復
  3. 確實是一個比較完整的文章。

    來自四川 回復
  4. 從ERP實施轉型到CRM產品設計,看了很多文章,這是難得的干貨。期待后面更多的分享

    來自北京 回復
  5. 很有深度和干貨的文章,即使從零開始搞過RBAC模型,也沒有大神的總結精辟,帶來很多的啟發,不過有一個疑問,對于權限模型和實體建模,作為產品,需要做到這么詳細的階段?這個不是應該架構師或者資深研發來統籌?

    來自廣東 回復
    1. 其實目的不是非要做模型,而是幫助抽象設計的思維方式。如果抽象部分想通了,很多頁面設計就都解決了。

      來自北京 回復
  6. 很有用,感謝!

    來自四川 回復
  7. 這篇文章每次看都有新體會,就是還沒摸透,得再多實戰些,謝謝作者分享

    來自廣東 回復
  8. 賬號4對應的數據范圍是門店2、3、4、5的訂單嗎?

    來自北京 回復
    1. 賬號4是客戶管理員,對應當前節點及以下節點,所以我理解是門店2,3,4,5的訂單

      來自廣東 回復
  9. 樓主是先根據業務主題流程把三套系統做出來,然后再進行角色和權限的設計?還是初期已經定義好了角色,每個角色都有自己的業務流程,再根據業務流程去設計系統?

    來自廣東 回復
    1. 先把整體流程梳理清楚,角色初步確定好,再考慮怎么拆系統

      來自北京 回復
    2. 問這個問題的背景是想確認我當時做系統的做法是否有偏差,因為當時有兩種方案,就是上面回復的那兩種;我設計的分銷系統的做法跟樓主前兩步一樣,沒有分為不同的系統(疑問1:樓主的做法是不是不同角色進入的系統是不一樣的);
      上面寫的組織架構圖當時我也有設計,但是建模并沒有參與(疑問2:作為一個PM需要對建模知識有所了解或者深入的了解?)
      經驗比較淺,當時挖坑不少~ ~有些地方想請教請教前輩哈哈

      來自廣東 回復
    3. 1,是的,分成幾個系統的原因文章中寫了,具體是否分子系統要看業務上和系統上的隔離性有多大
      2,最好了解并進行建模,界面設計背后的邏輯就是模型的規則,如果模型沒理解,界面設計也容易出錯。
      實際上平常工作中的討論經常會界定多對多,多對一的關聯關系,無形之中已經掌握了,只是沒有系統性的思考過。

      來自北京 回復
  10. 受益匪淺 感謝~~~~~~~

    來自浙江 回復
  11. 太強了真的

    來自北京 回復
  12. 方便介紹一下業務流程嗎?業務流程不說清楚,很多節點的處理不是很理解

    來自北京 回復
    1. 流程圖里有大體的,太細的以后有機會再細化吧。

      來自北京 回復
    2. 感謝~
      ??

      來自北京 回復
    3. 方便加個微信嗎?我是后臺產品,希望多像你請教請教~
      我的微信號:15810723357
      ??

      來自北京 回復
  13. 寫的太好了,對于我們這些正在進階的后臺產品經理來說非常有幫助,拜讀了。一直在想象真實系統的樣子,如果能附帶原型和PRD就更棒了!

    回復
  14. POI是什么意思啊

    回復
    1. 信息點~ point of information~

      來自四川 回復
  15. 看了這篇文章,路轉粉了,專門注冊過來點贊 ?? 怒贊

    來自四川 回復
  16. 受教了,很專業,能寫出這篇文章的PM起碼得有個好多年的功力。細節描述的很好,比如系統內外網部署也分的很清,感謝分享

    來自江蘇 回復
  17. 已經作為指導性文章,分享給團隊的小朋友,讓他們整理成思維導圖,^_^

    來自江蘇 回復
  18. 理論聯合實際,講的很有道理。更加適合乙方為甲方服務的項目。對于純甲方內部的項目,還有一些點需要微調。

    來自江蘇 回復
  19. 學習了,謝謝。

    來自廣東 回復
  20. 我在設計的時候,還會對各款產品/模塊定調性,防止在演變過程中丟失了初衷。例如 朋友圈就是能瀏覽朋友圈最近發布的動態,聊天界面就是和朋友進行聊天和互動的。

    來自浙江 回復
  21. 說得很好,從頂層設計出發。而且當沉浸到某個行業某種業務的時候,會發現很有意思,原來整個系統是這么運轉的。而且當你建模出來了,會覺得這個模型是如此美妙。而且其中有很多權衡,你把功能做得擴展開放,可能就要考慮更多問題,會出現冗余。而且業務前景也不一定明朗,各種因素交接在一起,就得權衡利弊

    來自浙江 回復
  22. 看到你就職的企業,然后發現我同事正好去你那了

    來自北京 回復
  23. 很受益,老師寫的很詳細,感謝分享!

    回復
  24. 文章如醍醐灌頂,打通我任督二脈!

    回復
  25. 之前做內部業務,現在做通用SaaS。有個問題很有意思,在設計系統的時候,為了應對未來業務變化,在對象、業務規則的設計上喜歡解耦合(你提到的多對多設計),這個思維很像為修改封閉為擴展開放,但是很多時候變化可能來的沒那么快,也可能變化沒了。平衡靈活和快速支持業務算是一門火候。

    來自北京 回復
    1. 你說的很對,最難得就是在擴展性和效率之間做權衡,有的時候想得太多,結果沒半年業務就停了

      來自北京 回復
    2. 嗯,經??茨阄恼拢С种С郑?/p>

      來自北京 回復
    3. 能具體談一談嗎,對于功能是否需要進行抽象,以及和快速支持業務,二者之間怎么去權衡呢?感覺saas系統和內部系統就這點而言完全是走兩條路

      回復
  26. 真的很收益,感謝分享

    來自江蘇 回復
  27. 厲害,太贊了;本人目前也想往B端轉,請多多指教;

    來自江蘇 回復
  28. 寫的太好了,受益匪淺,非常感謝

    回復
  29. 必須贊,寫得非常好!

    回復
    1. 很專業

      回復
  30. 頂層架構,流程,業務,點 面感悟,細節清晰,流暢,很不錯的。

    來自四川 回復