精細(xì)化運(yùn)營(yíng)的核心支持工具:決策引擎
編輯導(dǎo)語(yǔ):決策引擎是一個(gè)工具,利用決策引擎可以支撐企業(yè)在客戶管理(CRM)的各種決策,在決策引擎之上可以開(kāi)發(fā)出各種不同的解決方案。運(yùn)營(yíng)要講求精細(xì)化,要根據(jù)產(chǎn)品、用戶、市場(chǎng)的具體情況制定具體的運(yùn)營(yíng)措施。文章主要分享了決策引擎在用戶分層精細(xì)化運(yùn)營(yíng)領(lǐng)域的應(yīng)用方法,希望對(duì)你有用。
我個(gè)人是不太喜歡“道法術(shù)器”之類(lèi)的描述的,所謂強(qiáng)國(guó)之策無(wú)奇計(jì),結(jié)硬寨打呆仗一直是我所篤信的策略和指導(dǎo)意見(jiàn),但不得不說(shuō),前述的幾個(gè)短文簡(jiǎn)單的描述了精細(xì)化運(yùn)營(yíng)的“道法術(shù)”,也就是為什么要做、到底怎么做、如何控制其不偏離整體目標(biāo)的問(wèn)題。拋開(kāi)這些,個(gè)人覺(jué)得智能化商業(yè)化的決策引擎,算是改變了重人力職場(chǎng)作業(yè)模式的最重要的“器”。
在前東家時(shí),有段時(shí)間,因項(xiàng)目和工作調(diào)整,負(fù)責(zé)了部門(mén)決策引擎的更新?lián)Q代,或者叫救死扶傷。近期依稀想起來(lái)記得剛剛接手該項(xiàng)目時(shí),囿于前人留下的SHIT MOUNTAIN CODE、無(wú)說(shuō)明、無(wú)PRD等,作為一個(gè)接手一件事務(wù),習(xí)慣性了解其全貌的鐵頭娃,著實(shí)有一段時(shí)間天天撓頭??梢哉f(shuō)無(wú)從下手,并不理解從怎么樣的角度去切入。
基于后來(lái)的理解,大部分的決策引擎,或者說(shuō)在市面上能買(mǎi)到的決策引擎,大都是基于Drools的二次封裝,其基于JAVA語(yǔ)言。可能是理解過(guò)于粗淺,但在我理解上來(lái)說(shuō),其無(wú)外乎做到了兩點(diǎn):①(理論上的)業(yè)務(wù)及策略人員可無(wú)代碼使用;②賦值效率明顯提升;
一個(gè)成熟可用的【決策引擎】,與其說(shuō)是一個(gè)單獨(dú)的系統(tǒng),不如稍微擴(kuò)展一下視野。其應(yīng)該是包括Drools在內(nèi),包含KYC用戶畫(huà)像,KYE經(jīng)辦人畫(huà)像,一個(gè)良好的配置中心,一個(gè)良好的展示頁(yè)面(如穩(wěn)定的電銷(xiāo)系統(tǒng)/電催系統(tǒng)),以及一個(gè)穩(wěn)定且健壯的策略/運(yùn)營(yíng)團(tuán)隊(duì)等。
在之后的業(yè)務(wù)需求中,任何一個(gè)環(huán)節(jié)和問(wèn)題,都會(huì)引起最終的結(jié)果的偏差。
依稀記得當(dāng)時(shí)遍尋適宜的教程而不得。要么流于形式,很顯然是不知從哪里拾得的只鱗片爪的牙慧,要么就是偉光正但不解決實(shí)際問(wèn)題的PPT,要么囿于一隅,很容易將自己的眼光局限在一小塊。并不滿足一個(gè)策略部門(mén)決策引擎產(chǎn)品經(jīng)理的需求。
本文基于,DroolsWorkBench6.2/6.4版本。僅對(duì)SQL/IMPALA/HIVE/PYTHON有過(guò)了解,對(duì)決策引擎、Drools毫無(wú)了解的視角去展開(kāi)。希望能為因?yàn)榉N種原因,在策略實(shí)施階段,仍需要通過(guò)WorkBench編寫(xiě)偽代碼的策略人員/數(shù)據(jù)產(chǎn)品人員提供一丟丟幫助,日行一善。如果有人看到了之后能少掉幾根頭發(fā),希望少掉的頭發(fā)能長(zhǎng)在我的頭上。
CSDN上’在風(fēng)中的意志’大佬救了我不少頭發(fā),遙遠(yuǎn)感謝下。
一、什么是決策引擎及使用范圍
決策引擎,對(duì)于業(yè)務(wù)人員來(lái)講,在大部分語(yǔ)境和語(yǔ)義下,都是指在業(yè)務(wù)線中,可根據(jù)復(fù)雜的決策規(guī)則,起到路由作用,可以支持復(fù)雜決策流,決策樹(shù)規(guī)則的,將案件/客戶分發(fā)的一個(gè)工具。
最常見(jiàn)的使用范圍有:
- 電銷(xiāo)業(yè)務(wù)場(chǎng)景,尤其是‘熱名單’分配;
- 電催業(yè)務(wù)場(chǎng)景,巨量案件分配及案件滾動(dòng)撥打的實(shí)現(xiàn);
- 風(fēng)險(xiǎn)管理場(chǎng)景,模型規(guī)則應(yīng)用的配置等。
至少在我淺薄的認(rèn)知中,決策引擎主要起到的就是【客戶】這一核心資源的自動(dòng)分配任務(wù)。
常規(guī)的決策引擎,不論是否支持“拖拉拽”的Fancy方式制定決策樹(shù)/決策流,無(wú)論宣傳語(yǔ)上提到自己支持多少種業(yè)務(wù)場(chǎng)景。絕大部分的決策引擎,都是基于Drools(基于Java的BRMS解決方案)優(yōu)化、迭代、融合自己的一些業(yè)務(wù)經(jīng)驗(yàn),打包而成的東西。
相對(duì)于某些同業(yè),仍然使用手工的方式去分配案件,算不清楚營(yíng)收平衡需要多少客戶,做不到新增登陸APP的客戶及時(shí)問(wèn)詢購(gòu)買(mǎi)產(chǎn)品意向來(lái)說(shuō),決策引擎已經(jīng)算是較為高科技的工具了。
What’s more .決策引擎,個(gè)人感覺(jué)是通過(guò)常規(guī)的業(yè)務(wù)管理方式,已經(jīng)很難再挖掘業(yè)務(wù)潛力之后,所自然而然的,基于精細(xì)化運(yùn)營(yíng)之后所需的一個(gè)產(chǎn)品,主要用于策略的頻繁修改及客戶資源的令行禁止,而不是一個(gè)常規(guī)管理手段都沒(méi)有做好的BU,通過(guò)引入決策引擎,就可以翻身了。
一個(gè)良好的決策引擎,隱含所需的 KYC客戶畫(huà)像水平,KYE 員工管理水平,坦而言之,兩者間能做到一個(gè)長(zhǎng)處已經(jīng)可以算作優(yōu)秀,兩個(gè)長(zhǎng)處可以算作極品了。
KPI靠分解、分層、分類(lèi)、分級(jí),執(zhí)行的時(shí)候靠定價(jià)、定級(jí)、定量、定責(zé)。做到這些決策引擎才能發(fā)揮最大作用。當(dāng)然這個(gè)就不在文章討論范圍內(nèi)了。
二、決策引擎的組成
一個(gè)常規(guī)的決策引擎的組成有:
- kmodule.xml:定義好的流程文件;
- *.drl:由策略人員修改的策略集文件;
- KIE結(jié)構(gòu):’通過(guò)KieServices對(duì)象得到一個(gè)KieContainer,然后KieContainer根據(jù)session name來(lái)新建一個(gè)KieSession,最后通過(guò)KieSession來(lái)運(yùn)行規(guī)則’。
- (可能有)前段展示界面;
對(duì)于產(chǎn)品或者策略來(lái)說(shuō)是不是看不懂。沒(méi)事,我到現(xiàn)在也看不懂。這部分問(wèn)題還是交給技術(shù)人員去考慮。
技術(shù)及組件相關(guān)的,在此我只想就個(gè)人經(jīng)歷著重提醒注意幾個(gè)點(diǎn):
- 還請(qǐng)稍微注意一下*.drl語(yǔ)法:如經(jīng)典的no-loop 、static 是否循環(huán)判斷等,對(duì)計(jì)算效率及最后結(jié)果是否是自己想要的有極大影響;
- 還請(qǐng)稍微注意一下'<groupid>/<artifactId>/kbasename’等:編寫(xiě)DRL規(guī)則文件時(shí),如果使用的不是拖拉拽版本的決策引擎,針對(duì)此類(lèi)字眼名稱,煩請(qǐng)多次檢查,否則打包時(shí),會(huì)導(dǎo)致各種各樣的報(bào)錯(cuò)頻頻;
- 標(biāo)簽少點(diǎn)、少點(diǎn)、少點(diǎn):不論是風(fēng)控決策引擎,或者是電銷(xiāo)、電催相關(guān)的決策引擎;不論是從外部引入第三方的數(shù)據(jù)標(biāo)簽,或者是在自己的KYC/KYE中形成自己客戶、坐席的標(biāo)簽;標(biāo)簽是有悄無(wú)聲息地突然增多的傾向的。標(biāo)簽應(yīng)用到?jīng)Q策引擎上,應(yīng)當(dāng)是有詳盡完善的測(cè)試之后再進(jìn)行的。此外,標(biāo)簽應(yīng)當(dāng)多一些類(lèi)別,少一些數(shù)量。否則標(biāo)簽的不及時(shí)清理,又會(huì)堆積成新的屎山。
- 新的策略包上線時(shí),不論有多困難,還請(qǐng)做一次上線測(cè)試,一次灰度測(cè)試:按之前的經(jīng)驗(yàn),假如說(shuō)待判斷案件有200萬(wàn)左右時(shí),一次策略回滾,可能導(dǎo)致近12個(gè)小時(shí)無(wú)法生產(chǎn),在這個(gè)時(shí)候,鍋是甩不到運(yùn)維那邊計(jì)算效率低的。還請(qǐng)?jiān)谏暇€前做一次上線測(cè)試。如果條件允許,配按量的灰度測(cè)試是極佳的;
- 版本管理、版本管理、版本管理:現(xiàn)在大部分封裝好的決策引擎已經(jīng)可以提供版本管理和回滾的功能。但如果你使用的是裸露在外的DROOLS,還請(qǐng)自行做好版本管理的工作,以免之后領(lǐng)導(dǎo)突發(fā)奇想想回滾時(shí)找不到;
- 隊(duì)列管理、隊(duì)列管理、隊(duì)列管理:不論是電銷(xiāo)或催收、或者是風(fēng)控決策引擎,合理的學(xué)習(xí)交行卡中心所做的隊(duì)列管理思路是不會(huì)錯(cuò)的。在編寫(xiě)策略包時(shí),要清晰的知道這一個(gè)策略,是將案件從案件池分到隊(duì)列(隊(duì)列可以包含虛擬隊(duì)列或者所謂的’場(chǎng)景’),還是從隊(duì)列分到個(gè)人;要做到金字塔原理中的MECE規(guī)則,即全覆蓋和不交叉。如果你所編寫(xiě)的策略,隊(duì)列混亂且交叉。只能祝你之后查錯(cuò)的時(shí)候好運(yùn),希望接手你工作的人不是200斤帶金鏈子的我。
三、一個(gè)策略方的產(chǎn)品經(jīng)理,日常應(yīng)該更關(guān)心什么
拋開(kāi)DRL文件,拋開(kāi)測(cè)試類(lèi),拋開(kāi)標(biāo)簽,拋開(kāi)賦值語(yǔ)句。竊以為,對(duì)一個(gè)策略部門(mén)的決策引擎產(chǎn)品經(jīng)理來(lái)說(shuō),以下的內(nèi)容才是更應(yīng)該花時(shí)間去考慮的:
1. 清晰、流暢、兼顧各方、高內(nèi)聚低耦合的決策流
作為一個(gè)BRMS工具,某種意義而言,整個(gè)系統(tǒng),都是為了更好地實(shí)現(xiàn)業(yè)務(wù)的決策流。但常規(guī)存在的問(wèn)題是,對(duì)于業(yè)務(wù)而言,每一個(gè)部門(mén)、小組,對(duì)于客戶資源分配,都有自己的一些考慮,任何系統(tǒng)方面的偏差幾乎必然成為業(yè)務(wù)與產(chǎn)品之間齟齬的理由。
第二個(gè)方面,畫(huà)在XIMND上的決策樹(shù),在DroolsWorkBench中,因?yàn)樾阅堋⒁?guī)則編輯方式、甚至因?yàn)槠渌M件不全、甚至因?yàn)榧夹g(shù)提供的Drools版本太老的問(wèn)題,難以實(shí)現(xiàn)。甚至需要人肉去劃分兩個(gè)進(jìn)程、決策表來(lái)處理同一個(gè)問(wèn)題。此操作是反奧卡姆剃刀原則的。每多一個(gè)環(huán)節(jié),就會(huì)多一分出錯(cuò)的可能性。
因此,策略部門(mén)的決策引擎產(chǎn)品經(jīng)理,在編寫(xiě)DRL文件之前,最需要做的,是了解并排查當(dāng)前決策流中的問(wèn)題。大概率,當(dāng)新增一個(gè)決策引擎,或者更換一個(gè)決策引擎時(shí),當(dāng)前日常決策流程中,是存在各種各樣的問(wèn)題的。在梳理過(guò)程中發(fā)現(xiàn)的各個(gè)組之間的客戶沖突,請(qǐng)直接暴露給決策層,避免造成后續(xù)的問(wèn)題。
再具體梳理決策流時(shí),請(qǐng)注意各個(gè)層級(jí)之間的內(nèi)聚及不同層級(jí)之間的耦合,盡管產(chǎn)品經(jīng)理并沒(méi)有在具體寫(xiě)實(shí)施代碼(其實(shí)決策引擎除了初期開(kāi)發(fā)外,DRL文件修改也主要是產(chǎn)品運(yùn)營(yíng)去寫(xiě)。),但是這個(gè)原則一定會(huì)在之后方便復(fù)盤(pán)、修改等等。
應(yīng)當(dāng)尊重現(xiàn)有工作流,并嘗試改變不合理的工作流,而不是一味服從:在編寫(xiě)DRL文件,或者調(diào)整決策引擎時(shí),決策引擎的產(chǎn)品經(jīng)理,是比其他任何人更能發(fā)現(xiàn)現(xiàn)有的決策流、工作流的問(wèn)題的??赡苁侵貜?fù)判斷、可能是隊(duì)列交叉,可能就是兩個(gè)判斷流之間有空隙等等。
可以尊重現(xiàn)有的工作流,但也請(qǐng)?jiān)谟杏嗔Φ臅r(shí)候,進(jìn)一步清晰化決策流;否則屎山代碼的積累,會(huì)變成一個(gè)擊鼓傳花的游戲,問(wèn)題總會(huì)在一個(gè)人手上爆炸,你無(wú)法知道自己不是那個(gè)倒霉蛋。
2. 注意與其他系統(tǒng)之間的交互和協(xié)同
拋開(kāi)機(jī)械化地看待系統(tǒng)、看待工作;深覺(jué)得任何一個(gè)策略人員、數(shù)據(jù)分析人員、或者產(chǎn)品經(jīng)理,都應(yīng)該確實(shí)的理解一個(gè)問(wèn)題,任何業(yè)務(wù),尤其是一線作業(yè)人員較多的業(yè)務(wù),系統(tǒng)之間的銜接和補(bǔ)充,甚至是比有多少個(gè)系統(tǒng)更重要的問(wèn)題。重復(fù)造輪子拓展自己權(quán)限邊界當(dāng)我沒(méi)說(shuō)。
根據(jù)經(jīng)驗(yàn),會(huì)與決策引擎會(huì)產(chǎn)生交互的系統(tǒng)有:
前端展示即作業(yè)系統(tǒng)、標(biāo)簽集市或數(shù)據(jù)管理系統(tǒng)、配置管理系統(tǒng)、(有可能)大數(shù)據(jù)平臺(tái)、(有可能)智能外呼機(jī)器人等,當(dāng)然,還有最主要的系統(tǒng),人。
因此,出于解決生產(chǎn)問(wèn)題考慮,會(huì)有如下一些問(wèn)題需要考慮:
決策引擎的日志需要保留到怎么樣的一種程度,或者日常作業(yè)的數(shù)據(jù)可以僅保留在作業(yè)系統(tǒng)的數(shù)據(jù)庫(kù)中;如何減少代碼的使用量地,可擴(kuò)展地與標(biāo)簽集市發(fā)生交互;當(dāng)計(jì)算資源不足時(shí),如何妥善的分解決策流,更高效地使用計(jì)算資源等等。甚至,需要考慮,如何編寫(xiě)完善的文檔,當(dāng)一線作業(yè)人員對(duì)自己手里的案件有疑問(wèn)時(shí),可以妥善的處理疑問(wèn)。
3. 成本、效率
當(dāng)所使用的數(shù)據(jù)有外部引入的數(shù)據(jù)時(shí),或在整個(gè)體系中需要使用收費(fèi)的外部服務(wù)時(shí),就會(huì)明確牽扯到成本的管控問(wèn)題。即使是僅出于自己安全考慮,也應(yīng)當(dāng)注意到每一筆調(diào)用的費(fèi)用帶來(lái)了什么。成本是否可控,是否有足夠的性價(jià)比。
四、我所建議的學(xué)習(xí)路徑
基于之前的不堪回首的經(jīng)歷,如果你是一個(gè)新人的策略部門(mén)的決策引擎管理員,建議采用以下的流程去學(xué)習(xí)熟悉(僅針對(duì)非可視化非商業(yè)化的產(chǎn)品):
- LESSON1:JAVA基礎(chǔ)了解。如果之前對(duì)于代碼,僅有譚浩強(qiáng)C語(yǔ)言級(jí)別的了解。甚至C語(yǔ)言課程都沒(méi)有看過(guò),建議花1天時(shí)間,稍微了解一下類(lèi)、變量、繼承的概念。
- LESSON2: DROOLS基礎(chǔ)了解。DROOLS WORKBENCH盡管是基于JAVA的產(chǎn)品,但其核心概念KIE結(jié)構(gòu)畢竟是單獨(dú)的一個(gè)內(nèi)容。建議花1天時(shí)間,了解KIE結(jié)構(gòu),了解SESSION、容器、類(lèi)的感念。
- LESSON3:決策流梳理。類(lèi)似于上述的內(nèi)容,請(qǐng)酌情花一段時(shí)間,去了解各個(gè)組之間的決策流,了解不同組別對(duì)客戶的需求、或者隊(duì)列的差異。并根據(jù)實(shí)際情況,生成自己的構(gòu)想。
- LESSON4:自己動(dòng)手去做測(cè)試。不論DRL構(gòu)想有多優(yōu)秀,除非使用ECLIPSE或者其他IDLE,在本地對(duì)自己的DRL文件進(jìn)行測(cè)試,不然很難認(rèn)知到自己的設(shè)想的錯(cuò)誤。請(qǐng)?jiān)谌魏伟姹靖埃龊脺y(cè)試及確認(rèn)工作。
五、最后的碎碎念
不得不說(shuō),決策引擎的產(chǎn)品運(yùn)營(yíng),相對(duì)于其他系統(tǒng)來(lái)說(shuō),考慮到其對(duì)生產(chǎn)的巨大影響,及與其他諸多系統(tǒng)的交互,及產(chǎn)品經(jīng)理與諸多組別的交互,是非??简?yàn)人耐心及細(xì)心的系統(tǒng)。另外,不論是運(yùn)維的問(wèn)題或者是系統(tǒng)的宕機(jī),又或者是策略的翻來(lái)覆去,甚至是前人留下的屎山代碼都會(huì)造成可能的生產(chǎn)事故。不了解情況的人,會(huì)認(rèn)為均是你的問(wèn)題。因此,建議有選擇的時(shí)候,慎重選擇決策引擎的產(chǎn)品運(yùn)營(yíng)角色。
此外,不得不說(shuō),決策引擎運(yùn)營(yíng)的久了,整個(gè)思路確實(shí)也更加相信控制論,這可能是管理決策引擎帶來(lái)的思路上面的改變。
祝愿所有管理決策引擎的倒霉蛋少掉點(diǎn)頭發(fā)。
本文由 @肥柴周 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
您好,可以加V交流嗎?