產品進階設計思路:業務的抽象建模
很多新手朋友經常會聽到一個詞叫抽象建模,那么這個抽象建模到底是什么意思呢?本篇文章我們就來為大家來解釋一下這個詞。
回顧我之前所設計的系統,我最大的感受就是產品經理需要不斷地對復雜業務進行抽象建模,從而讓復雜非理性的事物(需求)變得有非常明確的規則,各個業務之間有清晰的劃分。
那么很多新手朋友經常會聽到一個詞叫抽象建模,那么這個抽象建模到底是什么意思呢?本篇文章我們就來為大家來解釋一下這個詞。
1. 業務組件提取(抽象建模)
其實抽象建模是產品設計中的一個很重要思路,它能幫助我們將一些看似沒有任何規律的業務進行一個標準化,就拿我們產品經理來說,現在相信大家都知道產品經理的工作流程是如下的這幾步:
用戶訪談、分析用戶場景、梳理需求優先級、需求版本規劃、需求設計、需求評審。
但是大家有沒有想過是誰當初第一個提出這樣的標準工作流程?這樣的人就很厲害了。
那么說了這么多,到底抽象建模的本質是什么?這里我可以用一句話來進行概括:業務組件提取。
所謂業務組件提取,就是指我們在進行業務分析過程中,不斷將業務劃分成若干個小的組件與模塊。例如我們可以將電商系統劃分為商品中心、訂單、支付、物流、會員這五大組件,通過這五大組件共組建起了一個完整的電商系統。
那么在這過程中我們將一個完整的在網上下單購物的流程拆分成這五大部分就是一個業務組件的提取,當然,這里的又組建提取并不是只是在系統層面的劃分,我們很多時候在產品內部設計的時候也會遇到很多業務組件的提取。
2. 一個案例
下面我用一個案例來給大家示范一下如何進行業務組件提取。
假設我們要設計一個在線教育平臺APP,首先分析這個教育平臺的系統框架,我們會發現在這里本質上就是要對三個對象進行管理,如下圖所示:
- 課程資訊:實時推送最新資訊;
- 課程電商:顯示出售的課程;
- 學生題庫:供學生選擇適合自己的習題冊進行練習。
面對這樣的一個需求,我們想一想平時我們會怎么樣去進行產品設計?
我相信絕大多數的產品經理都會按照將這三個對象視為三個完全不同的模塊進行獨立的信息架構與頁面結構進行產品設計,例如設計資訊中心時的思考路徑如下:
那么如果用組件化的思維來進行思考的話,我們其實可以完全去將這三個對象視為三組數據,那么站在數據視角上來看,此時我們需要設計的產品實際上就是為這些數據去尋找可以承載的組件。
那么這個時候,我們就可以得出這些數據都有如下三類承載需求:
- 信息分類選擇的需求:劃分不同功能入口;
- 集合類展示的需求:列表展示多個對象個體以供選擇;
- 個體類展示的需求:展示詳情。
這樣我們就將看似毫無關聯的三個對象抽取出了一個標準的頁面組織架構,也就是:
按照這樣的設計結構,我們就可以將這三個數據對象。定義為如下的數據組織:
集合類數據:
集合1:
- 課程資訊集合
- 資訊記錄集合
集合2:
- 課程電商集合
- 課程記錄集合
集合3:
- 學生題庫集合
- 題庫記錄集合
對象實例數據:
- 本條記錄的數據摘要;
- 本條記錄的數據屬性;
- 本條記錄的數據詳情;
根據這樣的數據結構,我們就能得出最終的產出:
我們可以看到通過這樣的設計,我們成功的將這三類對象合并到了一套程序組件載體中,此時如果我們需要進行迭代,只需要調整一次三個數據對象都會發生改變,大大節省了開發人力。此外這樣的設計也讓后臺系統在某種意義上只需要進行數據源格式的不同管理即可,而數據接口等都可以高度復用。
那么我們再設想一下,如果沒有按照這樣的頁面組織架構進行產品設計會遇到什么樣的問題?
首先我們對這三個對象需要定義完全不同的跳轉路徑,需要維護各自相互獨立的頁面結構與路徑,導致我們需要對這三類數據在前臺維護三組不同的頁面代碼。
在后臺則對于這三組對象我們還需要有不同的表結構、數據接口以及數據消息體格式,因此很多時候開發的工作量就是因為很多產品經理在設計功能模塊的時候沒有按組件進行規劃,導致增加了整個系統的開發成本。
3. 最后
我們在日常的產品設計過程中一定要學會使用組件化的思考方式對每一個業務單元進行抽象建模,從而使我們抽象出的組件變的標準且統一,從而降低整個系統的開發成本。
#專欄作家#
三爺,微信公眾號:三爺茶館,人人都是產品經理專欄作家。曾萬達高級產品、MBA特約講師、獨立創業者,現某支付公司產品線負責人,擁有多款集團項目從零到一經驗并帶領實現商業化布局。
本文原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
舉的例子是為了抽象而抽象,沒有現實意義
舉的例子感覺是有前提的,這三個業務的邏輯大概是一致的,都是從列表到明細,并不適合更常見的三個不同業務邏輯的情況。該思路對B端更有幫助一些,C端感覺不太適用。
那三個不同對象用一個結構來承載,太勉強了,尤其是三個對象的屬性差異很大的時候
沒有很了解透徹啊,有沒有再講的更透徹點的文章?
受教了。正好這兩天開始學習如何抽象業務組件。以前從沒接觸過,真的是難以想象。。。請教個問題,抽象業務模型的需求應該是什么樣子的?我會寫功能需求,但業務組件沒接觸過。。。這點總是被開發挑戰。
抽象目的不是為了復用,復用只是附屬品,不要被帶偏了。我認為抽象是用來了解整個系統、業務的方法,使用抽象可以將系統進行拆解,可以客觀的進行描述加以封裝。
說的對!
嗨你好啊 我也遇到一樣的問題,咱們私聊一下呢
從橫向展示功能,轉換為從縱向量化標準
哈哈,總結到位!
另外,圖片中的 習題1那里的文案應該是寫錯了吧,望更正。
看完后有很多不明白的地方,簡單點的理解就是將思考的維度從功能思維,轉換為數據思維去理解,是這個意思嗎?