SaaS公司如何徹底消滅定制化(二)
定制化問題困擾SaaS界已久,但是無論是針對國內市場的垂直產業客戶,還是跨行業的客戶的SaaS,其實標準化產品+不同程度配置型的產品足矣。本篇文章就從客戶、需求和設計這三個角度來講解如何做一個標準化的SaaS產品,快來看看吧。
上篇文章講到SaaS公司為什么要消滅定制化,以及為什么可以消滅定制化,很多SaaS朋友和我討論,定制化問題在SaaS界確實是目前是目前比較普遍的問題。
基于上篇再總結一下,關于定制化問題,我們可以看兩個維度,一個是SaaS公司面向的客戶需求的分化指數,如果一個SaaS公司面向的客戶群越大,客戶間的需求差異越大,那這個需求分化指數越高,可以將目標客戶群需求的分化指數按照如下來進行排序:
- 某個特定的客戶
- 某個行業的客戶
- 跨行業的通用客戶
- 全球性的某個行業的客戶
- 全球性的跨行業客戶
另外一個維度,對應的就是產品的靈活度,基于靈活度可以從如下來排序:
- 為某一個客戶定制化
- 標準化產品+不同程度的配置性
- 標準化產品+PaaS開發平臺
- PaaS
- 開發平臺
一般來說需求分化指數越高的客戶群,需要用靈活度越強的產品來進行匹配。
另外,如我原來很多文章所說的,SaaS產品越靈活,交付成本越高,業務擴展的可復制性越差,另外從用戶體驗的角度來說,越不貼身。
所以我們永遠需要選擇能夠滿足自己客戶群體,最貼身最不靈活的產品去滿足客戶,因為這樣公司業務的可復制性最強,客戶的用戶體驗也最好。
在這幾類客戶中,比如說SAP就是典型的跨國跨行業的大客戶,所以最后選擇采用的是標準化+PaaS的方式,我記得原來SAP還有自己的定制化開發語言ABAP。
作為僅是針對國內市場的垂直產業客戶也好,跨行業的客戶的SaaS也好,筆者覺得標準化產品+不同程度配置型的產品足矣,如果選擇的客戶群都需要用到PaaS了,個人覺得要重新審視一下公司戰略關于客戶群的選擇。
OK,回到正題,我們來談一下如何做一個標準化的SaaS產品,筆者覺得主要是考慮好三方面:
一、客戶群的角度
在客戶群選擇上面,有一些原則性內容:
- 一般來說,即使是同一個行業,中大,中小客戶的需求差別比較大,一般需要區分不同的產品線,不同的定價體系來進行滿足,當然實現方式也可能是將滿足中大客戶的一部分功能拆分出來滿足中小客戶。
- 在為一個行業提供服務的時候,即使是垂直產業,可以將客戶進行進一步分層,比如說幾類典型用戶,一類一類的滿足客戶,在滿足好一類客戶之后進入下一步,沒有必要急于求成,傷其十指不如斷其一指。
- 在一個行業客戶群進行切入的時候,比較好的選擇是先切入腰部客戶,需求相對比較標準化,也有一定的付費能力,另外從這個角度來切入的時候向更大客戶的延展也相對比較容易。
整體來說,客戶群的選擇不要求大,避免產品的需求早期過于分化,以及不聚焦,產品需求失控以及標準化難度增加,需要一塊一塊切。
二、需求的角度
要做好標準化開發,我們首先要做好需求的管理,在售前的角度或者實施過程中,我們會拿到客戶過來的大量的需求,在這里首先判斷需求是否真實是否合理就非常重要:
- 如果是真實的需求,實際上客戶一定線下用某種手段已經實現,比如說微信,excel,word,電話,面對面溝通等方式滿足了需求,我們要通過客戶線下的行為判斷是否是真實的需求還是想象的需求,不要去創造需求。
- 不是所有的線下需求需要被線上化,或者可以被線上化的,適合線上化的需求都是可以定義清晰規則的線下需求。很多線下需求很隨意,或者很難確定規則,這樣的需求是不適合線上來滿足的,會帶來更多的問題,或者更加的不方便。
你會發現基于這二點原則,可以篩選掉客戶大量的需求。
等拿到的需求都是真實可以線上化之后,這些需求又會分成如下幾類:
1. 對產品有幫助,有補充作用的共通需求
需求是對自己產品有幫助,有補充作用的共通需求,需要在產品上面來實現。
這類需求是需要放在標準產品里面進行標準化的,對于這類需求,很多時候產品團隊會擔心,這種需求可能不能代表所有客戶的情況,當然最好可以等到有多個客戶提這樣的需求的時候再進行開發。
有時候,在客戶很難等待的情況下面,這時候可以先基于客戶的需求來做,這里不需要過于擔心其他客戶需求有差異的時候改動太大,B端產品做加法是比較容易的。在拿到的樣本還比較少的時候,也不需要做到過于靈活,努力做小做少,做精就可以了,后面再調整也是可以的。
2. 低頻極端的需求
有些低頻極端的需求合理,規則也清楚,但是不適合在產品上面來實現。
實際上,我們發現客戶提的很多需求都是這種需求,這種需求的滿足反而是更花時間和資源的,一般來說,正常的90%需求只需要花30-50%的精力,極端的10%的需求需要50%-70%的精力。
很多時候售前或者產品團隊在這類需求上面栽了跟頭,導致了很多不必要的開發、培訓和交互,然后也讓產品變得非常復雜,這是一個產品公司最大的浪費。
我這里舉一個薪酬管理里面的例子,比如說一個月的薪酬計算完成并且發放之后,突然發現某個月的休假天數搞錯誤,或者一些績效數據發生錯誤,上個月的薪酬數據錯誤,如果單純的將這部分數據補發到下個月,可能又會影響個人所得稅的情況。
很多系統里面會有類似的情況,就是系統是建立規則的,但是有時候我們發現線下很多時候業務有特例,需要去打破規則,線下支持這種特例是很簡單的,但是如果線上來支持就難度特大,因為系統是建立規則,如果又要去支持打破規則,代價是非常大的。
實際上上面薪酬的例子,系統上面比較好的支持方式,就是放調整項,這種費用的調整讓業務人員在線下算清楚,將這個項目的結果作為調整項輸入系統是最優解。
3. 特有的需求
屬于這家的特有的需求,不是那么共通。
經過正確的篩選之后,你會發現實際公司特有的需求會非常少,剩下的這類需求需要努力說服客戶用線下,或者已有線上功能+線下的方式來進行解決。
當然,在不同行業可能有不同的情況,這個時候一般需要在輸入、計算、輸出等地方保證一定程度的靈活,確??梢詭退麄儼堰@類需求配置出來,這就涉及到下面講到的設計層面的一些原則問題。
三、設計的角度
在需求問題解決之后,就是具體怎樣將每一個需求做到標準產品里面去的問題,怎樣做一個靈活度剛剛好的產品,既能滿足不同客戶的不同需求,也能夠讓客戶實施成本,客戶體驗在一個很高的水準。下面具體講講怎樣將不同公司不同需求怎樣在產品里面進行標準化的一些方式。
首先說明標準化設計的時候需要把握的一些原則性的內容:
- 架構上考慮長遠,需求上先做小
- 功能架構,信息架構做好分類
- 剛剛好,不要過度靈活
- 每個公司,每個人看到自己需要的內容
- 做好默認配置
……
關于這些原則的一些細節解釋,可以參考另外一篇文章:“原則系列-2020終章之SaaS還能走多遠”。
實際上所有的軟件系統的功能都是由輸入、計算、輸出組成,我們軟件的功能組成來說明標準化設計的方法:
1. 輸入這塊
輸入表單或者導入。
不同公司同樣的表單功能可能有不同的需求,比如說人事系統里面人員信息的詳情和編輯頁面,可能會有如下不同的需求:
a:數據維度,不同公司要求的輸入字段不一樣。
不同公司要求的字段集不一樣,比如說A公司的員工要管理50個字段,B公司要管理60個字段,C公司要管理55個字段,這個時候標準化的方式如下
- 將共通需要固化的字段盡量固化出來,確定默認大家都需要的字段。將固化字段里面,有些公司需要,有些公司不需要的可選的配置字段,在實施的時候在公司的維度進行配置。
- 還有一些無法固化定義的字段,這些字段可以在配置平臺,支持字段名、類型、顯示順序等內容的配置,這些配置項都可以存在數據表里面。
b: 還有一些數據集,不同公司可能有不同的需求,這里也在配置中可以來解決。一個核心的原則,盡量固化可以固化的內容,實在無法固化的內容才支持自由的定義。
導入文件方面也是類似的邏輯,可以通過配置表單的方式來解決,表單中盡量將可以固化的字段以及邏輯固化下來。
2. 關于計算這塊
很多時候就是不同公司有不同的計算項目,不同的計算邏輯,對于這些需求的標準化基于不同的場景有不同的方式:
(1)可以抽象的不同的邏輯分支
大部分SaaS產品在邏輯方面的分支都屬于這塊,這里面一般的做法就是內置多套邏輯,然后將參數暴露出來,不同公司可以配置不同的計算參數或者選擇走不通的邏輯分支。
(2)很難抽象的不同計算邏輯
對于很難抽象的不同計算邏輯,這個時候要支持公式的配置。除非少數需要非常靈活的計算引擎,要盡量避免這樣的情況發生。
3. 流程這塊
流程這塊,在我們做標準SaaS的時候,經常會碰到不同公司同一業務,或者同一公司、同一業務流程不一致的情況。
比較典型就是人事管理里面休假管理的流程處理,不同假種、不同請假的天數都有可能有不同的審批流。
在SaaS里面,關于流程這塊的標準化設計,一般有兩種設計,第一種就是很多公司都在應用的狀態流程配置工具,可以靈活的定義流程,定義節點,流程流轉條件等等。
另外一種就是將流程盡量抽象標準化下來,將需要進行條件化配置的地方,設計好參數管理或者條件表達式,從而來支持不同情況下面流程的運轉。
筆者建議在做標準SaaS設計的時候,盡量采用后面一種方式,前面一種實際是將問題復雜化,這個復雜化的問題本身就很難解,而且會演變得越來越復雜,后續的實施,培訓,用戶體驗都會出現一些問題。
4. 輸出這塊
(1)報表
關于報表這塊,其實是容易產生分化的功能模塊,一般不同公司關心的報表數據總是會有一些差異。關于報表這塊在進行標準化的時候也是遵循下面的邏輯:第一塊就是每家公司都會用到的比較標準化的報表,這塊報表需要抽象出來,固化下來。
有一種情況就是每個客戶字段會有些差異,這個情況下面,需要將所有用戶基本都需要的基本字段抽象出來,固化下來。其他的還有二類字段,一類就是有些客戶需要,有些客戶不需要,這部分通過是否顯示進行配置。
如果有些客戶還有一些需要個性化的字段,可以考慮支持一些字段的增加,這些字段的顯示名以及結果邏輯支持配置。
如果產品針對一些通用行業,總是有一些輸出報表很難抽象出來,可以支持一些報表模版的配置,支持搜索字段名,字段邏輯以及排序,篩選條件等配置。不過這塊配置的靈活度需要把控,盡量不要過于靈活。
(2)外部接口
一般來說,作為標準SaaS供應商來說,給外部提供的接口數據格式,可以比較標準,不需要太多的配置化。
5. 權限與角色
所有的SaaS系統的權限主要分兩個維度,一個是功能維度,一個是數據維度,通過功能和數據定義出來每個用戶可以訪問哪些功能,在訪問功能的數據可以查看和操作哪些數據。
因為用戶很多,每個減少定義的工作量,一般系統還會引入一個角色的概念,通過角色定義每個角色對應的功能權限,然后用戶再和角色進行掛鉤,一個用戶可以對應多個角色,通過這種方式配置出每個用戶可以訪問的功能。
數據級別的權限一般跟用戶直接掛鉤,因為同一角色很多時候對應的數據權限不一樣,定義在角色身上不是很合適。
在很多系統里面,角色都是依據崗位來進行定義的,因為同一崗位對應的功能集都是比較類似的。
而數據權限有組織完善的公司里面,很多時候都是和組織對應的,所以很多時候做好數據權限的管理要做好組織的管理,然后定義每個用戶和組織數據權限的關系。
今天就說到這里,后續的文章筆者會繼續講解已經存在大量定制化的公司,怎樣庖丁解牛來做標準化產品。
專欄作家
作者:李東林(微信公眾號:SaaS產品說;微信號:jianguzhuxin),菜小秘聯合創始人,原ADP大中華區產品負責人,14年To B研發與產品設計,團隊管理經驗,主導過多款大型企業管理軟件的設計、研發、上線,也有過數年移動互聯網TO C的創業經驗。
本文由@東林-Tony 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash, 基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
大佬,催更哈??