大型 SaaS 平臺產品架構設計思路

danny_2018發表於2022-04-19

當我們去搜尋“架構”,可以得到很多的架構圖片,比如組織架構、業務架構、資料架構、技術架構、安全架構、產品架構、部署架構等。

什麼是架構,通常大家說架構一般指軟體架構,架構是指軟體的基礎結構,創造這些基礎結構的準則,以及對這些結構的描述。在這個定義基礎上,我們可以簡單理解為架構往往是對事物主體的結構性描述。

產品架構是對產品的一種結構性描述。一般可以包括前端系統、業務管理、運營管理、基礎支撐等子產品或子系統,並描述各個子產品或子系統之間的關聯關係。

在公司整體戰略之下,需要基於公司戰略等多種因素設計組織架構,組織架構影響業務架構,業務架構影響產品架構,產品架構影響技術架構。

從這個鏈條可以看出產品架構基於業務架構。做產品架構前,需要對業務架構有清晰的瞭解。

一、業務架構對產品設計的5個影響

業務架構是基於組織架構設計的,業務架構是把企業的業務戰略轉化為日常運作的渠道,業務戰略決定業務架構,它包括業務的運營模式、流程體系、組織體系、資源分佈等內容。

業務架構是一個比較專業的研究課題,技術人員一般對業務架構的關注度相對較低,更重視產品架構、技術架構。這裡我們簡單示例什麼是業務架構,這些架構事實上影響我們的產品架構設計,如下圖5-1就是其中一個業務架構設計的框架圖。

業務架構圖

業務架構對企業的收入模式、支出成本、客戶群體、客戶關係、需要的資源、關鍵活動,以及合作伙伴等進行設計說明。

業務架構對產品架構的影響,主要體現在以下幾個方面:

1. 系統參與角色

業務架構一般會明確使用者範圍;營銷端的參與人員,比如渠道商或代理商,大客戶銷售團隊等;運營端的參與人員,如售後、客戶成功等團隊;合作伙伴的參與,如第三方合作平臺等。每類角色按需設計對應的使用終端。

2. 系統運營流程

業務架構對運營流程有較明確的定義,如開戶、續費、登出、變更、售前售後工單處理、庫存入庫出庫處理、合同流程、發票流程等。這些構成SaaS平臺的運營流程,是產品實現商業價值的重要手段,產品環節一般需要有相應的處理。

3. 核心價值

業務架構需要明確SaaS服務對客戶帶來的價值,這個價值往往需要通過產品端來呈現,業務架構的價值描述,很大程度上就是我們產品建設的側重點。

4. 周邊系統

業務架構中的合作伙伴、資源一定程度上體現出需要與產品互動的其他系統,這些“其他系統”可能是產品需要的一些基礎能力(如文字識別、計算能力等)、資料(許可權資料、業務資料)、流程(管理流程、運營流程)等 ,而這些能力需要合夥夥伴或者公司的現有資源中提供。這些周邊系統會以各種各樣的作用支撐著產品的運轉。

5. 計費模式

業務架構一般會說明收入和成本模型。收入的處理過程影響運營產品的設計,如公司線上下收款,可以產品只需要控制使用者賬號的可用狀態或有效期,如果是線上收款,就需要設計一套開通、續費的線上支付流程。有些SaaS產品還會涉及到收入和成本費用的攤銷,以配合財務工作的處理,也可能需要在產品中完成此類計算。

假如所在公司沒有清晰的業務架構,或者部分環節缺失怎麼辦?如果可以引導,我們儘量引導業務部門完善相關的環節,但有些客觀情況是我們無法改變的,我們可以嘗試按照現有架構,收集梳理資訊,做好整體的結構設計,確保具備可擴充能力,能夠滿足後續需求,再根據業務各環節成熟度設計產品架構,分階段去實現。

二、產品架構

SaaS產品架構的設計,可以考慮模組化、漸進式設計。

2.1 模組化設計

所謂模組化是指降低業務間的耦合。低耦合、高內聚是技術架構的重要設計原則,在產品端也非常值得借鑑。

模組式化設計對於系統建模、技術實現、升級迭代、業務推廣都有很多幫助。模組化設計也是對最小化場景(MVP)的一種有效支撐。

SaaS產品隨著公司的發展,業務範圍、功能都會越來越大,而客戶可能僅需要部分能力,如果功能間耦合太多,對客戶的功能選擇會增加限制;銷售政策制定起也會受到掣肘,無法靈活組合產品進行銷售,對業務推廣產生一定影響。

如何做好模組化設計?

模組化設計針對有獨立性、可複用的業務或功能進行抽取,包裝功能集合構成產品進行推廣使用,方便客戶根據需要進行產品組合,模組化設計在傳統軟體中也非常重要。

(1)歸類與抽象

需要對相似的功能或者場景進行歸類然後抽象出來進行設計。在軟體設計領域,越是底層的東西越容易複用,越是偏向應用端的東西,越難以複用。比如構成一套軟體服務,可以有伺服器硬體、應用服務中介軟體(比如資料庫等)、各種微服務、業務流程、外部入口等,這套軟體架構中,伺服器硬體是處於架構底層,比較基礎且通用性很強;應用入口處於架構高層級,形式相對靈活,複用性較低。在產品端也是同理,基礎資訊如人員、機構等屬於基礎資訊,同一組織在不同系統中的結構大體一樣,複用性強,其次是各類業務流程,再其次是業務表單。

