敏捷建模“殺”入企業(yè)數(shù)字化

思特沃克 肖然
隨著數(shù)字化進(jìn)程的持續(xù)深化,企業(yè)越來(lái)越依賴于自身的信息化和數(shù)字化系統(tǒng),甚至很多新興業(yè)務(wù)的誕生就源自于技術(shù)的發(fā)展,比如現(xiàn)在大家習(xí)以為常的人臉識(shí)別認(rèn)證方式,正是由于機(jī)器學(xué)習(xí)技術(shù)在近5年的快速突破才得以實(shí)現(xiàn)。

本文來(lái)自微信公眾號(hào)“CSDN(ID:CSDNnews)”,作者 | 思特沃克 肖然  , 責(zé)編 | 屠敏。

我們一直在實(shí)踐中探尋更好的軟件開(kāi)發(fā)方法,身體力行的同時(shí)也幫助他人。由此我們建立了如下價(jià)值觀:

個(gè)體和互動(dòng)高于流程和工具

工作的軟件高于詳盡的文檔

客戶合作高于合同談判

響應(yīng)變化高于遵循計(jì)劃

也就是說(shuō),盡管右項(xiàng)有其價(jià)值,我們更重視左項(xiàng)的價(jià)值。

——《敏捷宣言》摘抄

作為DDDChina的發(fā)起者之一,看著越來(lái)越多的技術(shù)人員加入到領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(Domain Driven Design,DDD)社區(qū),分享經(jīng)驗(yàn)、總結(jié)實(shí)踐、甚至于辯論觀點(diǎn),確實(shí)十分高興。

然而,有些憂心的是并未看到很多非技術(shù)人員參與其中,這與當(dāng)初力推DDD的目的仿佛漸行漸遠(yuǎn)——我們一直認(rèn)為DDD是促進(jìn)業(yè)務(wù)和技術(shù)在系統(tǒng)架構(gòu)上逐步達(dá)成共同認(rèn)知的一種好方法。只有共同認(rèn)知才能共同演進(jìn),才有能夠避免一次又一次上演的遺留系統(tǒng)慘劇。

也許是疫情給了我們更多獨(dú)立思考的時(shí)間,我們也清晰地認(rèn)識(shí)到?jīng)]有能夠吸引更多的非技術(shù)專業(yè)人員加入,應(yīng)該說(shuō)并非是我們聲音不夠大,更重要是DDD所涉及的方法僅僅瞄準(zhǔn)了整個(gè)企業(yè)架構(gòu)建模過(guò)程的一個(gè)階段,對(duì)于我們希望吸引的非技術(shù)群體,他們有著自己更需要參與并負(fù)責(zé)的階段。

這促使我開(kāi)始從整個(gè)企業(yè)的視角去考慮架構(gòu)建模問(wèn)題,目標(biāo)也不僅僅局限于讓系統(tǒng)架構(gòu)能夠跟隨業(yè)務(wù)需求的變化而持續(xù)演進(jìn)。面對(duì)這個(gè)數(shù)字化時(shí)代,企業(yè)的數(shù)字化底座成為了核心基石,而這個(gè)底座的架構(gòu)是高質(zhì)量可持續(xù)發(fā)展的關(guān)鍵。我希望去解決當(dāng)下很多人都已經(jīng)看到的傳統(tǒng)企業(yè)架構(gòu)方法帶來(lái)的問(wèn)題,從不同的視角去嘗試新的方法,找到破局之路。

1.jpg

CSDN付費(fèi)下載自東方IC

1、從靜態(tài)走向動(dòng)態(tài)

“Be water,my friend.”-Bruce Lee(李小龍)

隨著數(shù)字化進(jìn)程的持續(xù)深化,企業(yè)越來(lái)越依賴于自身的信息化和數(shù)字化系統(tǒng),甚至很多新興業(yè)務(wù)的誕生就源自于技術(shù)的發(fā)展,比如現(xiàn)在大家習(xí)以為常的人臉識(shí)別認(rèn)證方式,正是由于機(jī)器學(xué)習(xí)技術(shù)在近5年的快速突破才得以實(shí)現(xiàn)。

這樣的依賴性一方面激勵(lì)著企業(yè)在信息和數(shù)字化系統(tǒng)研發(fā)方面持續(xù)加大投入,另一方面也讓系統(tǒng)的全局復(fù)雜度快速攀升。過(guò)去從企業(yè)內(nèi)部運(yùn)營(yíng)視角出發(fā)形成的簡(jiǎn)單通用信息系統(tǒng)劃分,如ERP、CRM等,已經(jīng)完全不能滿足數(shù)字化時(shí)代企業(yè)的需要了。于是我們也看到阿里這樣的互聯(lián)網(wǎng)巨頭提出了業(yè)務(wù)強(qiáng)綁定的“中臺(tái)”系統(tǒng)概念。

移動(dòng)互聯(lián)給我們展現(xiàn)了數(shù)字化業(yè)務(wù)的潛力,而未來(lái)的元宇宙、Web3.0將有可能帶來(lái)更多的創(chuàng)新、甚至顛覆性的業(yè)務(wù)。由此企業(yè)所依托的信息化和數(shù)字化系統(tǒng)必然會(huì)要求很大程度上的“定制化”,這也讓針對(duì)全局設(shè)計(jì)的企業(yè)架構(gòu)(Enterprise Architecture,EA)工作變得越來(lái)越重要。

然而,已有的企業(yè)架構(gòu)方法,如TOGAF、Zachman,更多關(guān)注的是企業(yè)架構(gòu)治理的流程和參考內(nèi)容模型,希望從一個(gè)抽象層面指導(dǎo)企業(yè)產(chǎn)出適合于當(dāng)前業(yè)務(wù)的企業(yè)架構(gòu)全局視圖。為了駕馭日益復(fù)雜的業(yè)務(wù)場(chǎng)景,往往需要將設(shè)計(jì)和實(shí)施步驟越來(lái)越細(xì)化,從而能夠調(diào)動(dòng)不同的的專業(yè)細(xì)分人員來(lái)完成固定事項(xiàng)。

