技術(shù)棧復(fù)雜度飆升帶給管理者們的啟示
為了在當(dāng)下的數(shù)字環(huán)境中生存和發(fā)展,企業(yè)必須要理解技術(shù)格局變化對企業(yè)的影響。這就是我們在Technology Radar Echoes系列的開篇文章中要討論的。Technology Radar Echoes是我們推出的一個新的專欄。在這個專欄中,作者會與企業(yè)的領(lǐng)導(dǎo)者們分享他們在解決技術(shù)問題以及技術(shù)如何能夠為企業(yè)帶來差異化競爭力方面的洞見和經(jīng)驗。ThoughtWorks Technology Radar 是由多位技術(shù)專家組成的國際咨詢委員會發(fā)起的一年一度的針對對軟件開發(fā)和企業(yè)戰(zhàn)略制定有重大影響的技術(shù)的趨勢的評估活動。如今已經(jīng)進(jìn)入了第6個年頭。
在還不算太久的以前,社交媒體,移動平臺,物聯(lián)網(wǎng),云計算,大數(shù)據(jù)這些概念還沒有充斥于我們的視線中,那時的技術(shù)棧 (實施一項應(yīng)用所需的各層技術(shù)) 要簡單的多,并往往都有特定的廠商。比如微軟的技術(shù)棧包括用于編程的.NET語言,作為網(wǎng)頁和應(yīng)用服務(wù)器的IIS,用于數(shù)據(jù)庫的SQL Server等。
而如今,技術(shù)棧正在經(jīng)歷著爆炸式的發(fā)展。我們看到數(shù)不清的平臺,諸如: Microsoft Nano Server, Deis, Fastly, Apache Spark和Kubernetes. 每個星期,都會有新的工具出現(xiàn),比如: Docker Toolbox, Gitrob, Polly, Prometheus和Sleepy Puppy。新的編程語言和新的架構(gòu),例如Nancy, Axon, Frege和Traveling Ruby,也出現(xiàn)了。還有Data Lake, Gitflow, Flux和NoPSD這類先進(jìn)的技術(shù)也日漸成熟。這些例子舉不勝舉。
在每一年的 ThoughtWorks Technology Radar 中,我們都會介紹大約120項新技術(shù),由于篇幅的限制,這只是我們過目和評估過的所有新技術(shù)的一半。在過去5年里,我們?yōu)镽adar認(rèn)真評估過的技術(shù)“亮點”就有2000多個。雖然這些技術(shù)中的一小部分只適用于特定的應(yīng)用,但技術(shù)棧的多樣性在過去的5年內(nèi)呈指數(shù)增長。所以,為什么你,作為一個高管或者經(jīng)理,需要關(guān)心這個?為什么,你做為一個企業(yè)的CEO,需要關(guān)心這個?這難道不是技術(shù)人員應(yīng)該去關(guān)心的? 不!如果軟件和軟件開發(fā)關(guān)乎你的企業(yè)的數(shù)字化未來,你就應(yīng)該關(guān)心--并非關(guān)心那些技術(shù)細(xì)節(jié),而是關(guān)心整個技術(shù)發(fā)展趨勢對你的企業(yè)的影響。技術(shù)以很多種形式構(gòu)建著企業(yè)的差異化競爭優(yōu)勢,驅(qū)動著行業(yè)競爭格局的顛覆。管理者們必須要理解技術(shù)格局對企業(yè)發(fā)展的影響,才能為企業(yè)做出正確的戰(zhàn)略決策。
啟示
目前,技術(shù)的格局處于一種動態(tài)的平衡之中,技術(shù)的生態(tài)系統(tǒng)不斷接納著層出不窮的新技術(shù)和新方法,再達(dá)到新的平衡。下面是一些最新的變化:
單一廠商解決方案已經(jīng)成為過去
不久以前,甚至一些大型企業(yè)都還堅指著單一廠商的解決方案。2000年的時候,Jim的一個朋友在為一家公司做數(shù)據(jù)倉庫項目,這個項目簡直就是一個IBM的實體店。在這個項目里,雖然項目團(tuán)隊一再努力的勸說客戶微軟的解決方案才是更適合客戶實際情況的,但客戶堅持要在古老的AS/400硬件上安裝IBM的數(shù)據(jù)倉庫。項目一再延期,客戶才同意讓項目團(tuán)隊用Windows服務(wù)器和微軟棧做了一個原型系統(tǒng),在一次又一次的會議和溝通之后,客戶的管理層終于被開發(fā)團(tuán)隊說服,同意采用微軟的解決方案。這之后項目進(jìn)展迅速改觀。這家公司的單一廠商解決方案失敗了,因為他們不得不邁入軟件應(yīng)用的新時代。
這個發(fā)展趨勢勢頭強勁,變化發(fā)生的太多太快,即使是微軟或甲骨文這樣規(guī)模的公司都跟不上了。并且變化不止是在量上,我們看到很多變化都是顛覆性的,導(dǎo)致現(xiàn)有產(chǎn)品很快就過時了,曾經(jīng)手上的寶貝轉(zhuǎn)眼就要扔掉,這對每個公司來說都不是件容易接受的事。
開源工具的更是加速了這種趨勢。開源產(chǎn)品促進(jìn)了各個公司之間的深度合作,可以讓一個廠商不用簽任何許可協(xié)議就能在其他公司的數(shù)十個已有技術(shù)上構(gòu)建自己的應(yīng)用。這讓那些小型的,專注的,在某一個技術(shù)領(lǐng)域深耕細(xì)作的公司如魚得水。大型的技術(shù)公司根本沒有什么動力整合這些技術(shù),除非(諷刺的是)這些技術(shù)已經(jīng)過時了。“過去,注重效率的管理者的座右銘就是:標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化。但今天,標(biāo)準(zhǔn)化可能行不通了。”做移動開發(fā)意味著要能處理不同廠商的不同終端設(shè)備的多種操作系統(tǒng)。做大數(shù)據(jù)開發(fā)意味著要能處理多種不同類型的數(shù)據(jù)庫管理系統(tǒng),包括開源的系統(tǒng),或者還沒什么歷史的新廠商的系統(tǒng);單一廠商數(shù)據(jù)解決方案的時代已經(jīng)結(jié)束了。
如果你想成為一個數(shù)字化企業(yè),技術(shù)棧復(fù)雜性的增加,意味著廠商管理的復(fù)雜性增加,這讓人頭疼,也帶來更多機遇。
團(tuán)隊構(gòu)成和組織結(jié)構(gòu)都需要變革
隨著技術(shù)棧復(fù)雜性的增加,按技術(shù)棧層組織的團(tuán)隊效率會越來越低。在互聯(lián)網(wǎng)時代早期,技術(shù)棧只有業(yè)務(wù)邏輯,數(shù)據(jù)庫,中間件,展示層這幾層,按照技術(shù)棧層來組織團(tuán)隊,雖然不甚完美,但還是有效率的。如今,這樣的組織已經(jīng)談不上還有什么效率。構(gòu)建現(xiàn)在的應(yīng)用所需要得技能如此多樣化,要求團(tuán)隊必須能夠協(xié)作,而不是被分割在一個個的孤島里。同時具備設(shè)計,開發(fā),部署一項應(yīng)用所需的所有技能的通才越來越罕見了。并且,隨著團(tuán)隊不斷獲取所需的技能和人才,團(tuán)隊的規(guī)模會越來越大,一定要能夠緊密合作,才能獲得成功。
過去,出于對運營成本和管理復(fù)雜度的考慮,傳統(tǒng)的軟件組織將開發(fā)、IT運營和質(zhì)量保障設(shè)為各自分離的部門,而現(xiàn)在,由于云計算的出現(xiàn)和對DevOps文化的重視,系統(tǒng)能夠?qū)崿F(xiàn)自動配置,產(chǎn)品新特性每天都可以發(fā)布。這些新能力的出現(xiàn)給了我們重塑組織架構(gòu)的機會。越來越多的企業(yè),把團(tuán)隊圍繞著像客戶,訂單這樣的概念域來組織,各技術(shù)層囊括在每一個概念域中,而不再作為劃分團(tuán)隊的基礎(chǔ)。 這種按域(或產(chǎn)品)而不是技術(shù)層構(gòu)建組織的趨勢正在隨著企業(yè)數(shù)字化進(jìn)程加速。如果企業(yè)繼續(xù)沿用按孤立的技術(shù)層組織團(tuán)隊的方式,那么,孤立的職能單元與他們所需的交互的數(shù)量將急劇增加,造成更嚴(yán)重的集成問題。
團(tuán)隊協(xié)同成為必需
由于團(tuán)隊變得更復(fù)雜了,團(tuán)隊合作也變得更為關(guān)鍵。如前面提到的,如今的團(tuán)隊需要配備的技能范圍非常廣泛,從純技術(shù)棧各層的專家,到運營,產(chǎn)品設(shè)計和產(chǎn)品管理的人才都有。團(tuán)隊人才和技能的多樣性讓團(tuán)隊的有效合作變得更為困難,也更為必要。敏捷開發(fā)和精益管理的好處之一就是促進(jìn)跨職能團(tuán)隊的自主和協(xié)作。
建立軟件交付能力更難了
軟件工程非常重要,越來越多的公司發(fā)現(xiàn),沒有世界一流的軟件交付能力,他們的數(shù)字戰(zhàn)略就沒法實現(xiàn)。
“數(shù)字技術(shù)正在殘酷的重塑著競爭格局,產(chǎn)品和服務(wù)的差異性和績效越來越依賴軟件的水平。 盡管軟件如此關(guān)鍵,但得到的管理層的關(guān)注度卻令人驚訝的不足。新的調(diào)研結(jié)果顯示,那些將企業(yè)交付優(yōu)質(zhì)軟件的能力的重要性低估的企業(yè),是要為此付出代價的。” [《忽略軟件開發(fā)將面臨的危險》麥肯錫季刊, 2015]
一個企業(yè)是否能夠建立起世界一流的軟件交付能力,受5個因素的影響,分別是: 技能的廣度,技能的深度,快速學(xué)習(xí),創(chuàng)新和決策。
如今,由于技術(shù)棧的日趨復(fù)雜,開發(fā)應(yīng)用所需的技能的覆蓋面極巨擴大了。為了能跟上變化,企業(yè)可能不但需要有軟件交付的能力,還得有物聯(lián)網(wǎng)的開發(fā)能力。
并且,不但技能的廣度變大了,對技能的深度(深度掌握與基本掌握)要求也更高了。搭建前沿的應(yīng)用需要掌握前沿的技能。就好比5.10(難度系數(shù))的攀巖選手根本沒機會攀5.13難度的線路,只具備一般技能水平的軟件團(tuán)隊不太可能打造出令人驚艷的應(yīng)用。
與技術(shù)棧的快速變化一樣,企業(yè)軟件團(tuán)隊在未來所需的技能和知識肯定與現(xiàn)在的不同,這意味著你不僅需要你的團(tuán)隊具備今天所需的技能,還有能力迅速獲取明天可能需要的技能。“建立起能夠快速適應(yīng)變化和快速學(xué)習(xí)的能力,與培育某一項特定技能一樣重要。”有個被引用了很久的橋段,一個經(jīng)理很唉聲嘆氣的說他不太愿意培訓(xùn)開發(fā)人員,因為怕這些人培訓(xùn)后會跳槽,而他得到的回復(fù)卻是 “如果你不給他們培訓(xùn),而他們一直待在你的公司怎么辦?”
除了那些技能本身,個人需要能夠以創(chuàng)新的方式運用這些技能。公司文化中應(yīng)有勇于探索和冒險的精神。
最終,但同等重要的是,你的企業(yè)需要有針對能力和技能的更好的決策機制。在做決策時,你得問自己這些問題:什么技能是你需要的?這些技能是否都需要在企業(yè)內(nèi)部建立?每類技能的掌握需要達(dá)到什么深度?讓技術(shù)人員通過正式培訓(xùn)獲得技能和通過工作經(jīng)驗獲得技能,兩者如何平衡?如何保持技術(shù)先進(jìn)性?你覺得應(yīng)該在內(nèi)部建立和培育這些技能,還是從外部通過買/租的方式獲得這些資源?
選外包,內(nèi)包,還是聯(lián)合采購?
這個決策越來越復(fù)雜,而且也不再是以成本為導(dǎo)向了。很多企業(yè)都發(fā)現(xiàn),他們根本沒有能力建立和維護(hù)他們在如今的市場環(huán)境下所需要建立起的軟件交付能力。有些企業(yè)發(fā)現(xiàn)他們沒辦法吸引到想要的人才,因為頂尖的技術(shù)人才炙手可熱,他們喜歡生活在紐約、倫敦這樣的國際一線城市,而很多企業(yè)的IT部門卻設(shè)在成本較低的不那么光鮮的地方。有些企業(yè)沒有辦法長期負(fù)擔(dān)保留人才的成本,因為他們并沒有持續(xù)的數(shù)字業(yè)務(wù)的項目可做。在過去20年里,企業(yè)大都奉行降低成本,提高效率的戰(zhàn)略,對很多運營能力和流程都選擇了外包,現(xiàn)在想要在企業(yè)內(nèi)部重新搭建這些能力以適應(yīng)市場變化則要花很多時間和成本,讓企業(yè)在競爭中處于不利地位。如今的針對數(shù)字業(yè)務(wù)能力獲取方式的選擇,已經(jīng)不再是以節(jié)約成本為導(dǎo)向了,而是聚焦于創(chuàng)新能力,交付周期,和價值生成。
現(xiàn)在,技術(shù)研發(fā)外包不再是以降低成本為目標(biāo),而是以獲得能力為目的的。更進(jìn)一步說,你應(yīng)該尋找的合作伙伴,應(yīng)該不僅具備你現(xiàn)在所需要的能力,還要能證明出他們有快速建立起未來你可能需要的新能力的本領(lǐng)。
雖然從外部借取能力可以解燃眉之急,幫企業(yè)抓住一些眼下的市場機會,卻也能為企業(yè)帶來與以節(jié)約成本為目的的外包類似的問題,并且在能力外包的情況下,這些問題進(jìn)一步被放大了。比如,一旦企業(yè)想把外包的能力或流程重新在企業(yè)內(nèi)部建立起來,就總是會面臨知識轉(zhuǎn)移的問題。技術(shù)棧的復(fù)雜性擴大了知識轉(zhuǎn)移的難度。廠商數(shù)量和采購合同類型的增加更是百上加斤。設(shè)想一下,以創(chuàng)新為中心,價值為導(dǎo)向的外包合同肯定比以節(jié)約成本為導(dǎo)向的合同難界定的多,簽合同的過程難度也會大很多。
組建一個前沿的技術(shù)團(tuán)隊是很昂貴的
我們聽客戶談起過這樣的情況,他們不太敢在企業(yè)里引入太現(xiàn)代太先進(jìn)的技術(shù)(比如Hadoop), 因為他覺得他們現(xiàn)有的人才沒法掌握這些技術(shù),但同時,他們又需要吸引年輕的新的技術(shù)人才,因此又需要有這些技術(shù)才能對這些人才有吸引力。這個悖論IT部門是沒有辦法解開的,需要業(yè)務(wù)層面的高級管理人員的決策。
這件事沒什么別的辦法,如果你想要建立一個一流的數(shù)字企業(yè),用一套節(jié)約成本的思維是做不好的。技術(shù)日趨復(fù)雜,技術(shù)、商業(yè)模式和產(chǎn)品層面上創(chuàng)新需要日益迫切,人才爭奪戰(zhàn)愈演愈烈,將企業(yè)打造成前沿的技術(shù)企業(yè)的戰(zhàn)略決策不能草率做出。是否沖向這個前線應(yīng)該是一個從企業(yè)整體商業(yè)戰(zhàn)略(打造一個具有創(chuàng)業(yè)精神的公司,建立數(shù)字業(yè)務(wù))中做出的決策,應(yīng)該是以價值為出發(fā)點,而不是以成本為出發(fā)點的決策。成本作為一種約束手段是很重要的,但永遠(yuǎn)不是目的。
技術(shù)的快速變化可能讓你不知所措,但你必須跟上,才能保持領(lǐng)先地位。
企業(yè)若想在當(dāng)下的競爭環(huán)境下生存發(fā)展,必須具備4項關(guān)鍵能力: 制定有效地數(shù)字化戰(zhàn)略; 執(zhí)行一套動態(tài)的,以價值為導(dǎo)向的投資組合管理流程; 建立起快速的,可迭代的軟件交付能力;在整個企業(yè)內(nèi)培育出高適應(yīng)性的,具有創(chuàng)新精神的企業(yè)文化。“軟件工程不僅僅是技術(shù)人員需要關(guān)心的,對業(yè)務(wù)高管也非常重要”。說到底,技術(shù)上的變革與企業(yè)其它方面的變革息息相關(guān),與企業(yè)業(yè)務(wù)長期的可持續(xù)性息息相關(guān)。近年來,構(gòu)建數(shù)字業(yè)務(wù)應(yīng)用的技術(shù)棧復(fù)雜性飆升,使企業(yè)騎虎難下,進(jìn)退兩難。一方面,滿足數(shù)字商業(yè)挑戰(zhàn)有其必要性;而另一方面,建立起應(yīng)對這一挑戰(zhàn)所需的技術(shù)和技能又意料之外的困難。隨著技術(shù)變革的步伐加快,技術(shù)戰(zhàn)略必須能為業(yè)務(wù)戰(zhàn)略提供輸入。做到這一點唯一有效的方式就是要把企業(yè)培育成一個有能力評估,采用和適應(yīng)新技術(shù)的組織。