深度長文(一):什麼是產品架構?

2021-01-07 人人都是產品經理

一切脫離業務的架構都是耍流氓,產品更是如此。本文主要先跟大家整體講一下產品架構的基本概念和方法~enjoy。

我們常常會看到「產品架構」這個詞,甚至能看到有些公司專門有一個叫做「產品架構師」的崗位。

說起架構,很多人會覺得很虛,那麼到底什麼是產品架構呢?

我們知道開發有專門的一個崗位叫技術架構師,推己及人,我們先看下技術架構師是幹嘛的?

架構師能對線上業務進行模塊劃分,系統拆分重構,並做好相關高可用的措施,以保證系統的穩定,安全、高效地運行。簡單來說這是一個既需要掌控整體又需要洞悉局部瓶頸並依據具體的業務場景給出解決方案的團隊領導任務。

先來看下技術架構師的幾個核心關鍵字:

權衡與平衡抽象、建模與設計預見性和前瞻性簡化之美模式與重用質量、效率與資源敏捷、迭代與演進前構與重構本質上,技術架構的關鍵字同樣適用於產品架構。

技術架構中有一句比較流行的話:一切脫離業務的架構都是耍流氓,產品更是如此。

我考慮把「產品架構」寫成一個系列文章,這篇文章先會整體講一下產品架構的基本概念和方法,對於上述關鍵字的深度解析。

一、什麼是產品架構?

1. 先來看看「人」的構成

(1)從原子水平60多種重要的,如:氧佔約65%、碳佔約18%、氫佔約10%、氮佔約3%,(這四個元素約佔人體96%)。其他元素較少,但也很重要。

(2)從分子水平上說,水約佔人體約60%,碳水化合物和脂肪佔人體約14%,蛋白質佔人體約17%,其它如維生素、礦物質、纖維素等。這些是人體的七種營養素,這七種營養素在人體中每一個都扮有非常重要的作用,不可缺少,也不可過多。

(3)在細胞水平分析,人體由細胞、細胞外液及細胞外固體組成,細胞是組成人體的基本單位。

(4)在組織水平分析,人體是由四大組織組成,即上皮組織、結締組織、肌組織和神經組織。

(5)在器官水平分析,多種組織以不同的編排形成器官。人體內有很多器官,如胃、肺、心、腎、脾、胰、肝、膀胱、尿道、子宮等。

(6)在系統水平看,共有9大系統。如消化系統、呼吸系統、脈管系統、內分泌系統、神經系統等等。

我們以消化系統做一個比喻,就很清楚了。先來看下消化系統的示意圖:

我們會發現人體消化系統:

由很多器官組成:由消化道和消化腺兩大部分組成。能形成一套自發的運作流程:食物進入口腔、咽、食道、胃、小腸(十二指腸、空腸、迴腸)和大腸(盲腸、闌尾、結腸、直腸、肛門),最後排出肛門,流程結束。其中消化腺分布在消化道管壁附近,並將消化液排入消化管內幫助消化食物。有必要的功能作用:食物的消化和吸收,供機體所需的物質和能量。

2. B端業務體系的構成

「人體的消化系統」非常像「B端的業務體系」,比如一個患者來診所看病:客戶需要先在網上預約,然後在約定時間到診所登記、看診、付費、取藥,最後離開診所。

整個業務流程由很多」器官」組成:「軟性器官」比如預約、登記、看診、付費、取藥等模塊,「硬性器官」比如醫生、護士、藥師,以及對應的藥品、材料、叫號硬體、印表機等等。

這些軟性和硬性的「器官」在整個流程體系中相互協同發揮著不同作用,才能夠讓患者在流程中順利的往後推進,直至到達流程的終點。這套業務體系發揮的作用就是有序的讓患者得到診療。

說完了人的消化系統,再反觀B端業務,我們會發現很多相似之處:

消化系統——業務流程體系組織——底層基礎模塊器官——一級業務模塊細胞——二級業務模塊分子——頁內tab(三級業務模塊)原子——欄位這裡出現的「底層基礎模塊」、「一級業務模塊」、「二級業務模塊」等本質上就是對業務的分層。

(1)定義層級

一般來說B端產品的分層基本就是按照上述(2)-(6)的維度進行劃分的,可視業務複雜程度適當增加或減少層級。

(2)完成分層

將同一平臺下、同一職能下、同一角色下具有高度關聯的子模塊分到同一層母模塊中,這就需要你作出判斷哪些模塊是業務相似度和關聯度都非常高的。

事實上(2)-(6)構成了業務的結構,每個維度模塊們的任意一個模塊都是結構中的節點,他們之間相互獨立,但又相互關聯、相互影響。