在企業(yè)實(shí)際應(yīng)用過(guò)程中,這樣的企業(yè)架構(gòu)方法帶來(lái)了兩個(gè)比較顯著的問(wèn)題:

產(chǎn)出的架構(gòu)模型及組件劃分更多是以確定性的“靜態(tài)”視圖呈現(xiàn),每個(gè)階段的產(chǎn)出往往是通過(guò)特定人群“翻譯”上一個(gè)階段模型而得出的,這樣的工作模式有違軟件需求的基本特征,即需求的澄清實(shí)際是通過(guò)可工作的軟件交付來(lái)迭代完成的;

對(duì)于未來(lái)業(yè)務(wù)的變化和創(chuàng)新“設(shè)計(jì)”不足,往往只能將感覺(jué)變化比較快的領(lǐng)域,如移動(dòng)互聯(lián)網(wǎng)應(yīng)用,劃到產(chǎn)出的架構(gòu)模型之外,美其名曰“非模型”需求。

不少企業(yè)架構(gòu)專家提出信息化系統(tǒng)在一些行業(yè)的主干業(yè)務(wù)上應(yīng)該是比較清晰的,由此,類似TOGAF方法的“靜態(tài)”產(chǎn)出應(yīng)該是適合的。然而,我們需要看到,這樣的假設(shè)實(shí)則非常危險(xiǎn):在通信行業(yè),從2G、3G到4G的連續(xù)發(fā)展,給了大家類似的預(yù)期;然而5G的到來(lái),很大程度上顛覆了過(guò)去十幾年積累的系統(tǒng)模塊劃分,于是全球各大運(yùn)營(yíng)商紛紛開(kāi)始高喊數(shù)字化轉(zhuǎn)型,其中很大一部分工作就是要改變過(guò)去的信息化系統(tǒng)架構(gòu)。

國(guó)內(nèi)不少大型銀行都在實(shí)施基于Zachman方法的企業(yè)架構(gòu),希望通過(guò)統(tǒng)一的業(yè)務(wù)模型和IT模型來(lái)驅(qū)動(dòng)新一代信息化系統(tǒng)建設(shè),從而能夠支撐未來(lái)的數(shù)字化業(yè)務(wù)發(fā)展。然而即使如清算這樣看似穩(wěn)定的底座,真的就已經(jīng)業(yè)務(wù)上明確了嗎?

數(shù)字貨幣和區(qū)塊鏈技術(shù)應(yīng)該說(shuō)才剛剛嶄露頭角,未來(lái)的具體影響還不得而知。我們更應(yīng)該尊重這個(gè)科技時(shí)代的客觀規(guī)律,不能一邊高喊著“主動(dòng)求變”,一邊卻在為系統(tǒng)的演進(jìn)設(shè)定“確定性”的障礙。這樣一時(shí)的大力而為,埋下的是未來(lái)的諸多隱患,苦的是為了業(yè)務(wù)連續(xù)性而需要持續(xù)開(kāi)發(fā)和維護(hù)系統(tǒng)的研發(fā)團(tuán)隊(duì)。

由此,我們希望用動(dòng)態(tài)的“建模”,來(lái)替代大家習(xí)以為常靜態(tài)的“架構(gòu)”。我們希望推動(dòng)一系列針對(duì)企業(yè)價(jià)值定位的、可持續(xù)的、可落地的建模活動(dòng),來(lái)促進(jìn)整個(gè)企業(yè)的系統(tǒng)體系得以持續(xù)的演進(jìn),從而能夠通過(guò)持續(xù)提升組織的整體架構(gòu)認(rèn)知,完成對(duì)業(yè)務(wù)發(fā)展的支撐和創(chuàng)新的使能。

2.png

數(shù)字化企業(yè)敏捷建模方法高階視圖:三個(gè)建模過(guò)程域+兩個(gè)運(yùn)營(yíng)閉環(huán)

2、針對(duì)軟件開(kāi)發(fā)本質(zhì)去建模

軟件帶來(lái)的新產(chǎn)品形態(tài)在這個(gè)數(shù)字化時(shí)代被越來(lái)越多的人認(rèn)知。

作為程序員,我們?cè)?jīng)很難向業(yè)務(wù)同事解釋為什么之前加一個(gè)按鈕一天完成,現(xiàn)在加一個(gè)類似按鈕需要三天。而現(xiàn)在大家都知道軟件從第一行代碼開(kāi)始就是會(huì)被持續(xù)修改的,是否易于修改成為了開(kāi)發(fā)效率的基礎(chǔ)。真正的難點(diǎn)是如何讓軟件在面對(duì)未來(lái)源源不斷新需求時(shí),持續(xù)保持較低的修改成本。

這件事情對(duì)于一個(gè)單體軟件已經(jīng)是非常困難的事情,而在我們的企業(yè)架構(gòu)上下文里,面對(duì)的是一個(gè)成百上千軟件組成的系統(tǒng),這件事情就更是難上加難。

在這樣的環(huán)境中,我們沒(méi)有辦法預(yù)測(cè)未來(lái)的需求,只能通過(guò)持續(xù)提升團(tuán)隊(duì)對(duì)于“好修改”的認(rèn)知,并落實(shí)到大家的日常工作實(shí)踐中來(lái)應(yīng)對(duì)。顯然,在過(guò)去的企業(yè)架構(gòu)方法中,我們鮮有看到對(duì)軟件這個(gè)本質(zhì)屬性的關(guān)注。更像是今朝有酒今朝醉,明日問(wèn)題歸別人的視而不見(jiàn)。

