產(chǎn)品領(lǐng)域的元宇宙:aPaaS產(chǎn)品解構(gòu)
編輯導(dǎo)語:目前來看,企業(yè)對軟件服務(wù)的預(yù)期越來越高,垂直、單點(diǎn)的SaaS產(chǎn)品已經(jīng)很難獨(dú)立商業(yè)化,aPaaS逐步成為了SaaS產(chǎn)品經(jīng)理的努力方向。本文從“元”出發(fā),講解了aPaaS相關(guān)知識,一起來看看吧。
最近很火的概念是元宇宙,但在軟件設(shè)計領(lǐng)域,“元”的概念并不新鮮。如果能把所有的數(shù)據(jù)記錄,用一套“元數(shù)據(jù)”關(guān)系描述出來,就完成了一套“軟件生態(tài)”或“軟件元宇宙”的打造。
在同一套“描述語言”中的軟件,互相之間數(shù)據(jù)可以互通、邏輯可以共用,共同形成了一套生態(tài)。如果能夠把現(xiàn)實(shí)世界、宇宙完全數(shù)字化,并且用統(tǒng)一的語言進(jìn)行描述,就完成了一套“虛擬+現(xiàn)實(shí)”生態(tài)的打造,也就是我們說的“元宇宙”。所以無論是對軟件還是世界的“元數(shù)據(jù)化”,“元”的本質(zhì)在于抽象、映射、配置化,在這一點(diǎn)上,元宇宙和aPaaS產(chǎn)品的互通統(tǒng)一的。
對我個人而言,這些年做了蠻多產(chǎn)品,帶給我最大成長的集中在2類:一類是,對內(nèi)容產(chǎn)品的抽象設(shè)計,就像之前拆解的B站那樣,只有深入思考過各類內(nèi)容和分發(fā)場景,才能對互聯(lián)網(wǎng)信息產(chǎn)品有較好的認(rèn)知。另一類是,對軟件和平臺的抽象設(shè)計,需要PM在通用性和易用性上不斷權(quán)衡,這其中有大量的tradeoff和優(yōu)先級PK工作。aPaaS產(chǎn)品就是后面這一類,也是今天我想在本文主要聊的一種產(chǎn)品。
隨著企業(yè)對軟件服務(wù)的預(yù)期越來越高,垂直、單點(diǎn)的SaaS產(chǎn)品已經(jīng)很難獨(dú)立商業(yè)化。
所以能夠拉通SaaS的平臺級產(chǎn)品(aPaaS),逐步成為了SaaS產(chǎn)品經(jīng)理的發(fā)力方向。所以,如果你對“元”這個概念的設(shè)計思路感興趣,或者你是軟件產(chǎn)品從業(yè)者,這篇文章或許能夠給你帶來啟發(fā)。
一、什么是aPaaS產(chǎn)品
要聊清楚軟件和aPaaS平臺產(chǎn)品,得先從概念入手。為了方便理解,我先不去寬泛地定義這兩個詞,直接用實(shí)例講述:aPaaS是能搭軟件的平臺,所以仔細(xì)想想, 一套軟件的定義,是什么?一套軟件通常包含以下九個層次:
- 應(yīng)用(application)
- 數(shù)據(jù)(data)
- 運(yùn)行庫(runtime)
- 中間件(middleware)
- 操作系統(tǒng)(OS)
- 虛擬化技術(shù)(virtualization)
- 服務(wù)器(servers)
- 存儲(storage)
- 網(wǎng)絡(luò)(networking)
通常PM所設(shè)計的界面、交互邏輯,其實(shí)都在1和2的應(yīng)用范疇內(nèi)。其它7種設(shè)備和技術(shù)因?yàn)橛袠O大的外部性,適合作為中臺,所以隨著互聯(lián)網(wǎng)的不斷發(fā)展,逐步被打包出售。他們的這種打包方法被稱為云技術(shù),這種服務(wù)形式也就是云服務(wù),比如阿里云、騰訊云。這些云服務(wù)的出現(xiàn),允許一些中小企業(yè)、沒必要自己維護(hù)設(shè)備和基建的企業(yè)能夠通過付費(fèi)租借的形式,便捷地復(fù)用這些服務(wù)。
隨著云服務(wù)的業(yè)務(wù)范圍從基礎(chǔ)到業(yè)務(wù),可以分為如下幾種服務(wù)類型:
- 基礎(chǔ)架構(gòu)即服務(wù)(IaaS)
- 平臺即服務(wù)(PaaS)
- 軟件即服務(wù)(SaaS)
aPaaS也是PaaS的一種。aPaaS的全稱是application Platform as a Service,即應(yīng)用程序平臺即服務(wù)。Gartner對其所下的定義是:“這是基于PaaS(平臺即服務(wù))的一種解決方案,支持應(yīng)用程序在云端的開發(fā)、部署和運(yùn)行,提供軟件開發(fā)中的基礎(chǔ)工具給用戶,包括數(shù)據(jù)對象、權(quán)限管理、用戶界面等。”
一句話講:aPaaS模式下,非技術(shù)人員也可以通過低代碼編輯器來“所見即所得”地完成產(chǎn)品的配置開發(fā)落地。
二、aPaaS產(chǎn)品的設(shè)計原理是什么
1. 設(shè)計思路
用以終為始的思維來分析:其實(shí),基于aPaaS產(chǎn)品搭建而成的軟件,就是一個SaaS應(yīng)用。
那不妨抽象一下,當(dāng)我們研發(fā)一款SaaS應(yīng)用時,我們做了哪些事情。為了方便理解,我拿大家最熟悉的CRM系統(tǒng)來做case。試想一下,落地一款CRM軟件總共分幾步:
- 定義線索、商機(jī)、客戶、聯(lián)系人、跟進(jìn)記錄實(shí)體
- 設(shè)計實(shí)體的數(shù)據(jù)結(jié)構(gòu)、字段、索引
- 為每個對象定義CRUD接口、數(shù)據(jù)校驗(yàn)邏輯、業(yè)務(wù)規(guī)則校驗(yàn)邏輯
- 設(shè)計權(quán)限、審批流程、定時任務(wù)
- 前端、移動端頁面開發(fā)
- 報表功能設(shè)計開發(fā)
這6步幾乎是一個標(biāo)準(zhǔn)CRM應(yīng)用的研發(fā)流程。如果你是一個運(yùn)營了10萬名銷售的業(yè)務(wù)leader,選擇這樣的標(biāo)準(zhǔn)“定制化開發(fā)”模式做一套CRM是沒問題的。但如果你的業(yè)務(wù)量過小,定制化CRM的ROI極低;更極端的場景是,如果你的10萬名銷售業(yè)務(wù)模式迥異,需要10套CRM來支撐呢?這個時候,我們需要一種低成本開發(fā)CRM的方式,才能讓ROI打正。并且這種方式,需要能夠拉通底層數(shù)據(jù),避免獨(dú)立搭建10套CRM帶來的數(shù)據(jù)孤島問題。
- 降低邊際成本->復(fù)用和抽象是關(guān)鍵
- 打破數(shù)據(jù)孤島->數(shù)據(jù)底層必須一套
于是aPaaS產(chǎn)品的底層思路就產(chǎn)生了:只要把研發(fā)過程中的實(shí)體含義、數(shù)據(jù)結(jié)構(gòu)、CRUD進(jìn)行抽象,把數(shù)據(jù)和含義解耦,讓“含義”支持自定義,這樣數(shù)據(jù)層面就會非常干凈純粹,適合復(fù)用。舉個例子來說,當(dāng)我們需要一張“線索數(shù)據(jù)表”,傳統(tǒng)的方式是我們定義好“線索數(shù)據(jù)表”的每個字段完成建表。而將含義解耦后,我們只要讓“線索數(shù)據(jù)表”的描述變得可自定義配置化,就可以將無數(shù)這樣的業(yè)務(wù)表,都集合到統(tǒng)一的元數(shù)據(jù)層面,實(shí)現(xiàn)元數(shù)據(jù)(Meta)的抽象和復(fù)用。
進(jìn)而,如果這些元數(shù)據(jù)支持權(quán)限、租戶管理,也就實(shí)現(xiàn)了既能打破數(shù)據(jù)孤島進(jìn)行交互,又能多業(yè)務(wù)兼容互不影響的效果。具體點(diǎn)說,就是這SaaS模式下,我們生產(chǎn)的是“成品地板”,這樣的問題在于如果有新的地板拼裝樣式,我們很難調(diào)整生產(chǎn)線。但在aPaaS模式下,我們把生產(chǎn)線拆成“木頭生產(chǎn)”和“地板拼裝”兩步,只要保持木頭的生產(chǎn),同時不斷更新“地板拼裝規(guī)則”,就可以源源不斷地適應(yīng)各種“成品地板”需求。
所以,aPaaS產(chǎn)品實(shí)際上是定義了一套標(biāo)準(zhǔn)化的“地板拼裝規(guī)則”和能夠識別這個規(guī)則轉(zhuǎn)化成拼裝動作的“地板拼裝規(guī)則識別機(jī)器”,這個機(jī)器就是能夠聯(lián)系meta和data的“元數(shù)據(jù)引擎”。
2. 數(shù)據(jù)實(shí)體實(shí)現(xiàn)方法
思路理完,具體實(shí)現(xiàn)層面上,關(guān)鍵點(diǎn)在于“元數(shù)據(jù)引擎”的構(gòu)建,以及meta和data之間的聯(lián)系。為了實(shí)現(xiàn)“地板拼裝規(guī)則”的邏輯,需要把所有可能出現(xiàn)的“規(guī)則”進(jìn)行抽象。
這里實(shí)現(xiàn)層面用的是field類型,而不是column類型,二者的區(qū)別在于:
A column is collection of cells aligned vertically in a table. A field is an element in which one piece of information is stored, such as the eceived field.
Usually, a column in a table contains the values of a single field. However, you can show several fields in a column by using a Formula or a Combination field. Fields can also be shown as rows in a card view or as controls on a form. A column is just one way to display the contents of a field.
翻譯過來的意思是“column只是field的一種存儲形式”。舉個特別形象的例子,你的一個excel表格,就是一個data表,表頭有3列,分別是姓名、性別、年齡,這3列就是column。而姓名列是text文本、性別是布爾值、年齡是數(shù)值需要支持大小排序,這三種規(guī)則就是通過meta對象模型來實(shí)現(xiàn)的。
我們事先定義好了文本、性別布爾值(男、女、其它)等規(guī)則,用object+field的對象模型規(guī)則存儲下來,支持column去使用,即可實(shí)現(xiàn)上面提到的“數(shù)據(jù)和含義解耦,從而元數(shù)據(jù)可復(fù)用、描述可配置”。
這種設(shè)計當(dāng)數(shù)據(jù)需要存儲到data中時,data需要知曉每個字段是什么樣的object,也就是業(yè)務(wù)系統(tǒng)需要依賴于“元數(shù)據(jù)引擎”。反過來,在業(yè)務(wù)系統(tǒng)在使用業(yè)務(wù)數(shù)據(jù)查詢data時,也需要“元數(shù)據(jù)引擎”做好column+含義的處理。
3. 業(yè)務(wù)規(guī)則的實(shí)現(xiàn)方法
有了數(shù)據(jù)實(shí)體,還需要有大量的業(yè)務(wù)規(guī)則。舉個例子,拿線索實(shí)體來說:
- 電銷業(yè)務(wù)可能認(rèn)為“手機(jī)號”是個必填字段,否則無法聯(lián)系客戶
- 其它業(yè)務(wù)可能認(rèn)為“手機(jī)號”和“微信號”有其一即可
這兩種規(guī)則在SaaS模式下,都是用硬編碼的模式寫在應(yīng)用程序中的,一旦調(diào)整,需要研發(fā)去改邏輯、驗(yàn)證、上線,在規(guī)則頻繁變動的情況下,非常棘手。所以,如果這些規(guī)則也能做到配置化,會減少很多變動成本。要抽象并配置這些業(yè)務(wù)規(guī)則,至少需要3種引擎:
1)規(guī)則引擎
類似上面提到的,字段校驗(yàn)、過濾、表單引用聯(lián)動等,如果可選、必填;字段長度、格式;是否引用關(guān)聯(lián)這些都可配置,大量的基礎(chǔ)硬編碼工作將被aPaaS取代,研發(fā)工程師可以一勞永逸。
2)流程引擎
處理靜態(tài)規(guī)則之外的,當(dāng)系統(tǒng)發(fā)生交互后的流程處理,包括各類觸發(fā)和執(zhí)行、通知反饋。比如當(dāng)用戶撥打電話后,記錄一次跟進(jìn),同時給TA的主管推送一條消息。這樣的流程其實(shí)抽象出來后,就是“觸發(fā)”“編排”和“執(zhí)行”“反饋”,是可以像畫流程圖一樣配置出來的。
3)權(quán)限引擎
SaaS理解為獨(dú)立單個系統(tǒng),往往有角色控制即可滿足,而aPaaS可以理解為跨系統(tǒng)復(fù)雜模型,不但要管控系統(tǒng)內(nèi)的功能、應(yīng)用,還得對meta層、讀寫權(quán)限進(jìn)行管控。
比如當(dāng)A工程師是“線索”實(shí)體owner時,一旦“線索”實(shí)體增加了一個不可操作的字段,也許是一個全新的、不被之前權(quán)限定義的字段,這時就需要對這個對象記錄的權(quán)限進(jìn)行管控,此時就需要引入對象、記錄等權(quán)限,只靠角色和數(shù)據(jù)表的權(quán)限,就不夠用了。綜上,通過對規(guī)則、流程、權(quán)限進(jìn)行配置化處理,能夠讓軟件的主干業(yè)務(wù)邏輯部分支持配置化,是aPaaS的核心能力之一。
三、aPaaS設(shè)計干貨實(shí)例-權(quán)限設(shè)計
上面講了很多原理、方法、總結(jié)。這部分想用一個實(shí)例來讓文章更直觀完整。我想用“權(quán)限”這個模塊來作為實(shí)例。權(quán)限模塊,在傳統(tǒng)SaaS中,其實(shí)并不算復(fù)雜。一般一個產(chǎn)品經(jīng)理半個人力就能cover住,只需要注意用戶A是否能用某系統(tǒng),是否能查看某些數(shù)據(jù)、是否有編輯等功能權(quán)限即可。但在aPaaS中,如上所說,已經(jīng)不僅僅是一個SaaS的權(quán)限問題,而是多個錯綜復(fù)雜的SaaS權(quán)限問題。
關(guān)鍵在于比SaaS來說,aPaaS核心的兩大能力:低代碼靈活配置和打破數(shù)據(jù)孤島,這決定了從產(chǎn)品上來說,一定會存在大量的元數(shù)據(jù)定義和大量的租戶,這樣一來,權(quán)限系統(tǒng)就會成倍復(fù)雜。但無需擔(dān)心,可以直接用類比SaaS的方式進(jìn)行產(chǎn)品設(shè)計。
從數(shù)據(jù)實(shí)體來說,因?yàn)橐肓薿bject,就需要對這個維度進(jìn)行權(quán)限管控。object意味著某些字段對于用戶來說是否可用,這往往是根據(jù)角色來決定的。比如行政可以看到每把椅子的采購價格和實(shí)付價格,而普通員工卻不關(guān)心也不應(yīng)該看到“椅子采購系統(tǒng)”。
data層面,也要有記錄維度的管控。比如對于薪酬hr來說,應(yīng)該可以看到員工的薪資,而普通員工只能看到自己的薪酬,其區(qū)別不在于“薪酬”這個字段,而在于“別人的”“自己的”,所以并不是object層面的管控,而是data的record層面管控。
如上,object其實(shí)決定了領(lǐng)域,一個領(lǐng)域應(yīng)該有一個對應(yīng)的profile,比如采購人員應(yīng)該負(fù)責(zé)采購相關(guān)系統(tǒng),所以需要一個采購profile。如果采購人員同時兼任HR,那么也應(yīng)該具有HR的profile。profile背后,是對一些實(shí)體、對象甚至系統(tǒng)的權(quán)限,可以和業(yè)務(wù)、事業(yè)領(lǐng)域做類似的映射。
在data層面,往往是記錄(record)的權(quán)限。比如“椅子采購系統(tǒng)”的超級管理員應(yīng)該可以看到并修改全部“椅子實(shí)體”數(shù)據(jù),而采購助理可能只能查看、編輯自己提交的記錄,不能編輯別人創(chuàng)建的的“椅子采購記錄”,這就是record級別的管控,一般是用于區(qū)分業(yè)務(wù)內(nèi)的不同崗位、角色。所以對于aPaaS的權(quán)限系統(tǒng)來說,至少要設(shè)計2個層次的權(quán)限:
- 領(lǐng)域、實(shí)體層面的profile權(quán)限
- 數(shù)據(jù)、記錄層面的role權(quán)限
在這個基礎(chǔ)上,還有更多的場景需要考慮,比如:
- 人員變更
- 申請、審批
- 沖突、疊加
- 過期、續(xù)期
- 授權(quán)、回收
- …
如上,單單一個權(quán)限模塊,可能就有幾十個feature需要實(shí)現(xiàn),而一個好的權(quán)限模塊,是一個aPaaS產(chǎn)品的基石,一定程度上決定了用戶復(fù)雜度和量級天花板。
四、aPaaS產(chǎn)品的PM在設(shè)計什么
從aPaaS產(chǎn)品PM視角出發(fā),想回答“aPaaS產(chǎn)品設(shè)計和常規(guī)產(chǎn)品設(shè)計的不同“,就不得不從PM的核心工作要素談起:
- 用戶
- 需求
- 產(chǎn)品方案
從用戶來說,純無代碼aPaaS產(chǎn)品的用戶,一般是業(yè)務(wù)運(yùn)營人員。這個群體的特征是:
- 離業(yè)務(wù)近,會有大量的業(yè)務(wù)洞見和需求
- 無代碼能力,需要可視化界面甚至實(shí)施的輔助下完成搭建
特征1決定了:用戶會有大量的長尾需求特征2決定了:aPaaS編輯器的可用性極大影響遷移成本所以,我個人認(rèn)為,aPaaS產(chǎn)品經(jīng)理的關(guān)鍵在于如下三點(diǎn):
- 在大量的長尾需求中,抽象并找到價值排序
- 按照價值排序,不斷支持aPaaS產(chǎn)品的能力
- 優(yōu)化編輯器和配置成品的體驗(yàn)
從aPaaS產(chǎn)品的能力來說,這里面最重要的,私以為,是“靈活度”。上文提到,靈活度來自于配置能力。而配置能力的關(guān)鍵在于能把“不變的邏輯”元數(shù)據(jù)化,同時把“靈活可變的邏輯”配置化、描述化。具體來說:
- 支持越復(fù)雜的object,比如數(shù)值、金額等,就能支持更多種數(shù)據(jù)進(jìn)入平臺
- 支持的action越多,比如搜索、篩選、排序等,可配置的功能類型就越多
- 支持的layout越多,比如移動端界面、PC端界面、組件化,界面可配置能力越強(qiáng)
這里面,object是基礎(chǔ),action經(jīng)過擴(kuò)充和編排可以流程化成為工作流,整體又通過靈活的多租戶、多角色權(quán)限體系來管控,共同構(gòu)成了aPaaS平臺的靈活性。這樣分析下來,aPaaS產(chǎn)品經(jīng)理做的工作,實(shí)際上是把研發(fā)流程變得可視化、配置化。從一次做一個SaaS產(chǎn)品,到一次做一批SaaS產(chǎn)品的配置能力。這需要出眾的實(shí)體抽象和領(lǐng)域設(shè)計能力,以及良好的體驗(yàn)品味。
五、總結(jié)
aPaaS產(chǎn)品經(jīng)理,是軟件行業(yè)蓬勃發(fā)展和企業(yè)數(shù)字化進(jìn)程下對軟件要求不斷提高的產(chǎn)物。從需求和供給的角度上來說,aPaaS產(chǎn)品的發(fā)展都將是一種必然。希望所有的軟件相關(guān)PM都能了解這個領(lǐng)域、研究這個領(lǐng)域,這樣就相當(dāng)于站在“產(chǎn)品之外”來設(shè)計產(chǎn)品,會有更高層次的抽象意識。
但反過來說,aPaaS本質(zhì)是一套生態(tài),如果大家都在做自己的生態(tài),又不能互通,就會導(dǎo)致生態(tài)缺乏完整性,那么也就失去了價值。目前的TOB市場上,salesforce、企業(yè)微信等都有自己的生態(tài),但國內(nèi)大量的企業(yè)還在數(shù)字化進(jìn)程中,最終這些生態(tài)何去何從,能建設(shè)到多大,仍存在較多變數(shù)。所以aPaaS領(lǐng)域最終會演化成怎樣的模式、有多久的周期,仍是未知。理性地講,aPaaS要抽象起來,或許能裝下整個宇宙。
但是,抽象的成本也是無限增加的。需要兼具智慧和勇氣的各位不斷探索,既不能把a(bǔ)PaaS做成強(qiáng)大但沒有場景的“屠龍之術(shù)”,也不能鉆牛角尖閉門造車,讓產(chǎn)品很難復(fù)用?!俺橄髿w納和具象定制平衡”的設(shè)計哲學(xué),在aPaaS領(lǐng)域成為了核心問題,但在其它產(chǎn)品設(shè)計領(lǐng)域,也尤為重要。
所以最后,愿諸君能在抽象與具象之間,用對業(yè)務(wù)的理解,找到產(chǎn)品力和成本的最佳平衡。
引用:
- 科學(xué)網(wǎng)? Force.com的多租戶架構(gòu)理解(二) – 唐李洋的博文
- 一文講透APaaS平臺是什么
- 7.2.1 預(yù)置對象管理 · 紛享銷客產(chǎn)品手冊
#專欄作家#
花生醬先生,微信公眾號:產(chǎn)品之術(shù),人人都是產(chǎn)品經(jīng)理專欄作家。金融業(yè)資深產(chǎn)品經(jīng)理,對職涯規(guī)劃與個人發(fā)展有豐富經(jīng)驗(yàn),產(chǎn)品涉獵廣泛,ERP、金融領(lǐng)域較多。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Pixabay,基于CC0協(xié)議
“理性地講,aPaaS要抽象起來,或許能裝下整個宇宙。”贊!
“能在抽象與具象之間,用對業(yè)務(wù)的理解,找到產(chǎn)品力和成本的最佳平衡”,隨著行業(yè)發(fā)展,市場需求的增大,從供需上來說,paas的挑戰(zhàn),隨著時間的增加,極具加大,但極具壓力下的爆發(fā)點(diǎn)也要到了。沖沖沖
隨著企業(yè)對軟件服務(wù)的預(yù)期越來越高,垂直、單點(diǎn)的SaaS產(chǎn)品已經(jīng)很難獨(dú)立商業(yè)化。作者分析到位