如何解決產(chǎn)品標(biāo)品與客戶(hù)個(gè)性化需求之間的沖突問(wèn)題?
做Saas經(jīng)常會(huì)遇到一個(gè)問(wèn)題:我們希望功能做成標(biāo)準(zhǔn)化的產(chǎn)品,但客戶(hù)總有自己的個(gè)性化需求。這種情況,如何解決?這篇文章,作者給到了自己的解決方案,大家可以參考一下。
01 沖突與矛盾
相信不少做 ToB 產(chǎn)品的同學(xué)都會(huì)遇上這個(gè)問(wèn)題:標(biāo)準(zhǔn)產(chǎn)品與客戶(hù)個(gè)性化需求之間的沖突問(wèn)題。
在某個(gè) ToB 端細(xì)分領(lǐng)域中,想在已有的項(xiàng)目或者行內(nèi)通用規(guī)范的基礎(chǔ)上,提煉出產(chǎn)品標(biāo)品(還談不上是 SaaS),這樣在面對(duì)新的客戶(hù)時(shí),可以實(shí)現(xiàn)低成本、快速高效地完成交付。
形成行業(yè)產(chǎn)品標(biāo)品是降低項(xiàng)目產(chǎn)品成本的有效方式之一,也是我們作為產(chǎn)品人的心念。
可是,在形成產(chǎn)品標(biāo)品之后,我們?cè)趺礉M(mǎn)足客戶(hù)個(gè)性化需求?在 ToB 產(chǎn)品,個(gè)性化的需求是在所難免的,這也是 B 端產(chǎn)品的魅力之一,否則各行業(yè)的 SaaS 產(chǎn)品早就統(tǒng)一了市場(chǎng)。
話(huà)又說(shuō)回來(lái),如果是增量的個(gè)性化,這種稍微好處理一點(diǎn),我們?cè)谠挟a(chǎn)品功能的基礎(chǔ)上增加功能就好。然而,有些個(gè)性化需求會(huì)破壞原產(chǎn)品的邏輯結(jié)構(gòu),這種不管是產(chǎn)品設(shè)計(jì)層面還是軟件編碼實(shí)現(xiàn)層面,都很難做到協(xié)調(diào)與統(tǒng)一。
甚至有很多公司分為兩個(gè)開(kāi)發(fā)團(tuán)隊(duì),一個(gè)團(tuán)隊(duì)負(fù)責(zé)標(biāo)準(zhǔn)產(chǎn)品的開(kāi)發(fā),另一個(gè)開(kāi)發(fā)團(tuán)隊(duì)負(fù)責(zé)開(kāi)發(fā)客戶(hù)定制化需求,這其中的成本不言而喻。
那有沒(méi)有什么產(chǎn)品架構(gòu)可以形成產(chǎn)品標(biāo)品又可以滿(mǎn)足客戶(hù)各種定制化需求?有問(wèn)題肯定有解決方案,這個(gè)問(wèn)題困擾了我們團(tuán)隊(duì)很久,在總結(jié)過(guò)往項(xiàng)目經(jīng)驗(yàn)及團(tuán)隊(duì)思想碰撞過(guò)后,得到了一個(gè)優(yōu)雅的解決方案。
02 應(yīng)用的繼承與重寫(xiě)
在介紹方案之前,首先了解一下面向?qū)ο笾嘘P(guān)于“類(lèi)”與“繼承重寫(xiě)”相關(guān)的概念:
- 類(lèi):一種用于描述現(xiàn)實(shí)世界中具有共同屬性和行為的事物的模板,是對(duì)現(xiàn)實(shí)世界中某一類(lèi)事物的抽象描述,包含了一組屬性和方法。屬性用于描述對(duì)象的狀態(tài),方法用于定義對(duì)象的行為。
- 繼承:子類(lèi)繼承父類(lèi)后,子類(lèi)就可以調(diào)用父類(lèi)的屬性和函數(shù),這樣子類(lèi)無(wú)需重復(fù)實(shí)現(xiàn)已有的邏輯
- 重寫(xiě):子類(lèi)繼承父類(lèi)后,若父類(lèi)的函數(shù)無(wú)法滿(mǎn)足需求,可以在子類(lèi)中創(chuàng)建一個(gè)同名的函數(shù),在子類(lèi)的函數(shù)中實(shí)現(xiàn)個(gè)性化需求,在實(shí)際執(zhí)行時(shí)會(huì)執(zhí)行子類(lèi)的函數(shù)而不是父類(lèi)的函數(shù)。
了解上面的概念后,我們知道了“類(lèi)”其實(shí)是對(duì)有共同特征的事物的抽象表達(dá),而繼承是為了方便復(fù)用,重寫(xiě)可以?xún)?yōu)雅地解決個(gè)性化需求。
那如果我們將一個(gè)業(yè)務(wù)應(yīng)用當(dāng)成一個(gè)“類(lèi)”,業(yè)務(wù)應(yīng)用之間也支持繼承與重寫(xiě),這樣是不是就可以解決標(biāo)品與個(gè)性化需求之間的沖突問(wèn)題?
我們沿著這個(gè)思路再深入探討,假設(shè)我開(kāi)發(fā)了一個(gè)相對(duì)標(biāo)準(zhǔn)的 CRM (客戶(hù)關(guān)系管理)系統(tǒng):
1)如果客戶(hù)沒(méi)有個(gè)性化需求,就用標(biāo)準(zhǔn)的 CRM 交付;
2)如果客戶(hù)有個(gè)性化需求,就新建一個(gè)應(yīng)用繼承于標(biāo)準(zhǔn)的 CRM :
- 通用的部分就使用標(biāo)準(zhǔn)的 CRM,不需要重復(fù)開(kāi)發(fā);
- 有新增的功能需求,比如加一個(gè)【客戶(hù)來(lái)源分析報(bào)表】的功能,這樣的功能并沒(méi)有破壞標(biāo)準(zhǔn) CRM 的結(jié)構(gòu),我們?cè)谛陆ǖ膽?yīng)用中實(shí)現(xiàn)就可以的了,如果很有客戶(hù)都有這個(gè)功能的需求,我們?cè)賹⑦@個(gè)功能加到標(biāo)準(zhǔn) CRM 中;
- 需要對(duì)標(biāo)準(zhǔn) CRM 中有些功能做調(diào)整,比如【客戶(hù)跟進(jìn)】,客戶(hù)跟進(jìn)的流程有定制化的需求,就在新建的應(yīng)用中重寫(xiě)這部分的功能
初步的設(shè)想好像是可行的。
但是,要注意的是,“類(lèi)”的內(nèi)部結(jié)構(gòu)(屬性和函數(shù))是有一定標(biāo)準(zhǔn)的,繼承與重寫(xiě)本質(zhì)是利用“類(lèi)”的屬性和函數(shù),對(duì)應(yīng)地,業(yè)務(wù)應(yīng)用內(nèi)的結(jié)構(gòu)也需要有一定的標(biāo)準(zhǔn)和規(guī)范,這樣才能和“類(lèi)”一樣繼承與重寫(xiě)。
那問(wèn)題來(lái)了,怎么定義應(yīng)用內(nèi)的結(jié)構(gòu)呢?
03 解構(gòu)業(yè)務(wù)應(yīng)用并模塊化
長(zhǎng)期設(shè)計(jì)具體的產(chǎn)品功能需求容易陷入繁瑣的細(xì)節(jié)問(wèn)題而難以站在更高的維度重新審視產(chǎn)品結(jié)構(gòu),這是很多產(chǎn)品人面臨的窘境。不管是為了產(chǎn)品的健壯性還是為了個(gè)人的發(fā)展,都很有必要時(shí)不時(shí)地用頂層設(shè)計(jì)思維重新思考產(chǎn)品。
在分析了大量業(yè)務(wù)應(yīng)用后,我們發(fā)現(xiàn),業(yè)務(wù)應(yīng)用基本都是由菜單功能、導(dǎo)航框架、業(yè)務(wù)流程、后臺(tái)數(shù)據(jù)邏輯、任務(wù)、事件訂閱等模塊組成,當(dāng)然,不是所有的模塊都是必需的,根據(jù)應(yīng)用的實(shí)際業(yè)務(wù)需要可做對(duì)應(yīng)的調(diào)整。如此拆解之后,我們自然而然地就想到了將應(yīng)用模塊化,模塊之間盡量解耦,但同時(shí)需要提供一種機(jī)制保證各模塊之間可以相互通信,比如功能之間可以相互跳轉(zhuǎn),在菜單功能中可以調(diào)用后臺(tái)數(shù)據(jù)邏輯,在業(yè)務(wù)流程中可以觸發(fā)事件訂閱等等。
模塊化的顆粒度可以根據(jù)實(shí)際的業(yè)務(wù)應(yīng)用來(lái)做劃分,我這里是將低代碼平臺(tái)作為業(yè)務(wù)應(yīng)用開(kāi)發(fā)的解決方案。如果是純業(yè)務(wù)應(yīng)用,可以換一種思路將應(yīng)用模塊化,比如按照功能的維度,訂單模塊、用戶(hù)模塊、系統(tǒng)模塊等等,每個(gè)功能模塊包括前端頁(yè)面、數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)流轉(zhuǎn)邏輯等等,利用功能來(lái)劃分,也需要做到模塊與模塊之間盡量解耦,模塊之間不要有太多的耦合。
將應(yīng)用模塊化之后,我們?cè)賹⒛K類(lèi)比于面向?qū)ο缶幊趟枷胫械摹邦?lèi)”,這樣應(yīng)用之間的繼承就可以具體到應(yīng)用內(nèi)模塊的繼承,實(shí)際的業(yè)務(wù)實(shí)現(xiàn)本身也是落實(shí)到應(yīng)用的模塊中。
04 方案實(shí)踐與落地
當(dāng)然上面介紹的還只停留在方案思維層面,而在實(shí)際操作中,不管是在產(chǎn)品開(kāi)發(fā)框架還是產(chǎn)品設(shè)計(jì)架構(gòu)上都有很大的挑戰(zhàn),需要保證框架有足夠的靈活性和擴(kuò)展性。
我們前期投入大量的精力來(lái)建設(shè)底層基座平臺(tái),包括應(yīng)用開(kāi)發(fā)、應(yīng)用模塊化、提供應(yīng)用繼承機(jī)制、應(yīng)用商城、應(yīng)用安裝部署、應(yīng)用可視化運(yùn)維等能力。
在應(yīng)用開(kāi)發(fā)維度,我們將業(yè)務(wù)應(yīng)用中的模塊抽象為不同類(lèi)型的元素,比如頁(yè)面元素、數(shù)據(jù)表元素、后臺(tái)任務(wù)元素、業(yè)務(wù)流程元素等等,元素支持繼承與重寫(xiě)?;诓煌?lèi)型的元素創(chuàng)建的實(shí)例元素(一個(gè)對(duì)象就是“類(lèi)”實(shí)例)組成一個(gè)業(yè)務(wù)應(yīng)用,對(duì)于后續(xù)的擴(kuò)展,增加元素類(lèi)型就可以了。
利用這些元素開(kāi)發(fā)好一個(gè)標(biāo)準(zhǔn) CRM 系統(tǒng)并上傳到官方應(yīng)用商城作為應(yīng)用模板,沒(méi)有個(gè)性化需求的客戶(hù)直接從應(yīng)用商城安裝就可以了,若有個(gè)性化需求,新建一個(gè)空白的應(yīng)用繼承于標(biāo)準(zhǔn) CRM 系統(tǒng)
這樣在面對(duì)下面這場(chǎng)的個(gè)性化需求就可以從容應(yīng)對(duì)了:
- 在客戶(hù)表新建再加一個(gè)字段,重寫(xiě)【客戶(hù)表】數(shù)據(jù)表模型即可;
- 增加線(xiàn)索合并邏輯,重寫(xiě)【線(xiàn)索合并】頁(yè)面邏輯即可;
- 增加一個(gè)跟進(jìn)分析的功能,在新建的應(yīng)用中增加一個(gè)功能即可;
- …
從產(chǎn)品上線(xiàn)到現(xiàn)在, 2 個(gè)月不到的時(shí)間就解決了幾十個(gè)有定制化需求的客戶(hù)問(wèn)題。雖然平臺(tái)建設(shè)的前期成本會(huì)比較大,但在后續(xù)的項(xiàng)目交付中,極大地提升了項(xiàng)目交付效率并優(yōu)雅地解決了標(biāo)準(zhǔn)產(chǎn)品與客戶(hù)個(gè)性化需求之間的沖突問(wèn)題。
當(dāng)然肯定還有很多優(yōu)雅的方案可以解決產(chǎn)品標(biāo)品與客戶(hù)個(gè)性化需求之間的沖突問(wèn)題,如果你對(duì)這方面感興趣,歡迎可以在評(píng)論區(qū)留言或者私信,好的方案都是在溝通碰撞中乍現(xiàn)的!
本文由 @桃樹(shù)窗前 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
個(gè)性化定制太酷了!希望企業(yè)能多聽(tīng)聽(tīng)我們的聲音,讓產(chǎn)品更貼合我們的心意。???????
不好用。低代碼,復(fù)雜業(yè)務(wù)做不了,SAAS有點(diǎn)搞笑了
低代碼也在發(fā)展,不是簡(jiǎn)單的以表單表格驅(qū)動(dòng)了
解決產(chǎn)品標(biāo)準(zhǔn)化與客戶(hù)個(gè)性化需求之間的沖突是一個(gè)復(fù)雜的問(wèn)題,需要產(chǎn)品經(jīng)理和團(tuán)隊(duì)在產(chǎn)品設(shè)計(jì)和開(kāi)發(fā)過(guò)程中進(jìn)行深思熟慮的平衡。
是的,在做了很多項(xiàng)目之后,我們團(tuán)隊(duì)決定利用低代碼平臺(tái)來(lái)解決其中的矛盾與沖突,當(dāng)然任重而道遠(yuǎn)
文中提到的是極態(tài)云低代碼平臺(tái),有興趣的可以體驗(yàn)一下:https://jit.pro/