在總結(jié)這套方法的同時(shí),很欣喜地發(fā)現(xiàn)在不同企業(yè)架構(gòu)階段的建?;顒?dòng)設(shè)計(jì)上,早有全球?qū)<乙庾R(shí)到了過(guò)去這些靜態(tài)架構(gòu)方法的危害。比如已經(jīng)提出近20年的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(Domain Driven Design,DDD),目前在云原生的微服務(wù)時(shí)代被很多組織引入,作為系統(tǒng)和平臺(tái)設(shè)計(jì)的方法,其精髓就在持續(xù)地構(gòu)建廣泛的、跨業(yè)務(wù)和技術(shù)層面的“統(tǒng)一語(yǔ)言”,減少翻譯工作,從而能夠讓系統(tǒng)的架構(gòu)隨著業(yè)務(wù)的變化快速持續(xù)演進(jìn)。

最近兩年行業(yè)內(nèi)從“逆康威定律”出發(fā),轉(zhuǎn)換了在服務(wù)組件和技術(shù)架構(gòu)設(shè)計(jì)上的單一視角,從組織和團(tuán)隊(duì)劃分出發(fā),明確組件設(shè)計(jì)目標(biāo)帶來(lái)的對(duì)應(yīng)團(tuán)隊(duì)特征的不同,并能夠從持續(xù)發(fā)展的視角來(lái)設(shè)計(jì)團(tuán)隊(duì)的動(dòng)態(tài)劃分和演進(jìn)。

這種團(tuán)隊(duì)拓?fù)洌═eam Topologies)的思想,實(shí)際上已經(jīng)為我們提供了在技術(shù)實(shí)現(xiàn)層面上的持續(xù)建模活動(dòng)藍(lán)本。

3.png

團(tuán)隊(duì)拓?fù)銽eam Topologies知識(shí)圖譜,來(lái)源于《高效能團(tuán)隊(duì)模式:支持軟件快速交付的組織架構(gòu)》一書作者總結(jié)。

站在這些新思想和方法之上,讓我們一起來(lái)定義針對(duì)數(shù)字化企業(yè)的建模方法:

我們認(rèn)可業(yè)務(wù)和應(yīng)用架構(gòu)的重要性,但更重要的是持續(xù)價(jià)值建模,任何業(yè)務(wù)和應(yīng)用架構(gòu)只是實(shí)現(xiàn)預(yù)期商業(yè)價(jià)值的一種支撐;

我們認(rèn)可系統(tǒng)和平臺(tái)架構(gòu)的重要性,但更重要的是持續(xù)領(lǐng)域建模,任何系統(tǒng)和平臺(tái)架構(gòu)只是應(yīng)對(duì)復(fù)雜問(wèn)題分治的一種結(jié)果;

我們認(rèn)可服務(wù)和技術(shù)架構(gòu)的重要性,但更重要的是持續(xù)組織建模,任何服務(wù)和技術(shù)架構(gòu)只是高效實(shí)現(xiàn)組織劃分的一種映射(康威定律)。

在以上的定義中,業(yè)務(wù)架構(gòu)階段指明確架構(gòu)所需滿足的業(yè)務(wù)目標(biāo)的定義過(guò)程,由于越來(lái)越多的數(shù)字原生業(yè)務(wù),技術(shù)和業(yè)務(wù)的高度融合造成不少企業(yè)直接采用應(yīng)用的說(shuō)法。系統(tǒng)架構(gòu)階段,或云時(shí)代越來(lái)越多的平臺(tái)型架構(gòu),明確相關(guān)軟件程序和數(shù)據(jù)的各方面設(shè)計(jì)原則及高階架構(gòu)。技術(shù)架構(gòu)階段,或服務(wù)化架構(gòu)下,主要是明確技術(shù)實(shí)現(xiàn)框架、組件(服務(wù))劃分等落地細(xì)則。

隨著市場(chǎng)和用戶需求的持續(xù)變化,以上建模方法中的活動(dòng)也應(yīng)該持續(xù)迭代進(jìn)行。更由于這些變化不可預(yù)期,我們更應(yīng)該關(guān)注建模活動(dòng)帶來(lái)的相關(guān)人員和團(tuán)隊(duì)認(rèn)知的提升,不同視角的架構(gòu)視圖是階段性共識(shí)的可視化呈現(xiàn)。對(duì)于架構(gòu)視圖,我們推薦大家采用類似C4(https://c4model.com/)這樣的輕量級(jí)可視化工具,重要的是關(guān)鍵人群之間的溝通、論證和確認(rèn)。

一言以蔽之,我們更關(guān)注產(chǎn)生企業(yè)架構(gòu)的建模協(xié)作活動(dòng)和實(shí)踐工藝,而采用輕量級(jí)治理流程和過(guò)程文檔。

我們認(rèn)為這樣的建模方法符合于《敏捷宣言》所倡導(dǎo)的工作方式,因?yàn)椋?/p>

更強(qiáng)調(diào)人通過(guò)互動(dòng)協(xié)作的認(rèn)知提升,而不拘泥于每個(gè)活動(dòng)的專業(yè)對(duì)口;

更強(qiáng)調(diào)建模工作的迭代演進(jìn),而不拘泥于追求某一個(gè)時(shí)刻的絕對(duì)明確;

更強(qiáng)調(diào)價(jià)值驅(qū)動(dòng),而不拘泥于現(xiàn)有業(yè)務(wù)的框架;

更強(qiáng)調(diào)持續(xù)響應(yīng)變化,而不拘泥于繁瑣的流程和文檔。

任何方法都存在局限性,從數(shù)字化企業(yè)的視角,這套方法不包含兩個(gè)重要方面:商業(yè)模式和組織文化。前者不能脫離各行業(yè)背景,在這個(gè)產(chǎn)業(yè)互聯(lián)的時(shí)代,行業(yè)的重塑、整合、創(chuàng)造不斷發(fā)生,著實(shí)很難抽象出相對(duì)能夠廣泛應(yīng)用的方法。文化則是一個(gè)需要更多閱歷的領(lǐng)域,就現(xiàn)在的個(gè)人經(jīng)歷來(lái)總結(jié)組織文化的方法,難免貽笑大方。