類似計算機網絡的結構:

所以我們看到:B端業務的核心在於業務流程+結構,且業務塑造的結構是為業務流程而服務,什麼樣的業務流程決定什麼樣的業務結構。

3. B端產品架構的構成

產品架構就是對業務的結構化抽象!根據業務體系的分析,我們看到其實TO B產品最後就是要抽象出準確的流程+結構。

我們常常說一個功能,或者一個業務場景的解決方案,本質其實就是一個小系統。

在這個小系統中,上面那些「底層基礎模塊」、「一二三級業務模塊」、「欄位」等各種節點支撐了這套業務流程,從而使得這個功能(解決方案)能夠形成閉環,並順利的運轉起來。而眾多功能/解決方案又構成了一個產品整體,就像這些眾多的相互獨立、相互作用、相互依賴的小系統組成了一個大系統。

再強調下:大家要記住TO B業務中,流程是核心,結構都是圍繞業務流程進行劃分和設計的。所以流程的優先級是大於結構的。

二、如何繪製業務流程圖?

一款產品的主要核心業務流程的脈絡一定是非常清晰的。比如:這是一款自助開票軟體,那麼核心流程一定是用戶掃碼自助填寫開票信息,並由系統完成開票,並發送到用戶手機/郵箱。比如:這是一個電商平臺,那麼核心流程一定是選購商品,添加購物車,下單完成支付。

當然B端複雜的業務場景往往會有多條主業務流程,並且附帶了很多分支流程。

我們在畫流程的時候,首先要定義橫縱向維度,其次就是劃分模塊。

一般來說,流程圖的縱向維度可以做成職能部門/角色/平臺層;流程的橫向維度可以進行平臺層/模塊層的劃分。

以下圖「拼團功能」為例,橫向是平臺層,縱向是模塊層,這是一個跨平臺跨模塊的產品需求。可以看到在這個業務流中,一級模塊劃分出了營銷、商品、訂單、統計模塊。本質上劃分模塊就是對業務流的解耦。

三、模塊劃分的基本原則?

根據上述流程構建的一個非常簡單的產品結構圖:

(這個結構圖略去了很多,只是想做個示意)

這其中我們看到劃分出來了「商品」、「活動」、『訂單「、」統計「,加上「商家管理」、「消息推送模塊」共6個模塊。

那麼在劃分模塊的時候我們要關注哪些原則呢?

1. 關注低耦合

(1)什麼叫解耦?

藕斷絲連,這個詞語非常形象,業務體系就像一個藕,業務內部的模塊之間的相互關係就像藕絲一樣錯綜複雜,又互相依賴、聯繫緊密(耦合),解耦就是把藕折斷,分成獨立的兩部分。

本質上它是把場景不同、業務屬性不同的模塊進行拆分,歸為不同的兩類,但是因為兩者都為業務流程服務,這其中難免會有相互協同的地方,於是就會有絲連的情況,這種絲連體現在流程中。

(2)解耦的作用?

解耦能夠讓場景更聚焦,讓功能模塊更聚焦垂直業務。比如積分模塊,凡是跟積分相關的一切業務需求,如無特殊情況,都可以被歸集到積分模塊中。對於需要用到積分的其他業務,則可以通過開放一些標準接口供其他業務調用。

最忌諱的是把另一個業務(隨便舉個例子比如活動模塊:抽獎活動,抽中就送積分)和積分模塊聚合在一起,這會導致,任何一個模塊要做修改和迭代時,都會最大程度的影響另一個模塊,導致無論產品還是技術的迭代成本都異常之高。

2. 關注角色場景

對於不同職能/角色不同的使用者,他們的業務場景,工作內容必然會有區別,我們不能把他們各自使用的功能權限放在一個模塊內,這會帶來很多問題:

A和B的模塊發展方向完全不同,導致模塊的發展南轅北轍;A和B的模塊關聯度很低,產品功能上兩者聚合在一起顯得毫無意義;用戶不希望A的模塊可以被B看到和使用,兩者的權限不同,但是由於同屬一個模塊而導致權限非常難劃清邊界。所以對於不同職能/角色的使用者,儘量將他們各自所要用到的產品模塊拆分開來,保持各自的獨立性,是模塊劃分的一個重要依據。

3. 關注數據流

業務流程可能會以一個人、或一個主體為中心進行流轉。而數據流是隱藏在表象之下的另一個流程,他是以數據為中心進行流轉的。

一般來說,C端產品的數據流,基本只需要考慮前後臺的數據流轉情況即可。但是B端就會複雜一些,B端saas產品數據往往貫穿C端功能,還會出現跨平臺、跨模塊的數據流傳。

