從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、業務系統設計的流程

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

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

一般來講,一套業務系統從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. 報價單調整一次之后,同步到所有門店。這個前面沒有問題,后面的時候這個門店還能調整報價單嗎

    回復
    1. 報價單不是門店來調整,每個門店的報價單是固定的,調整是根據價格系數統一調整的。調整的參數是其他東西影響。

      來自廣東 回復
  5. 今年在跟一個大型企業軟件項目,看了老師的書,發現書中的內容能夠很好的和工作結合起來,哈哈

    來自山東 回復
  6. 非常系統地介紹了業務系統從0到1的過程,總結的非常贊,思路清晰,值得學習

    來自安徽 回復
  7. 這篇文章看了我1個小時左右,適合收藏,反復來讀,再深度理解

    來自安徽 回復
  8. 堃哥,獻上我的膝蓋都不能表達我的佩服

    來自山東 回復
  9. 真的很棒,對我幫助特別特別大。早點看到可以少走很多彎路!

    來自浙江 回復
  10. 產品小白 很多地方和概念東西都沒看懂 收藏著慢慢來深入學習!

    回復
  11. 看了一遍沒太看懂,收藏著,等水平提升了再來看

    來自廣東 回復
  12. 寫得很棒、刷的第N遍

    來自河南 回復