下文中我們將整體介紹這個(gè)敏捷建模方法框架的含義,三個(gè)建模過(guò)程和兩大運(yùn)營(yíng)閉環(huán)的細(xì)節(jié),將在后續(xù)的文章中進(jìn)一步展開(kāi)。

3、三個(gè)建模過(guò)程

從業(yè)務(wù)架構(gòu)設(shè)計(jì)到最后的技術(shù)架構(gòu)落地,我們抽象了三個(gè)高階建模過(guò)程域,分別是:價(jià)值建模、領(lǐng)域建模和組織建模。通過(guò)這三大過(guò)程域幫助企業(yè)明確端到端的建?;顒?dòng),從而能夠高效組織不同角色協(xié)同完成整個(gè)企業(yè)架構(gòu)的設(shè)計(jì)。

建模過(guò)程中應(yīng)該遵循“共識(shí)大于正確性”的原則:企業(yè)架構(gòu)每個(gè)階段的產(chǎn)出是相關(guān)角色或團(tuán)隊(duì)協(xié)作過(guò)程中形成的共識(shí),而不是某個(gè)專業(yè)角色或團(tuán)隊(duì)的單獨(dú)交付物。在任何一個(gè)時(shí)間點(diǎn),都應(yīng)該坦誠(chéng)認(rèn)知的局限性,通過(guò)保持協(xié)作的開(kāi)放性來(lái)兼收并蓄。

一、價(jià)值建模:面向商業(yè)成功

業(yè)務(wù)架構(gòu)一直以來(lái)被認(rèn)為是企業(yè)架構(gòu)的起點(diǎn),然而面對(duì)這個(gè)數(shù)字化時(shí)代,真正的起點(diǎn)應(yīng)該是我們的客戶/用戶,這點(diǎn)已經(jīng)成為了企業(yè)管理者們的普遍共識(shí)——只有持續(xù)創(chuàng)造客戶/用戶價(jià)值,才能夠?qū)崿F(xiàn)企業(yè)的持續(xù)發(fā)展。

由此,我們認(rèn)為針對(duì)客戶/用戶的價(jià)值建模是數(shù)字化企業(yè)的必然起點(diǎn)。企業(yè)需要針對(duì)自身的行業(yè)及客群定位,確定相關(guān)的價(jià)值模型,作為不同專業(yè)背景角色同事們共識(shí)的基礎(chǔ)。在很多企業(yè)中,我們看到業(yè)務(wù)和技術(shù)的融合都被提升到了組織戰(zhàn)略層面,但由于沒(méi)有從價(jià)值建模出發(fā),在實(shí)際的執(zhí)行過(guò)程中沒(méi)有建立起來(lái)統(tǒng)一語(yǔ)言,造成客觀上難以融合的困局。

4.png

4、招商銀行采納的價(jià)值三角模型,讓組織能夠圍繞客戶價(jià)值來(lái)行動(dòng)。來(lái)源于TWLive 2021年分享:https://insights.thoughtworks.cn/cmb-value-driven-lean-transformation/

我們也要正視數(shù)字化技術(shù)帶來(lái)越來(lái)越多元化的價(jià)值創(chuàng)造可能性,一家企業(yè)可能同時(shí)經(jīng)營(yíng)非常不同的業(yè)務(wù)模式,比如不少互聯(lián)網(wǎng)2C服務(wù)起家的企業(yè)希望抓住下一波企業(yè)2B服務(wù)的浪潮,這樣的場(chǎng)景下,應(yīng)該有針對(duì)性的不同價(jià)值模型。而不應(yīng)該由于是一家企業(yè),所以就強(qiáng)制性只能有一套價(jià)值模型或一套企業(yè)架構(gòu)。駕馭這種多元化是數(shù)字化企業(yè)未來(lái)的核心競(jìng)爭(zhēng)力。

5.png

某金融機(jī)構(gòu)建立的價(jià)值模型示例

在共識(shí)的價(jià)值模型下,首先還是需要從產(chǎn)品/服務(wù)組合的視角去明確優(yōu)先級(jí),切忌搞大而全,時(shí)刻保持對(duì)變化的敬畏心。敏捷宣言簽署者之一的Jim Highsmith老先生為此提供了一套比較完整的方法框架EDGE,在《EDGE:價(jià)值驅(qū)動(dòng)的數(shù)字化轉(zhuǎn)型》一書中有比較完整的介紹。其中的關(guān)鍵實(shí)踐精益價(jià)值樹(shù)(Lean Value Tree,LVT)在亢江妹老師的《輕量級(jí)規(guī)劃實(shí)踐方法——精益價(jià)值樹(shù)》也有了具體的介紹。

明確了企業(yè)級(jí)的價(jià)值定位,產(chǎn)出業(yè)務(wù)架構(gòu)的方法和實(shí)踐已經(jīng)有不少的積累。比如服務(wù)設(shè)計(jì)(Service Design)方法,從關(guān)鍵的用戶旅程切入,通過(guò)端到端的用戶場(chǎng)景來(lái)明確用戶觸點(diǎn)及前后臺(tái)的支撐系統(tǒng)。

6.png

服務(wù)設(shè)計(jì)方法下的用戶場(chǎng)景化梳理,從用戶行為出發(fā),明確能力支撐及前、后臺(tái)的業(yè)務(wù)服務(wù)設(shè)計(jì)。

具體推薦的方法和實(shí)踐我們將在后續(xù)專門的系列文章中展開(kāi)。這里值得提醒企業(yè)的管理者們:價(jià)值建模是業(yè)技融合的起點(diǎn),也是一個(gè)組織是否真正踐行客戶為中心的標(biāo)志。希望大家時(shí)刻不忘“客戶價(jià)值”這個(gè)數(shù)字化時(shí)代的北極星指標(biāo)!

