最實用的中臺入門介紹(四)領(lǐng)域劃分與需求結(jié)構(gòu)化

5 評論 5502 瀏覽 12 收藏 13 分鐘

編輯導(dǎo)語:在建設(shè)中臺時,領(lǐng)域劃分與需求結(jié)構(gòu)化是相輔相成的,領(lǐng)域劃分是為了更好地將需求結(jié)構(gòu)化,需求結(jié)構(gòu)化也有助于領(lǐng)域劃分,邊界清晰。那么要如何進行領(lǐng)域的劃分和需求結(jié)構(gòu)化呢?一起來看一下吧。

之前關(guān)于中臺的入門介紹寫了三篇,講了中臺的規(guī)劃和能力模型,今天來細說說領(lǐng)域劃分與需求結(jié)構(gòu)化。

今天這篇文章主要是講理論和概念。

領(lǐng)域劃分與需求結(jié)構(gòu)化相輔相成,領(lǐng)域劃分是為了更好地將需求結(jié)構(gòu)化,需求結(jié)構(gòu)化也有助于領(lǐng)域劃分,邊界清晰。

但是你可能會問了,需求結(jié)構(gòu)化和領(lǐng)域劃分的目的是什么呢。

建設(shè)中臺希望達到的效果是能夠?qū)⑼ㄓ玫臉I(yè)務(wù)邏輯沉淀為能力,最終實現(xiàn)中臺能力的高度可復(fù),可以節(jié)省新產(chǎn)品新功能的研發(fā)時間,提高研發(fā)效率。

而領(lǐng)域劃分和需求結(jié)構(gòu)化是有助于中臺的搭建與能力的復(fù)用性的。至于為什么呢,我們在文章里慢慢解答。

首先了解一下,領(lǐng)域劃分和需求結(jié)構(gòu)化的概念,分別是什么東西。

1)領(lǐng)域劃分

通俗地講,就是劃分出處理某一業(yè)務(wù)模塊的“塊”,劃分出系統(tǒng)模塊的邊界。

說起領(lǐng)域,大家肯定有一個詞很熟悉那就是領(lǐng)域驅(qū)動設(shè)計,其實這是一個研發(fā)常用的設(shè)計思想。

領(lǐng)域的中文解釋為“界限”“范圍”,它是一個名詞,大多和定語共同出現(xiàn),如業(yè)務(wù)領(lǐng)域,能力領(lǐng)域,學(xué)術(shù)領(lǐng)域等等。

所以我們在做中臺的時候,就把中臺的某個業(yè)務(wù)能力領(lǐng)域當(dāng)做是,專門以通用化可復(fù)用的能力模型來實現(xiàn)業(yè)務(wù)訴求,支撐業(yè)務(wù)邏輯的一個專門的區(qū)域就可以了。

2)需求結(jié)構(gòu)化

需求結(jié)構(gòu)化是一個過程,最終呈現(xiàn)出來的是能夠區(qū)分實體、實體的值對象、事件之間的關(guān)系。需求結(jié)構(gòu)化最終能夠找到邏輯主脈絡(luò),將邏輯主脈絡(luò)邊緣的條件因素剝離出來,這些條件也可以成領(lǐng)域。

圖 1 主脈絡(luò)和邊緣條件,就像樹干和樹枝

3)領(lǐng)域劃分和需求結(jié)構(gòu)化的關(guān)系

領(lǐng)域劃分一般是大結(jié)構(gòu)的、模塊化的,需求結(jié)構(gòu)化是細化的內(nèi)部拆解,但是本質(zhì)上二者沒有差異,都是在做結(jié)構(gòu)化分析,目的都是為了邊界清晰,領(lǐng)域?qū)I(yè),使系統(tǒng)更加通用、復(fù)用。

一、如何進行領(lǐng)域的劃分

我非常認同在 CSDN 上面的一篇文章的觀點(作者:程序男),領(lǐng)域的劃分是一個動作,劃分出來的領(lǐng)域是一個塊兒,那么領(lǐng)域劃分實際上和劃分領(lǐng)域邊界,切分領(lǐng)域服務(wù),劃分子域,明確域內(nèi)的聚合根,他們其實是在做一件事情,因為都是在找一個范圍,將零散東西歸類的一個過程。

