SaaS可配置化:功能可配置

10 評論 26546 瀏覽 134 收藏 8 分鐘

對SaaS系統而言,推崇的就是“按需購買”,依據用戶的實際需求為用戶配置對應的功能。但SaaS的多租戶模型決定了系統不可能參照傳統軟件模式,在為用戶部署時去掉不必要的功能。為適應多變的用戶需求,SaaS軟件只能實現功能可配置。那么SaaS如何才能做到功能可配置呢?

一、劃分原子功能

所謂的原子功能也就是系統最小的組成單位,原子功能與原子功能間相互獨立,互不重疊,所有的原子功能具有如下原則:

  • 每個功能都具有價值
  • 每個都不可細分
  • 功能間互不重疊
  • 功能間不循環依賴
  • 整個系統功能是完整的

劃分原子功能的最基本原則就是“每個功能都具有價值“,而且這種價值是相對用戶而言的。只有對用戶具有價值的功能才會被用戶購買。

例如新建賬號時,系統會對管理員輸入的手機號及信息進行驗證,但這種驗證只是新建賬號的一個步驟,并不能為用戶帶來任何價值,也就不能劃分成單獨的一個原子功能。

除關注功能所具有的價值外,劃分原子功能時,需基于既定功能架構盡量細化,做到每個劃分的原子功能都是不可細分的。例如針對表單的錄入,用戶在創建時往往會區分新建表單和提交表單,這兩個操作對用戶而言都是具有意義的,所以劃分原子功能時,拆分新建表單和提交表單兩個原子功能,會更清晰,更靈活。

在進行分解時,還需要關注原子功能之間的關聯關系,做到不可細分,互不重疊。

注意,功能的分解需要保持系統的完整性,也就是說,劃分出來的所有原子功能,要覆蓋整個系統的功能,而不存在沒有被劃分的系統功能,確保系統功能的完整性

二、功能定義及依賴

在實際操作過程中,作為產品人員,還需要對劃分的原子功能進行定義和建立原子功能間的依賴關系。

所謂功能定義其實就是對原子功能進行描述,定義它的名稱,關鍵字,內容等相關信息。其中名稱和內容便于對原子功能進行詳細的描述,而關鍵字,重在對該原子功能進行唯一標識,在系統上需要時刻確保改該標識的唯一性。

除對原子功能進行描述,在劃分過程中我們會發現,并不是所有的原子功能都可單獨使用,有些功能需要依賴其他功能才能使用,功能與功能間存在一定的依賴關系。

例如,很多B端管理系統都具有“查看操作日志”這種功能,但“查看操作日志”往往依賴于“查看數據列表”,如果租戶沒有購買“查看數據列表”這個功能,那“查看操作日志”也是不能使用的。

所謂的功能依賴,就是指一個功能在沒有另外某些功能的情況下是不能使用的 。

三、功能包設計

通過劃分原子,對原子功能進行定義,及設計原子功能的依賴關系。我們基本實現了對系統功能的梳理,回到我們的出發點:為應對客戶的“按需購買”而實現功能的可配置。

但其實,光具有原子功能,并不能高效的實現功能的可配置。

通過逐步細化及劃分,系統原子功能數量急劇增加,可達到幾十個,甚至可達到上百個。直接對這些原子功能進行管理是超級復雜的事情。而且這些原子功能之間的使用并不是完全獨立,很多功能操作是相關。

例如客戶的新建,查看,編輯,刪除這些功能都是一起使用,往往不存在單獨使用的情況。并且在前一步中我們也了解到,劃分的原子功能之間是存在依賴關系的,而這些具有依賴關系的原子功能總是綁定起來一起使用,從使用場景也可以看出,具有相同使用場景的原子功能不是具有操作關聯性就是具有依賴性。

所以在原子功能的基礎上,整合具有操作關聯性及依賴性的原子功能,以功能包的形式統一管理是十分有必要的。

所謂的功能包就是一組具有關聯性,依賴性的原子功能的集合體,功能包的設計遵循高內聚,低耦合的原則,具有關聯性的原子功能聚合在一起,而功能包與功能包盡量減少依賴關系,進而保證每個功能包都盡可能單獨的進行操作使用。

四、定義銷售包

功能包已經將具有關聯性的原子功能集合在一起了,但對于客戶而言,定義好的功能包仍不能單獨使用。所以為了讓客戶購買后能夠充分使用系統,還需要按不同的商業意圖構建適合用戶使用銷售包。

銷售包只是一種以向用戶銷售而定義功能包。例如但凡成型的SaaS應用都會有最小版,標準版,完整版。或存在按客戶所屬行業而定義的服務行業版,制造行業版等。這些都可以稱之為銷售包。

五、功能使用校驗

在前面已經定義了原子功能,功能包,銷售包。在實際使用過程中,對用戶操作權限的校驗還是基于原子功能的,通過驗證改用戶是否具有改原子功能的操作權限,進而實現系統功能權限的控制。

上述基本是針對功能可配置的大致簡述,因為工作的需要,在不斷實踐及學習SaaS產品架構,前期已推出《SaaS可配置:數據可配置》,后期將會根據實際需要,不斷完善。

 

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

題圖來自 Unsplash ,基于 CC0 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 你好,請問有saas產品架構方面的書籍推薦嗎

    來自北京 回復
  2. 深度好文

    來自重慶 回復
  3. hi~你好,看了你的配置化的系列文章,很有感觸,有點還不太明白,可以加你Wx詳細了解下么

    來自美國 回復
  4. 原子功能包就是最小粒度權限了吧

    來自山東 回復
  5. 最近在改造內部的一個系統做SaaS平臺,一直在想多底拆到多細的粒度才合理,看了作者的文章,很受啟發

    來自北京 回復
    1. ess

      來自北京 回復
  6. 我們做建筑行業垂直saas服務,核心的業務自己研發,但是其他cem想找pass外包商做,有能做成可配置的功能模塊的服務商么?

    來自上海 回復
  7. 原子功能模塊的架構設計,后期能極大的增加擴展性

    來自北京 回復
  8. 難就難在原子服務的劃分和編排,太小了通信開銷成本增加,太大則耦合度太高

    回復
    1. 這已經是我第三遍看該系列文章了,你說得這點確實值得更深入講解,期待大佬新文

      來自美國 回復