在一些相對(duì)信息化積累比較好的行業(yè),如銀行業(yè),也可以采用類似付曉巖老師在《企業(yè)級(jí)業(yè)務(wù)架構(gòu)設(shè)計(jì):方法論與實(shí)踐》一書中介紹的工序比較明確的方法。但仍然需要注意定期審視用戶價(jià)值隨著市場(chǎng)變化而發(fā)生的遷移。

二、領(lǐng)域建模:面向統(tǒng)一語(yǔ)言

軟件行業(yè)幾十年的積淀形成了一個(gè)共識(shí)原則:關(guān)注點(diǎn)分離(Separation of concerns,SOC)——在復(fù)雜場(chǎng)景中,把不同的關(guān)注點(diǎn)分離開(kāi)來(lái),分別處理,以應(yīng)對(duì)復(fù)雜性。這個(gè)原則最早由圖靈獎(jiǎng)獲得者,荷蘭計(jì)算機(jī)科學(xué)家埃格斯·迪克斯特拉(Edsger W.Dijkstra)在上世紀(jì)70年代提出,而后成為了我們?cè)谟?jì)算機(jī)建模領(lǐng)域及系統(tǒng)設(shè)計(jì)領(lǐng)域的底層范式。

時(shí)下我們的系統(tǒng)和平臺(tái)架構(gòu)某種意義上是其支撐的復(fù)雜業(yè)務(wù)的一種映射,所以我們?cè)谶@個(gè)階段處理的問(wèn)題是比產(chǎn)生業(yè)務(wù)架構(gòu)更為挑戰(zhàn)的。在此基礎(chǔ)上,需要再次提醒大家對(duì)于變化的預(yù)期,即使當(dāng)下再完美的業(yè)務(wù)架構(gòu)也會(huì)在未來(lái)某個(gè)時(shí)刻變得不合時(shí)宜的,所以系統(tǒng)和平臺(tái)架構(gòu)必然需要考慮面向未來(lái)持續(xù)修改的靈活性。

這是一個(gè)很難解決的命題,要求更深層次的業(yè)務(wù)和技術(shù)人員的融合,背后是我們需要在企業(yè)里建立一套業(yè)務(wù)和技術(shù)人員都能夠理解的“普通話”。2003年提出的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(Domain Driven Design,DDD)無(wú)疑給我們提供了統(tǒng)一語(yǔ)言的落地思路。很多人認(rèn)為2015年開(kāi)始流行的微服務(wù)帶火了DDD,但實(shí)際上是由于越來(lái)越多的企業(yè)感受到了在系統(tǒng)架構(gòu)這個(gè)層面日益膨脹的復(fù)雜度,同時(shí)之前依靠外部購(gòu)買系統(tǒng)套件搭建起來(lái)的信息化系統(tǒng)開(kāi)始成為新數(shù)字化業(yè)務(wù)發(fā)展的障礙。

7.png

DDD思路下的具體方法,類似事件風(fēng)暴Event Storming,實(shí)質(zhì)上就是在促進(jìn)業(yè)務(wù)和技術(shù)人員統(tǒng)一語(yǔ)言的建立。

在領(lǐng)域建模階段,我們?nèi)匀贿€有很長(zhǎng)的路要走。在走訪不少采用了DDD的企業(yè)會(huì)發(fā)現(xiàn)大多數(shù)都是技術(shù)人員在關(guān)注DDD戰(zhàn)術(shù)層面的模型應(yīng)用,討論最多的是具體的模型如何映射到分層的架構(gòu)實(shí)現(xiàn)。很多企業(yè)的研發(fā)團(tuán)隊(duì)對(duì)于和業(yè)務(wù)建立統(tǒng)一語(yǔ)言這件事情感到失望,甚至于從思想上放棄了這方面的努力。

我認(rèn)為企業(yè)架構(gòu)這個(gè)話題在近兩年的崛起,是我們解決業(yè)務(wù)人員加入系統(tǒng)和平臺(tái)設(shè)計(jì)階段的契機(jī)。在這個(gè)領(lǐng)域建模的過(guò)程中,我們需要注意以下兩點(diǎn):

1.建立業(yè)務(wù)和技術(shù)都能夠理解的簡(jiǎn)單語(yǔ)言體系。在這一點(diǎn)上事件風(fēng)暴Event Storming方法給我們呈現(xiàn)了一個(gè)簡(jiǎn)單有效的實(shí)例。當(dāng)然由于各企業(yè)所經(jīng)營(yíng)業(yè)務(wù)的多元化,我們還需要更多的方法和實(shí)踐。

2.劃分領(lǐng)域時(shí)綜合考慮業(yè)務(wù)和技術(shù)的不同約束條件。爭(zhēng)論領(lǐng)域到底是業(yè)務(wù)的、還是技術(shù)的是毫無(wú)意義的,我們產(chǎn)出的系統(tǒng)或平臺(tái)領(lǐng)域劃分是綜合考慮企業(yè)經(jīng)營(yíng)情況的結(jié)果,這里面既有我們對(duì)業(yè)務(wù)相關(guān)性的考慮,也有我們對(duì)于底層運(yùn)算平臺(tái)特性的利用。

基于以上兩點(diǎn),我們認(rèn)為一個(gè)良好的領(lǐng)域建模過(guò)程首先要讓大家明確使用的語(yǔ)言體系,即不論是業(yè)務(wù)還是技術(shù),都需要學(xué)會(huì)普通話。然后是一套行之有效的協(xié)作流程和實(shí)踐,能夠保證大家在正向約束的條件下進(jìn)行領(lǐng)域建模,產(chǎn)出系統(tǒng)和平臺(tái)架構(gòu)。