另外我們也需要知道,領(lǐng)域劃分指的是系統(tǒng)內(nèi)的模塊劃分,而系統(tǒng)內(nèi)模塊劃分根據(jù)業(yè)務(wù)專家和技術(shù)專家共同協(xié)商而來,經(jīng)過技術(shù)的拆解,可能和最初產(chǎn)品的設(shè)想有一定出入,但是這都不是問題,只要最終大家的認知和理解是達成一致的即可。

我們首先基于一個案例,來講解不同的領(lǐng)域劃分方法。今天這個案例是一個簡化過的用戶參與一個活動的過程的案例。

圖 2 簡化后的活動流程

1. 根據(jù)業(yè)務(wù)流程進行領(lǐng)域劃分

從較粗顆粒度的業(yè)務(wù)流程來看,整個過程就是四件事情:創(chuàng)建活動,計算活動達成,獎勵計算,獎勵發(fā)放。

那么我們就可以根據(jù)業(yè)務(wù)流程將領(lǐng)域粗略劃分為:活動域和獎勵域,其中活動域包含了活動的創(chuàng)建和達成的計算,獎勵域包含獎勵的計算和獎勵的發(fā)放。

2. 根據(jù)團隊合作模式、角色定位等與組織架構(gòu)相關(guān)的方式進行劃分

前面我們也有提到,大中臺的劃分和組織架構(gòu)的搭建有相輔相成的關(guān)系,有的時候可以由一個中臺做的事情硬是被拆成兩個,就和組織架構(gòu)搭建,權(quán)利與權(quán)利之間的平衡有很大的關(guān)系。

假如公司要拆一個中心出來,專門做所有與用戶資產(chǎn)相關(guān)的模塊,比如金幣、現(xiàn)金等等,而這個模塊如果定位又不是很清晰,野心又比較大,領(lǐng)導(dǎo)又比較支持的情況下,那么是不是所有獎勵的計算就要拿到這個這個模塊去了呢?這里就不再細說了。

3. 根據(jù)作用對象

在上述案例中:

  • 活動創(chuàng)建的對象是活動規(guī)則,描述了活動的目標(biāo)和包含的行為
  • 計算活動達成的對象是用戶的行為,根據(jù)行為計算出一個達成值
  • 獎勵計算的對象是達成值,根據(jù)達成值和條件規(guī)則計算出應(yīng)該獎勵什么東西,以及獎勵多少數(shù)值
  • 獎勵的發(fā)放實體是針對用戶和獎勵的實體進行處理和關(guān)聯(lián)

那么這其中,除了用戶以外,主要包含四個對象:活動規(guī)則,達成值,獎勵規(guī)則,獎勵內(nèi)容和值,那么我們依然可以劃分為活動域和獎勵域,其中:

  • 活動域還可以劃分為:活動規(guī)則子域(就是活動本身),達成結(jié)果子域,而活動結(jié)果的計算作為一個領(lǐng)域內(nèi)的計算服務(wù)而存在。
  • 獎勵域還可以劃分為:獎勵規(guī)則子域,獎勵結(jié)果子域,獎勵的計算也是作為獎勵域內(nèi)的計算服務(wù)而存在。

更多的領(lǐng)域劃分的方法論,可以查看剛剛提到的,CSDN 上作者程序男的文章:https://blog.csdn.net/u010504064/article/details/122717489

二、如何進行需求結(jié)構(gòu)化

需求結(jié)構(gòu)化是業(yè)務(wù)建模和中臺能力建模的開始,前面講過,領(lǐng)域劃分一般是是大結(jié)構(gòu)的,模塊化的,需求結(jié)構(gòu)化是細化的內(nèi)部拆解。

回顧一下需求結(jié)構(gòu)化的概念:通過圖形將實體、實體與實體的關(guān)系、事件動作、動作的約束,動作的結(jié)果串聯(lián)起來的一個過程,最終為了實現(xiàn)能力化、配置化,達到高度復(fù)用的效果。