數據流的作用,能幫助你更清晰的劃分模塊。

四、如何設計產品結構?

1. 產品結構設計的範圍

產品結構設計包含多層維度的設計,主要有如下5層維度:

系統層面的結構——如何分平臺/系統;版本層面的結構——如何分版本/權限;模塊層面的結構——如何分模塊/二、三、四、五級模塊;頁面層面的結構——如何分頁面/頁面信息;產品內在邏輯結構——如何用邏輯串聯。產品結構的在用戶端的展現就是信息結構。這點相信大家都懂,無非是頁面層級、頁面內部信息層級的劃分、信息內容的分類和展示。

其次就是產品內在的邏輯結構:

比如某個配置項應該放在功能模塊內還是基礎模塊內?比如在連鎖系統中,會員是放在連鎖維度還是單店維度?比如直接在營銷活動中創建電子券,還是先在電子券模塊中創建,然後營銷活動進行引用?這些其實都屬於產品功能層面的架構。

2. 產品內在邏輯架構設計的7個核心原則及10個案例

易用性——從用戶使用體驗層面考慮;可擴展性——迭代、修改的成本最小化;技術實現性價比——技術實現成本是否過高不匹配功能價值,按性價比高的去設計;普適性——每個單元模塊是否可以被其他單元無限重用;熟悉業務——違反業務習慣的邏輯設計不能出現;掌握產品發展方向——預見產品在中短期內的發展方向,提前考慮進去;從簡單到複雜——任何一個產品都是從最小MVP開始的,千萬不要在開始就架構一套複雜的系統。關於一些結構設計上,我給大家列一些比較高頻出現,比較常見的B端產品(不同緯度的產品架構思路)小例子:

(1)比如我們有一套面向商家的門店經營管理系統,這時需要一個有一個卡券平臺,跟門店管理系統中的業務有著密切的關係,這個時候你該定義這是一套系統還是兩套系統?他們的關係是什麼?邊界在哪裡?

(2)比如我們做了一套診所管理系統,後續要垂直化專科式發展,那麼到底是通過拆分版本,完全一個科室一個獨立的版本?還是做在一套系統裡,然後通過權限劃分 更合理呢?這其實就是產品架構的一部分

(3)比如對於電商類的saas,很多是非協作型的,也就是說模塊之間並沒有嚴格的強聯繫,相對比較獨立,獨立作為一個B端業務閉環,可單獨使用。但是像診所saas,則是協作型的,即業務流程涉及到多模塊多角色,每個角色都需要在流程中承擔一部分工作職能。非協作型和協作型的系統設計的思路也是不同的

(4)比如我們在設計電子券的時候,我們是通過一個步驟完成創建+投放,還是通過創建一個步驟+投放一個步驟完成流程?背後的考慮因素是什麼?

(5)對於一些業務流程的設置項,是放在後臺該業務模塊維度,還是基礎設置模塊的維度?

(6)比如原先要設計商品管理模塊,考慮的主要是單店模式,跨店的商品管理是隔離的,但是當跨店客戶提出想要統一管理商品,並可以支持總分店和分店之間的商品調撥的時候,單店商品管理的設計方案就無法支撐這樣的業務模式,需要做大規模的底層改動

(7)確定維度,比如哪些指標是單店維度,哪些是機構維度,比如預約是放在後臺「診所管理」裡面,還是單獨放在後臺「預約管理」中?放在哪個維度又是基於哪些原因考慮的?

(8)業務的不滿足性,比如我們在做一款電子券的時候,考慮了線上場景,但是還要考慮線下場景,這就需要電子券模塊下需要投放到線上(多個渠道)、線下(二維碼、簡訊等),那麼渠道後續可能會進行變更,那麼假如我們把創建+投放一步完成,那麼未來我們要改動渠道,就會影響整個卡券流程,如果我們能分2步,那麼只需要對第二步投放進行修改就行,這樣系統的可擴展性就會強很多

(9)比如對於訂單模塊的架構設計,是否能夠支持各種營銷活動:滿減、卡券、積分抵扣等,具備足夠強的業務包容性

(10)重複被使用的模塊,如何避免重複造輪子!比如電子券模塊,在很多營銷活動中都會用到,比如簡訊消息模塊,在很多業務中都會用到,那麼這些被高頻用到模塊就應該抽離出來,而不是每個業務環節中都去做一遍。

3. 產品架構必備能力

當然作為一個產品架構師,要完成這些事情,對於能力的要求也是非常高的,最主要的4點:

懂業務;預見能力,預見未來業務流程、業務模式的變化趨勢;成熟的B端產品結構化思維;懂技術原理,懂技術原理最大的好處就是能大概評估這個設計方案的技術成本,並推動自己選擇更合適,投入產出比更低的設計方案。

總結

產品架構其實是一個非常複雜而宏大的話題,這篇將近5000字的文章也只是起了個頭。

我想說的是,產品架構不只是給產品搭個框架,他出現在產品設計的方方面面中。

通過這樣的架構思維幫助產品最均衡的匹配用戶的多樣性需求,匹配公司的大研發資源,匹配合適的時機把產品做到合適的程度等等。

這是一個系統性的工程,好的架構能夠支撐業務發展多年而不重構,更能讓用戶嘖嘖稱讚。

我想這就是產品架構的魅力吧!

作者:司馬特小隊,丁香園高級產品經理。

本文由 @司馬特小隊 原創發布於人人都是產品經理,未經許可,禁止轉載。

題圖來自Unsplash,基於CC0協議。

相關焦點

  • 深度講解!考研英語長文突破法
    摘要:首先問一句,英語閱讀的長文問題是不是難倒大家了?   摘要:首先問一句,英語閱讀的長文問題是不是難倒大家了?
  • 軟體測試架構師工作職責是什麼呢?如何成為一個合格的架構師呢?
    如下從四個大方面,介紹測試架構師需要做和不需要做的事情,我們可以更充分的認識軟體測試架構師這個職位,同時也能作為軟體測試工程師的努力方向做參考。一、測試架構師在需求分析中需要做什麼??1、理解產品的商業目標(1)公司中的營銷和銷售如何細分市場客戶?(2)每個細分市場的關鍵價值主張什麼?(3)公司試圖增長哪些細分市場?如何增長?
  • 數據科學家必須知道的 10 個深度學習架構
    目錄什麼是深度學習「高級架構」?AlexNetAlexNet是第一個深度學習架構,它是由深度學習先鋒之一——Geoffrey Hinton和他的同事們共同研究並引入的。AlexNet是一個看似簡單但功能非常強大的網絡架構,它為現在深度學習的突破性研究鋪平了道路。下圖是AlexNet架構:
  • 人工智慧利用單眼強度圖像進行面部深度圖估計的對抗架構深度學習
    人工智慧利用單眼強度圖像進行面部深度圖估計的對抗架構深度學習 人工智慧利用單眼強度圖像進行面部深度圖估計的對抗架構深度學習 2018-06-05 11:36:53  來源:今日頭條
  • 一文看懂arm架構和x86架構有什麼區別
    本文主要介紹的是arm架構和x86架構的區別,首先介紹了ARM架構圖,其次介紹了x86架構圖,最後從性能、擴展能力、作業系統的兼容性、軟體開發的方便性及可使用工具的多樣性及功耗這五個方面詳細的對比了arm架構和x86架構的區別,具體的跟隨小編一起來了解一下。
  • 英偉達Volta架構深度解讀:專為深度學習而生的Tensor Core到底是...
    在 2017 GPU 技術大會(GTC 2017)上,英偉達 CEO 黃仁勳正式發布了新一代處理器架構 Volta,以及使用新架構的第一款設備——適用於深度學習任務的加速卡 Tesla V100,英偉達將這塊顯卡稱為全球最先進的數據中心 GPU。
  • 深度學習到底有多深? | 人人都是產品經理
    通過上面的例子大家可以看到,深度學習的應用非常的廣泛,小到很有趣的表情投影,大到圍棋人機大戰。也就是說深度學習的空間很廣,想做一個深度學習的產品也不是我們想像中的那麼深奧,但是要想做得特別強大還是會有很多困難的。那深度學習究竟是什麼,接下來就和大家詳細討論下。02 什麼才是深度學習?
  • 實例分析:一整套業務系統產品技術架構的方法論
    所以在搭建產品架構的時候則要求產品經理非常懂業務,考驗PM能力的同時,對技術架構也具備很大的挑戰。首先,思考一下好的產品(業務模式)是什麼?三要素的順序一定是從功能到系統,最後是架構先說功能,功能元素指的是一系列的操作集合,能構成一個完整的功能,比如:登錄、註冊。使用者通過一個功能元素完整的完成一項唯一的工作,技術上可以叫做模塊,產品上稱為功能。當然在產品設計和持續迭代過程裡,常常很難如此實現唯一。
  • 10 大深度學習架構:計算機視覺優秀從業者必備(附代碼實現)
    我想和大家分享的是一項關於研究社區開發出的高級架構的調查。 本文包括深度學習領域的最新進展、keras 庫中的代碼實現以及論文連結。為保證文章簡明,我只總結了計算機視覺領域的成功架構。 什麼是高級架構?
  • 架構師分析 架構的重要性
    技術需要架構,晶片的架構,軟體需要架構,公司需要架構,建築需要架構,產品需要架構,人也需要架構,聊聊架構的話題。   忘了哪裡看的文章有一句話,「架構不對,什麼都不對」  這是有道理的,架構是我們搭建一棟樓,一個項目,一個公司,一種技術的基礎,就用晶片為例,晶片的架構好壞,覺得了晶片的功耗,晶片的性能,晶片的速度。同樣的,公司如果有好的架構,公司的執行速度,公司的協同能力,公司的成本都會不一樣。
  • 一文解密!最近火爆的SEA浩瀚架構到底是什麼?
    當然是吉利控股發布的全新架構——SEA浩瀚架構。歷時4年,投資超過180億元,在電氣化成為汽車行業未來發展趨勢的當下,這款全新的智能純電架構從一開始,似乎就是衝著顛覆行業水平來的。全球主流媒體爭相報導,SEA浩瀚架構什麼來頭?SEA浩瀚架構一經發布,就引起了全球各大主流知名媒體的廣泛關注。
  • Ampere架構GPU帶來了什麼
    Ampere架構GPU帶來了什麼 比特網 發表於 2020-12-01 10:39:19   在今年10月份,NVIDIA正式發布了採用8nm製程工藝Ampere架構的
  • 深度| 逐層剖析,谷歌機器翻譯突破背後的神經網絡架構是怎樣的?
    選自SMERITY機器之心編譯谷歌神經機器翻譯(GNMT)論文《Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation》描述了一種將深度學習融入產品的有趣方法。該論文和架構是不標準的,在很多情況下偏離學術論文中的架構。
  • 什麼才是真正的架構設計?
    作者:規速一. 什麼是架構和架構本質在軟體行業,對於什麼是架構,都有很多的爭論,每個人都有自己的理解。此君說的架構和彼君理解的架構未必是一回事。因此我們在討論架構之前,我們先討論架構的概念定義,概念是人認識這個世界的基礎,並用來溝通的手段,如果對架構概念理解不一樣,那溝通起來自然不順暢。
  • Volta 架構強化版?NVIDIA 圖靈架構將搶佔專業市場先機
    早在今年年初,NVIDIA 就已經傳出將在下半年推出全新的繪圖架構,而今天在加拿大溫哥華舉行的 SIGGRAPH 計算機圖形學頂級年度會議中,黃仁勳也一如之前市場預期發表了全新的圖靈 (Turing) 繪圖架構。
  • 解析SNS社區產品架構模型
    個人認為,從嚴格產品意義而言,國外是FACEBOOK,國內是校內網最先實現相對完整地SNS社區產品架構的。而早期的網易社區,騰訊IM平臺,早期博客形態的QQ空間,包括現在一些手機社區,都和SNS有些偏差。
  • 機器視角:長文揭秘圖像處理和卷積神經網絡架構
    近日,Dishashree Gupta 在 Analyticsvidhya 上發表了一篇題為《Architecture of Convolutional Neural Networks (CNNs) demystified》的文章,對用於圖像識別和分類的卷積神經網絡架構作了深度揭秘;作者在文中還作了通盤演示,期望對 CNN 的工作機制有一個深入的剖析。
  • RTX 2080TI顯卡的圖靈架構是什麼?
    性能的大幅升級之外,新一代顯卡最大的變化還是架構的更新。全新的圖靈架構,是新款顯卡的秘密武器。用老黃的話說:「圖靈架構是nvidia近十年來最偉大的發明之一」,不難看出圖靈架構的重要性。那麼什麼是圖靈架構呢?
  • 李雪琴左拐也是一種右拐什麼意思?爆梗小天才李雪琴髮長文自謙講得...
    李雪琴左拐也是一種右拐什麼意思?爆梗小天才李雪琴髮長文自謙講得一般時間:2020-09-24 12:32   來源:發星網    責任編輯:沫朵 川北在線核心提示:原標題:李雪琴左拐也是一種右拐什麼意思?
  • 萬字長文:詳談產品思維
    在這當中,我們需要發掘產品所服務對象的真實需求,並針對於製造及運營「產品」有一系列的解決方案,將某些產品或服務進行產品化。從以上的推敲來看(看文字看累的話可以瞅瞅阿境的配圖),阿境總結出三點,當我們談論產品思維的時候,總離不開三個詞:用戶、場景、迭代。那麼,用戶思維、場景思維、迭代思維究竟是什麼呢?阿境來跟朋友聊聊。