最后,在這個(gè)階段不少組織存在對(duì)于產(chǎn)出物的糾結(jié)。業(yè)務(wù)側(cè)認(rèn)為需要看到具體的UI才踏實(shí),技術(shù)側(cè)覺(jué)得沒(méi)有代碼框架都是虛幻。我們并不否定一些界面視圖或技術(shù)原型可能在確認(rèn)共識(shí)方面的必要性,但重要的是達(dá)成共識(shí)的協(xié)作過(guò)程。即使這些細(xì)節(jié)的文檔材料對(duì)于不同的個(gè)體來(lái)說(shuō)也是有不同理解的,而過(guò)于細(xì)節(jié)的材料反而容易造成未參與研討過(guò)程的文檔讀者迷失在不必要的細(xì)節(jié)關(guān)注里。

三、組織建模:面向團(tuán)隊(duì)演進(jìn)

長(zhǎng)久以來(lái),在具體的軟件架構(gòu)上,我們更多還是從技術(shù)范式和框架的視角在設(shè)計(jì),從簡(jiǎn)單的MVC架構(gòu)Web應(yīng)用,到時(shí)下SaaS、PaaS、IaaS的分層模型。被忽略的一個(gè)客觀事實(shí)是:軟件開(kāi)發(fā)仍然是強(qiáng)依賴于人的行業(yè),流程、架構(gòu)和工具某種意義上都必須圍繞如何讓軟件開(kāi)發(fā)個(gè)體和團(tuán)隊(duì)更高效作為出發(fā)點(diǎn)。

在軟件行業(yè)里,我們也逐步形成了對(duì)于康威定律的共識(shí)——組織形態(tài)決定產(chǎn)品形態(tài)。

Conway’s law:Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

-Melvin Conway(1967)

簡(jiǎn)要翻譯:組織設(shè)計(jì)的產(chǎn)品/服務(wù)等價(jià)于這個(gè)組織的溝通結(jié)構(gòu)。

這個(gè)定律對(duì)于持續(xù)變化的市場(chǎng)和客戶需求來(lái)說(shuō)是非常不利的,即我們目前的組織結(jié)構(gòu)會(huì)隨著未來(lái)的變化而變得不合時(shí)宜。這種不合時(shí)宜會(huì)反映出組織交付的產(chǎn)品和服務(wù)不能夠滿足市場(chǎng)和客戶的需求。

在這個(gè)時(shí)代,運(yùn)營(yíng)超過(guò)三年的研發(fā)組織或多或少都經(jīng)歷了這樣的痛苦,很多的“遺留系統(tǒng)”實(shí)際上就是這樣產(chǎn)生的。這背后的核心原因是我們的組織結(jié)構(gòu)并沒(méi)有隨著外界的變化而變化,大家過(guò)多地期望僅僅是從技術(shù)的角度去調(diào)整架構(gòu),讓各個(gè)組件更為靈活,但卻忽略了組織結(jié)構(gòu)才是長(zhǎng)期的制約因素。每次識(shí)別出的技術(shù)架構(gòu)問(wèn)題,往往在最后落地時(shí)沒(méi)有了組織支撐,成為了空中樓閣。

由此,我們希望直接從組織結(jié)構(gòu)視角去建模,通過(guò)組織的劃分及交流溝通結(jié)構(gòu)的確立來(lái)表達(dá)對(duì)應(yīng)的服務(wù)和技術(shù)架構(gòu)。從這個(gè)視角出發(fā),團(tuán)隊(duì)拓?fù)銽eam Topologies已經(jīng)給我們提供了非常好的方法,彌補(bǔ)了過(guò)去我們?cè)诮M織視角的兩大盲點(diǎn):

1.組織內(nèi)部團(tuán)隊(duì)的劃分沒(méi)有明確的目的驅(qū)動(dòng)。針對(duì)技術(shù)本身的復(fù)雜度,組織劃分成小團(tuán)隊(duì)是一種常態(tài),這不僅僅是開(kāi)發(fā)效率上的考量,也是出于不同目的性的考慮。比如在功能開(kāi)發(fā)團(tuán)隊(duì)之上,我們往往會(huì)有跨功能的平臺(tái)團(tuán)隊(duì)存在,解決一些共性的能力封裝問(wèn)題;

2.團(tuán)隊(duì)和團(tuán)隊(duì)之間的溝通互動(dòng)沒(méi)有明確的設(shè)計(jì)。多個(gè)團(tuán)隊(duì)的協(xié)同問(wèn)題在各個(gè)研發(fā)組織里十分普遍,經(jīng)常有不同的角色抱怨“會(huì)多”。大家并沒(méi)有刻意去規(guī)劃團(tuán)隊(duì)和團(tuán)隊(duì)之間合理的互動(dòng)模式,在具體協(xié)作過(guò)程中自然也無(wú)法明確哪些會(huì)議是合理的,哪些是由于某個(gè)團(tuán)隊(duì)工作不到位造成的。

8.png

團(tuán)隊(duì)拓?fù)浞椒ㄏ碌慕M織結(jié)構(gòu)和交互模式示例:

Team Topologies at PureGym(https://teamtopologies.com/industry-examples/team-topologies-at-puregym-responding-better-to-business-needs-with-well-defined-software-teams)

通過(guò)團(tuán)隊(duì)拓?fù)鋪?lái)完成組織建模對(duì)于我們“逆康威定律”的幫助是巨大的,業(yè)務(wù)和系統(tǒng)架構(gòu)的變化直接就會(huì)映射到團(tuán)隊(duì)結(jié)構(gòu)的變化上,而團(tuán)隊(duì)的變化自然會(huì)驅(qū)動(dòng)技術(shù)架構(gòu)的改變。當(dāng)一個(gè)簡(jiǎn)單MVC架構(gòu)的web應(yīng)用隨著市場(chǎng)拓展而越來(lái)越復(fù)雜的時(shí)候,這種變化展現(xiàn)在組織建模上很可能的結(jié)果是前、后端團(tuán)隊(duì)的分離,這種團(tuán)隊(duì)的分離自然而然牽引了架構(gòu)上的前后端分離。