這個概念中的,實體、事件、約束的概念也過于抽象,我們通過產(chǎn)品常用名詞來類比一下:

  • 實體:往往指我們需求中的場景、對象
  • 事件:往往指我們需求中的動作,和事件相關(guān)性最大的就是結(jié)果,這個結(jié)果可以帶來實體的值對象的變動
  • 約束:往往指我們需求中,動作的條件,動作所在的場景

這樣就比較好理解了,我們將需求的每個功能和模塊按照場景、事件、對象三個維度進行各種可能性的拆分和羅列,就可以實現(xiàn)能力的配置化。而對各種可能性的羅列,就需要對業(yè)務(wù)有一定的熟悉度和推演能力。

1. 描述完整需求流程

整個需求的過程就像一個樹,經(jīng)過枝繁葉茂,最終成長成一棵蒼天大樹。還是用圖 2 的案例,我們梳理過的需求完整流程應(yīng)該類比如下圖:

圖 3完整需求流程

2. 整理主干流程,拆出邊緣流程

主干流程,就像是秋天落了葉子,冬天需要保持養(yǎng)分的砍掉多余的枝丫之后的主樹干一樣,最終得到的就是一個主邏輯。

圖 4 需求主干流程

那么,被我們摘出來這些非主干流程,包含的就都是場景、動作、條件,同理,每個獨立的非主干流程都可以再次被當(dāng)成自己模塊內(nèi)的主干流程來處理,再次拆解為場景、動作、條件,進而將整個需求進行結(jié)構(gòu)化處理,分別描述被拆解出來的主干、分支的各自場景、動作、條件即可。

3. 梳理業(yè)務(wù)

如果你是業(yè)務(wù)產(chǎn)品,當(dāng)下的業(yè)務(wù)需要當(dāng)下的邏輯就是比較確定的,在業(yè)務(wù)定位確定的情況下,規(guī)則變動的可能性不大,但是如果是中臺,那就需要把相似業(yè)務(wù)的全部可能性進行梳理,把邊緣流程中的各種可能性場景、動作、條件、結(jié)果進行羅列和枚舉,融入到完整的業(yè)務(wù)流程中去,實現(xiàn)了業(yè)務(wù)結(jié)果的配置化。

舉一個“銷售員賬號狀態(tài)變動,帶來關(guān)系鏈綁定狀態(tài)變動配置化”的案例,以輔助大家理解。

在案例中,其中一個業(yè)務(wù)方要求,賬號狀態(tài)注銷后需要解綁關(guān)系鏈,但是另一個業(yè)務(wù)方又說,我希望保留關(guān)系鏈,因為我有其他的處理,再有一個業(yè)務(wù)方又說,我希望把關(guān)系鏈的綁定關(guān)系進行變動,最終的配置化就是如下了:

圖 5 配置化案例

三、結(jié)語

將結(jié)構(gòu)化后的需求的每個模塊對應(yīng)到上述劃分好的領(lǐng)域中去,最終實現(xiàn)的可以是這樣的效果:

也許有人會問,了解這些概念和方法論有什么作用?

我認為,概念和方法論可以構(gòu)建日常工作的思維模型,模型化的思維可以更加快速的讓工作有條不紊的進行,進而在方法論上進行加工創(chuàng)新,成為自己的思維模型。

同時,實操后總結(jié)方法論,也有助于對自己工作的吸收,加深印象。

最后,如果有表達錯誤的地方,希望指出,感激不盡!

 

作者:初愚,公眾號:產(chǎn)品雜談錄

本文由 @初愚 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 小白,最后一張圖沒太明白,大佬能系統(tǒng)的寫一下DDD在輸出產(chǎn)品解決方案時如何使用的嗎?

    來自湖北 回復(fù)
  2. 突然懂了

    來自浙江 回復(fù)
  3. 最后一張圖有點沒有看懂

    來自浙江 回復(fù)
  4. 催更

    來自浙江 回復(fù)
  5. 來自浙江 回復(fù)