IT科技生態(tài)的三代論
我在一次和客戶的CDO交流時(shí),得以聆聽到一個(gè)極有意思的觀點(diǎn)。該CDO認(rèn)為:“一家企業(yè)科技部門的領(lǐng)導(dǎo),應(yīng)盡量確保IT的科技生態(tài)不能共存超過三代的系統(tǒng)。如果系統(tǒng)的代齡超出三代,科技生態(tài)就會(huì)變得太復(fù)雜,遺留的債務(wù)太多,一旦需要轉(zhuǎn)型,執(zhí)行起來就會(huì)舉步維艱?!?/p>
對(duì)此觀點(diǎn),我深表認(rèn)同。
怎么定義科技生態(tài)的“代”?這似乎沒有一個(gè)定論,更何況,不同技術(shù)的更新速率也不盡相同,難以統(tǒng)一。例如,金融企業(yè)的IT系統(tǒng)都經(jīng)歷過大型機(jī)、小型機(jī)和PC機(jī)集群時(shí)代,而服務(wù)器也經(jīng)歷了物理機(jī)、虛擬機(jī)到如今的容器時(shí)代。雖說現(xiàn)在主流的開發(fā)語言都可以劃歸為高級(jí)語言,語言版本的變更似乎也很難給出代系的劃分,然而就Java來說,差不多可以把JDK1.4、JDK6、JDK8以及JDK11+劃分到不同的代。
因此,我們先不必糾結(jié)科技生態(tài)的“代”該怎么劃分,而是看這樣的三代論是否值得大多數(shù)傳統(tǒng)企業(yè)的CTO、CIO與CDO們深思。
1.為什么是三代?
大約靈感來自“富不過三代”的俗語?但我能想到的參考依據(jù)是Gartner提出的Pace-Layer應(yīng)用戰(zhàn)略模型,如下圖所示:
它將企業(yè)應(yīng)用分為三層,從下到上分別為:
- 保持穩(wěn)定的記錄型系統(tǒng)(Systems of Record)
- 高響應(yīng)的差異型系統(tǒng)(Systems of Differentiation)
- 主動(dòng)變化的創(chuàng)新型系統(tǒng)(Systems of Innovation)?
既然企業(yè)應(yīng)用有著不同的變化速率,技術(shù)形態(tài)與之對(duì)應(yīng),恰好形成三態(tài):
- 記錄型系統(tǒng):由于變化緩慢,在構(gòu)建之初選擇的技術(shù)形態(tài)或許是新的,但隨著時(shí)間推移,技術(shù)變得越來越落后,由于系統(tǒng)沒有什么變化,自然也沒有重構(gòu)或重寫的必要,如此就變成了繼續(xù)支撐業(yè)務(wù)的祖父級(jí)系統(tǒng),我將其稱之為“固態(tài)”。
- 差異型系統(tǒng):開發(fā)周期相對(duì)較長(zhǎng),業(yè)務(wù)會(huì)持續(xù)演進(jìn),為確保系統(tǒng)具備一定的先進(jìn)性,可能需要迭代更新,直至到某個(gè)階段,需要進(jìn)行技術(shù)棧遷移;又或者保留一部分舊有的穩(wěn)定功能,而針對(duì)新功能,采用更新一代的技術(shù),我將這種新舊并存的狀態(tài)稱之為“液態(tài)”。
- 創(chuàng)新型系統(tǒng):創(chuàng)新業(yè)務(wù)往往具備趨勢(shì)前瞻的性質(zhì),需要快速打造、快速試錯(cuò),它可能在未來成為企業(yè)的核心,但在創(chuàng)新階段,企業(yè)對(duì)其技術(shù)的選擇相對(duì)寬容,可以選擇當(dāng)下最新的技術(shù),我將這種靈活快速的狀態(tài)稱之為“氣態(tài)”。
這三種形態(tài)可以對(duì)應(yīng)雙態(tài)業(yè)務(wù),即穩(wěn)態(tài)業(yè)務(wù)和敏態(tài)業(yè)務(wù),其中,穩(wěn)態(tài)業(yè)務(wù)和敏態(tài)業(yè)務(wù)的重疊部分,就是位于中間態(tài)的液態(tài):
由穩(wěn)態(tài)業(yè)務(wù)和敏態(tài)業(yè)務(wù)組成的雙態(tài)業(yè)務(wù)不妨用太極圖體現(xiàn):
北宋大儒理學(xué)宗師周敦頤認(rèn)為:“無極而太極,太極動(dòng)而生陽,動(dòng)極而靜,靜而生陰,靜極復(fù)動(dòng),一動(dòng)一靜,互為其根,分陰分陽。兩儀立焉?!碧珮O體現(xiàn)的正是動(dòng)靜與陰陽的轉(zhuǎn)換。
穩(wěn)態(tài)與敏態(tài)并非固定不變。穩(wěn)態(tài)需要敏態(tài)升級(jí),敏態(tài)到了一定時(shí)期也需要沉淀,變?yōu)榉€(wěn)態(tài)。穩(wěn)態(tài)并不意味著陳舊與糟糕,相反,它可能意味著復(fù)用,是企業(yè)重要的資產(chǎn)。敏態(tài)并不意味著常新而易變,一旦發(fā)現(xiàn)它存在不變的部分,就需要轉(zhuǎn)換為穩(wěn)態(tài)。
動(dòng)極而靜,靜極復(fù)動(dòng)。
敏態(tài)走到極致,必然需要提煉其穩(wěn)定的部分,否則敏態(tài)就會(huì)因?yàn)橹貜?fù)開發(fā)而增加成本;穩(wěn)態(tài)走到極致,如果不向敏態(tài)遷移,就會(huì)僵化不變,腐化為技術(shù)債。因而,太極圖對(duì)雙態(tài)的呈現(xiàn),完美地體現(xiàn)了穩(wěn)態(tài)和敏態(tài)的周而復(fù)始。
企業(yè)在確定科技生態(tài)時(shí),要考慮到業(yè)務(wù)的雙態(tài),而為不同形態(tài)的業(yè)務(wù)確定科技生態(tài)時(shí),又該遵循什么樣的技術(shù)參考依據(jù),以保證科技生態(tài)的代齡不超過三代呢?那就要在企業(yè)內(nèi)部提供確定代齡的客觀依據(jù)。
一個(gè)客觀依據(jù)是判斷該技術(shù)的成熟度。如何客觀地評(píng)價(jià)成熟度呢?一個(gè)辦法是參考Gartner每年發(fā)布的新興技術(shù)成熟度曲線,如2022年的成熟度曲線:
成熟度曲線將一項(xiàng)技術(shù)的發(fā)展劃分為多個(gè)階段:
- 創(chuàng)新萌芽期(Innovation Trigger)
- 過熱期(Peak of Inflated Expectations)
- 幻滅低谷期(Trough of Disillusionment)
- 復(fù)蘇期(Slope of Enlightenment)
- 生產(chǎn)力成熟期(Plateau of Productivity)?
原則上,只有位于生產(chǎn)力成熟期的技術(shù)才屬于液態(tài),而創(chuàng)新萌芽期的技術(shù)則屬于氣態(tài)。
通過長(zhǎng)期跟蹤Gartner的新興技術(shù)成長(zhǎng)度曲線,隨著時(shí)間的推移,自然可以描繪出各種技術(shù)的代齡形態(tài)。
劃分代齡不能僅依據(jù)成熟度,因?yàn)橐豁?xiàng)成熟的技術(shù)不一定就是最適合該企業(yè)的技術(shù),若有可能,可以參考其他科技公司對(duì)該技術(shù)做出的客觀評(píng)估。ThoughtWorks每半年發(fā)布的技術(shù)雷達(dá)可以作為其中一個(gè)參考:
ThoughtWorks的技術(shù)雷達(dá)有四個(gè)圓環(huán),由內(nèi)向外分別為:
- 采納:采納環(huán)中的條目往往是已被證實(shí)的、成熟可用的技術(shù)
- 試驗(yàn):試驗(yàn)環(huán)里的條目具備了ThoughtWorks生產(chǎn)環(huán)境經(jīng)驗(yàn),但還未得到充分證明
- 評(píng)估:評(píng)估環(huán)里的內(nèi)容是值得研究的,通常屬于相對(duì)前瞻的技術(shù)
- 暫緩:已被業(yè)界采納,但ThoughtWorks技術(shù)咨詢委員認(rèn)為體驗(yàn)并不好的技術(shù)
技術(shù)雷達(dá)的條目不是一成不變的,每期技術(shù)雷達(dá)都可能出現(xiàn)新的,也可能已有的條目不再適合,就會(huì)被移走。與技術(shù)代齡的三態(tài)相對(duì)應(yīng),映射關(guān)系大致如下:
- 固態(tài):曾經(jīng)屬于采納環(huán),但因?yàn)榧夹g(shù)相對(duì)陳舊而被移走的條目
- 液態(tài):屬于采納環(huán)的技術(shù),也包括一部分屬于暫緩環(huán)的技術(shù)
- 氣態(tài):屬于試驗(yàn)環(huán)和評(píng)估環(huán)
企業(yè)在做技術(shù)選型時(shí),如果選擇了開源項(xiàng)目,也可以根據(jù)開源項(xiàng)目社區(qū)的活躍度,項(xiàng)目的Star數(shù)量等對(duì)成熟度做出判斷。
借用技術(shù)雷達(dá)圖的技術(shù)象限劃分,再參考Gartner的成熟度曲線,可以為企業(yè)繪制出科技生態(tài)的代齡圖。
屬于固態(tài)代齡的階段,稱之為衰退期;屬于液態(tài)代齡的階段,稱之為成熟期;屬于氣態(tài)代齡的階段,稱之為成長(zhǎng)期。這三個(gè)階段由左向右排列,衰退期的左側(cè)屬于死亡期,成長(zhǎng)期的右側(cè)屬于萌芽期,原則上,企業(yè)應(yīng)用需避免使用位于死亡期和萌芽期的技術(shù)。
科技生態(tài)的代齡圖是動(dòng)態(tài)變化的,它相當(dāng)于為企業(yè)的科技領(lǐng)導(dǎo)或技術(shù)負(fù)責(zé)人提供了生態(tài)藍(lán)圖,每一次技術(shù)的代齡變動(dòng),都可能給出警示。
如果希望更加直觀地了解到當(dāng)前的應(yīng)用系統(tǒng)是否違背了代齡要求,可以直接為企業(yè)的應(yīng)用系統(tǒng)繪制代齡圖。
圖中使用圓形、三角形和菱形符號(hào)分別代表已建、在建和待建的應(yīng)用系統(tǒng)。
圖中的紅色代表嚴(yán)重警示信號(hào),包括如下情形:
- 位于死亡期的所有類型的企業(yè)應(yīng)用,如編號(hào)11
- 位于衰退期的待建應(yīng)用,如編號(hào)19
圖中的黃色代表警示信號(hào),包括如下情形:
- 位于衰退期并接近死亡期的已建應(yīng)用,如編號(hào)16
- 位于衰退期的在建應(yīng)用,如編號(hào)20
- 位于成熟期的待建應(yīng)用,如編號(hào)18
- 位于萌芽期的所有類型的企業(yè)應(yīng)用,如編號(hào)14和17
針對(duì)發(fā)出警示信號(hào)的企業(yè)應(yīng)用,相關(guān)負(fù)責(zé)人需要制訂策略,判斷是否需要調(diào)整其科技生態(tài);如果是嚴(yán)重警示信號(hào),則屬于技術(shù)債的內(nèi)容,需要給出進(jìn)行改造的強(qiáng)制策略。在估算改造成本后,需確定改造完成的最后期限。
該圖也可以作為數(shù)字化轉(zhuǎn)型的參考,如在選擇數(shù)字化轉(zhuǎn)型的試點(diǎn)應(yīng)用時(shí),可優(yōu)先選擇屬于成長(zhǎng)期的在建或待建應(yīng)用系統(tǒng)。對(duì)于屬于衰退期的已建應(yīng)用系統(tǒng),如果它屬于穩(wěn)態(tài)業(yè)務(wù),也可以考慮保留現(xiàn)有的生態(tài)。