值得一提的是,在云原生和微服務(wù)為主導(dǎo)的技術(shù)架構(gòu)時(shí)代,大家更容易忽視組織結(jié)構(gòu)的問(wèn)題。由于單個(gè)微服務(wù)對(duì)比傳統(tǒng)架構(gòu)的代碼量少很多,對(duì)應(yīng)的開(kāi)發(fā)團(tuán)隊(duì)自然小很多,無(wú)形中給了大家組織已經(jīng)是靈活小團(tuán)隊(duì)的假象。

然而,不能忽視的是業(yè)務(wù)的復(fù)雜度依舊,多個(gè)微服務(wù)的集群才能真正實(shí)現(xiàn)業(yè)務(wù),小團(tuán)隊(duì)組織結(jié)構(gòu)下可能增加我們的溝通互動(dòng)成本,并且組織結(jié)構(gòu)可能形成“靜態(tài)小團(tuán)隊(duì)膨脹”,即當(dāng)一個(gè)新需求出現(xiàn)時(shí),團(tuán)隊(duì)不是去考慮是否應(yīng)該改變現(xiàn)在的微服務(wù),而是默認(rèn)增加新服務(wù)。長(zhǎng)此以往,微服務(wù)的個(gè)數(shù)越來(lái)越多,小團(tuán)隊(duì)之間的溝通越來(lái)越繁瑣,開(kāi)發(fā)的效率越來(lái)越低。所以考慮團(tuán)隊(duì)劃分的演進(jìn)是我們保持高效組織生態(tài)的必然。

4、兩大運(yùn)營(yíng)閉環(huán)

面對(duì)持續(xù)的變化,我們擁抱敏捷的工作方式,由此也產(chǎn)生了在保證數(shù)字化業(yè)務(wù)持續(xù)經(jīng)營(yíng)的兩大運(yùn)營(yíng)閉環(huán),分別是:“順時(shí)針”的市場(chǎng)驅(qū)動(dòng),和“逆時(shí)針”的創(chuàng)新驅(qū)動(dòng)。

我們認(rèn)為在企業(yè)架構(gòu)中明確這樣的持續(xù)運(yùn)營(yíng)閉環(huán)是保證大家采用“動(dòng)態(tài)”視角來(lái)看待持續(xù)建模工作的關(guān)鍵。這正如任何成功的數(shù)字化產(chǎn)品和服務(wù),上線面客僅僅是開(kāi)端,真正的客戶價(jià)值創(chuàng)造關(guān)鍵是后續(xù)的持續(xù)運(yùn)營(yíng)和迭代演進(jìn)。這也是為什么我們?cè)谄髽I(yè)架構(gòu)設(shè)計(jì)過(guò)程中,需要從“建模”活動(dòng)視角來(lái)強(qiáng)調(diào)這種可持續(xù)性。

第一環(huán):“順時(shí)針”市場(chǎng)驅(qū)動(dòng)科學(xué)應(yīng)變

不論是業(yè)務(wù)架構(gòu)還是最后落地的微服務(wù),都是服務(wù)于我們?cè)趦r(jià)值建模過(guò)程中認(rèn)定的商業(yè)機(jī)會(huì)。根據(jù)企業(yè)經(jīng)營(yíng)的情況,初始的價(jià)值認(rèn)定會(huì)得到驗(yàn)證,而根據(jù)驗(yàn)證結(jié)果我們就有必要進(jìn)行業(yè)務(wù)架構(gòu)、系統(tǒng)架構(gòu)的調(diào)整,最終驅(qū)動(dòng)技術(shù)落地上的迭代。

這樣的市場(chǎng)驅(qū)動(dòng)也適用于持續(xù)的新機(jī)會(huì)發(fā)現(xiàn),包括一些新技術(shù)驅(qū)動(dòng)下的業(yè)務(wù)可能性的探索。需要強(qiáng)調(diào)這并不意味著我們只有一套大而全的業(yè)務(wù)模型涵蓋所有可能業(yè)務(wù),相反由于這些新產(chǎn)品和服務(wù)的持續(xù)探索,一家企業(yè)很可能在這些新領(lǐng)域采用獨(dú)立的、更為輕量級(jí)的架構(gòu)模型,從而能夠保持在投資上的靈活性。

9.png

EDGE框架中輕量級(jí)價(jià)值驅(qū)動(dòng)的戰(zhàn)略決策機(jī)制可作為市場(chǎng)驅(qū)動(dòng)運(yùn)營(yíng)閉環(huán)的參考

在落實(shí)這樣的運(yùn)營(yíng)閉環(huán)時(shí),我們應(yīng)該有相關(guān)的管理部門或賦能團(tuán)隊(duì)來(lái)保證閉環(huán)的持續(xù)運(yùn)作,特別是在一些擁有上千人研發(fā)隊(duì)伍的大型組織里。EDGE首次提出的“價(jià)值實(shí)現(xiàn)團(tuán)隊(duì)”(Value Realization Team,VRT)就可以作為一個(gè)很好的參考,幫助組織推動(dòng)這個(gè)順時(shí)針運(yùn)營(yíng)閉環(huán)的持續(xù)落地。

第二環(huán):“逆時(shí)針”創(chuàng)新驅(qū)動(dòng)主動(dòng)求變

在這個(gè)充滿挑戰(zhàn)和機(jī)遇的市場(chǎng)環(huán)境下,創(chuàng)新正成為一家企業(yè)的生存必備能力,但大部分組織在如何有效進(jìn)行創(chuàng)新上卻存在很大困惑,更不要說(shuō)建立支持持續(xù)創(chuàng)新的架構(gòu)。