我們要做的產品模組化設計,是針對不同使用者的需求,將完成某項業務的場景進行分析、歸類、抽象,抽取共性部分,做成可實現多種組合的產品形態。

(2)資料介面

系統一般由邏輯(演算法)和資訊兩部分構成,資訊又分為內容和資料;邏輯是構建軟體功能的骨架,內容和資料是血肉,其中以資料尤為重要。

假如要實現軟體模組化且模組之間相互獨立,必須要先拋棄邏輯(實現方法),因為有邏輯就代表這兩個模組誰也離不開誰,就不能稱之為獨立。

如果這兩個模組必須要關聯在一起,但又不允許它們在邏輯上互相干涉,那麼最好的辦法就是為它們內部包含的資料進行抽象化,形成標準化介面,以資料呼叫的形式實現兩個模組間的互相協作。

模組化的一個特徵是複用,在產品設計上覆用意味著需要多種場景的結合,如果只有一個場景,就不是複用,在多個場景都需要使用的情況下,會有資料互動的需要,模組化設計就是要把共性的東西抽取出來後,提供標準介面,進行資料互動,這個共性的東西,可以是欄位,也可以是規則。

大家通常理解的SDK,也是模組化設計的一種體現。模組化的產品可以是一個介面、也可以是一個功能,還可以是一個子系統。

2.2 漸進式設計

SaaS產品是逐步迭代的,產品設計也不是一蹴而就的,需要有一個不斷前進的過程,漸進式設計非常契合SaaS產品。比如我們公司的產品,有企業客戶、集團客戶、代理商、平臺運營人員、售後人員等參與,在設計系統的過程中,並不是一上來就把所有的工作全部做完, 這樣週期太長,也不利於快速驗證產品和市場的匹配,所以產品架構自然而然也變成了一種漸進的設計過程。

漸進式設計需要儘量考慮未來產品的全域性,以滿足後續產品擴充套件需要。

以我曾經做過的一個產品舉例,產品的使用者可以分為三大類,關係如下圖:

產品關係示例

在產品架構的搭建過程中,我們在清楚有這些基礎結構以後,按照優先順序順序,逐步發展產品。如圖:

產品架構示例圖

首先搭建了企業版產品和簡單的運營管理系統,讓使用者能夠使用起來。後來隨著代理商力量的不斷計入,需要為代理商設計一套管理系統,代理商系統需要依賴於公司運營管理系統(公司運營早期就已經有了代理商加入,運營管理平臺只有最簡單的代理商管理功能,能夠標記客戶所屬代理商,但並沒有去開發一套代理商管理系統,只是預留了擴充套件能力)。

隨著平臺的發展,使用者群體不斷擴大,集團客戶也在不斷增加,公司又基於企業版產品開發了集團版產品,滿足集團企業客戶的需要。

整個代理商管理系統和公司運營管理系統也跟隨迭代,從最初的企業註冊稽核,到使用者工單管理、結算續費管理、再到增加集團版的開通管理流程及結算流程,歷時用了幾年時間。產品整體架構經歷了多個版本的迭代,才逐步變成現在的體系,並且還在持續完善中。

產品架構的漸進式設計和最小化可用產品(MVP)並不是一回事,產品架構漸進式設計是為了產品穩步推進並可擴充套件,先集中精力解決當前的重要需求和問題,所積累的產品成果,會成為將來產品發展的基礎,而不是MVP中表示的每一個過程都可能要重構。

MVP有一個非常生動的例子,使用者需求是一輛車,那麼車的MVP及產品演進過程應該如下圖5-5的第二部分所示:

MVP的演進

產品架構的漸進式設計和產品的MVP有什麼關係,其實是兩個維度的事情,產品架構漸進式設計是對現在業務的快速響應,以及對未來業務擴張的支撐。

MVP是在產品迭代過程中,在不同的階段,可能需要進行重構,上圖的例子,在一些產品論壇上都有闡述,這對MVP的解釋是很準確的,最小化可行產品需要做到每次迭代都是完整可用的,可用場景閉環是MVP的核心指標,這是產品從0到1的一種有效驗證方式,但我認為這種重構並不一定是必須的.

很多軟體產品在迭代的過程中,都是在原有基礎上的擴充套件,實際上產品架構具備彈性和擴充套件性,這是一名優秀產品經理需要具備的能力,畢竟任何歷史投入都是有成本的,優秀的設計應該是在原有基礎上的擴充套件,而不是推倒重來。

B端產品在發展過程中,也比較注重產品和服務的結合,這個服務並不是指產品即服務,而是在早期產品不夠完善的情況下,部分環節通過線下服務來補充,這也是SaaS產品發展的一種形式。

產品架構大體能夠說清楚了系統間的關係,但對於具體的產品流程,產品架構圖是無法表達清楚的,還需要輔助系統流程圖進行說明。

來自 “ 架構文摘 ”, 原文作者:架構文摘;原文連結:https://mp.weixin.qq.com/s/2vW5Lqa6eNYVfIsEvxLhuA,如有侵權,請聯絡管理員刪除。

相關文章