雖然商業(yè)創(chuàng)新很多時(shí)候可以從商業(yè)模式的打造上切入,很多企業(yè)的高管也在強(qiáng)化自身的戰(zhàn)略投資能力。但不可否認(rèn)讓企業(yè)內(nèi)部的團(tuán)隊(duì),甚至個(gè)體,發(fā)揮自身的創(chuàng)新能力,已經(jīng)成為一家企業(yè)是否建立數(shù)字化基因的基本衡量之一。

由此我們需要在建?;顒?dòng)中支持團(tuán)隊(duì)主動(dòng)發(fā)起變化,不少的企業(yè)都在利用虛擬團(tuán)隊(duì)進(jìn)行跨產(chǎn)品和服務(wù)的整合創(chuàng)新,而過(guò)去數(shù)年全球在學(xué)習(xí)型組織方面的研究,也為我們提供了基于實(shí)踐社區(qū)CoP(Community of Practice)持續(xù)運(yùn)營(yíng)方式。

CoP圍繞著一群有共同關(guān)注或熱情的人,定期展開(kāi)互動(dòng)學(xué)習(xí)和創(chuàng)新嘗試,比如基于自動(dòng)化技術(shù)RPA的CoP,或者人工智能方面的算法CoP。這種機(jī)制的重要性在于保持團(tuán)隊(duì)對(duì)于市場(chǎng)和技術(shù)發(fā)展的開(kāi)放性,通過(guò)持續(xù)多點(diǎn)嘗試來(lái)主動(dòng)發(fā)起改變。

10.png

基于實(shí)踐社區(qū)CoP的虛擬社區(qū)組織結(jié)構(gòu)示意,通過(guò)CoP的機(jī)制建立持續(xù)學(xué)習(xí)和創(chuàng)新的組織基因

不少企業(yè)在激發(fā)自身產(chǎn)品和服務(wù)一線創(chuàng)新的組織機(jī)制上,采取了成立內(nèi)部或聯(lián)合外部的孵化器模式,允許來(lái)自于不同團(tuán)隊(duì)的員工自由組隊(duì),提出基于企業(yè)賽道或能力平臺(tái)的創(chuàng)新想法,并提供必要的落地支撐。這種模式短期可能取得不錯(cuò)的效果,但需要持續(xù)推進(jìn)長(zhǎng)效機(jī)制的建立,避免成為趕時(shí)髦的曇花一現(xiàn)。

5、甄別借鑒,與時(shí)俱進(jìn)

開(kāi)篇對(duì)比了TOGAF和Zachman這樣的經(jīng)典企業(yè)架構(gòu)方法,幫助大家明確我們?yōu)槭裁磸?ldquo;建模”的視角來(lái)切入現(xiàn)代數(shù)字化企業(yè)架構(gòu)。但這些經(jīng)典方法仍然是值得肯定的,它們的提出也是源自于一些先進(jìn)企業(yè)之前數(shù)十年推進(jìn)信息化工作的提煉和總結(jié)。

對(duì)于很多企業(yè)來(lái)說(shuō),信息化仍然是數(shù)字化的重要支撐,沒(méi)有良好的信息化系統(tǒng),數(shù)字化業(yè)務(wù)就無(wú)從談起。從這點(diǎn)出發(fā),我們需要對(duì)這些方法的思路和實(shí)踐進(jìn)行甄別和借鑒,比如TOGAF針對(duì)組織架構(gòu)能力建立的框架Architecture Capability Framework,就是比較好的幫助組織建立架構(gòu)治理能力全局視野的可行方法。當(dāng)然在一些領(lǐng)域,如架構(gòu)變更管理Architecture Change Management,和我們這里提出的敏捷建模,就是截然不同的思考。

11.png

TOGAF v9.2建立的知識(shí)庫(kù):https://www.opengroup.org/togaf

很多研發(fā)組織在實(shí)踐敏捷開(kāi)發(fā)方法時(shí)經(jīng)常會(huì)陷入一個(gè)“非標(biāo)準(zhǔn)化”誤區(qū),即認(rèn)為敏捷開(kāi)發(fā)都是提倡個(gè)人匠藝,團(tuán)隊(duì)層面則不存在什么約束。事實(shí)上敏捷開(kāi)發(fā)方法面向的是規(guī)?;能浖こ?,對(duì)比傳統(tǒng)強(qiáng)流程管控的方法(如CMMi),在輕量化流程的基礎(chǔ)上,實(shí)質(zhì)是增強(qiáng)了對(duì)于個(gè)人工藝紀(jì)律性方面的要求,比如經(jīng)典的測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD,就要求開(kāi)發(fā)者遵循先設(shè)計(jì)自動(dòng)化驗(yàn)收測(cè)試、再進(jìn)行功能實(shí)現(xiàn)編碼的紀(jì)律。

同樣的思路應(yīng)用到企業(yè)架構(gòu)設(shè)計(jì)上,我們認(rèn)可一些主流方法在“流程和工具”方面的積累,我們希望從輕量化的視角去選擇性采用。而我們的敏捷建模方法更關(guān)注的是協(xié)作和工藝上的實(shí)踐,強(qiáng)調(diào)在企業(yè)架構(gòu)設(shè)計(jì)中“人和互動(dòng)”帶來(lái)的組織級(jí)認(rèn)知的持續(xù)提升。

改變的道路從來(lái)都是充滿挑戰(zhàn)的,在企業(yè)架構(gòu)重要性日益凸顯的數(shù)字化時(shí)代,我們希望通過(guò)這個(gè)敏捷建模方法DEAM(Digital Enterprise Agile Modelling)的提煉,幫助更多的人意識(shí)到軟件研發(fā)的本質(zhì),并能夠更多從組織持續(xù)成長(zhǎng)的動(dòng)態(tài)視角來(lái)構(gòu)建企業(yè)架構(gòu)的能力,從而奠定數(shù)字化時(shí)代高質(zhì)量可持續(xù)發(fā)展的核心組織支撐。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論