新聞中心
上一個(gè)故事是關(guān)于自治團(tuán)隊(duì)解放生產(chǎn)力的,除了生產(chǎn)力之外,交付的另一個(gè)關(guān)鍵因素是軟件架構(gòu),架構(gòu)是在軟件開(kāi)發(fā)過(guò)程中并不那么容易改變的東西。然而與過(guò)去時(shí)代所不同的是,今天的軟件架構(gòu)并不是所謂的架構(gòu)師高高在上做出的一些決策后就不再改變了,在這個(gè)技術(shù)快速變化的時(shí)代,今天的架構(gòu)更像是在時(shí)間線上一系列的輕量技術(shù)決策積累的一個(gè)結(jié)果。

而這個(gè)故事,就是關(guān)于技術(shù)決策的。
明線:所有權(quán)?經(jīng)營(yíng)權(quán)?決策權(quán)?監(jiān)督權(quán)?
與A記不同的是,我們的客戶C記并沒(méi)有自己的IT團(tuán)隊(duì),也沒(méi)有一個(gè)明顯的IT部門(mén)。與C記的合作時(shí)間就更長(zhǎng)了,這么長(zhǎng)久的合作過(guò)程,卻是從一段“黑歷史”開(kāi)始的。
在2009年到2010年的時(shí)候,C記項(xiàng)目上一個(gè)技術(shù)決策的過(guò)程基本上是這個(gè)樣子的:客戶說(shuō),“我們只能用SQL Server”。我們聽(tīng)到這個(gè)消息之后,一方面在心里暗想,“為啥要選SQL Server,為啥喜歡微軟”,另一方面,我們發(fā)現(xiàn),客戶并沒(méi)有提究竟用什么 ORM 框架,于是便“我們自己搞一個(gè)吧”。接下來(lái)發(fā)生的事情是,我們自己搞出來(lái)了一個(gè)NoSQL的文檔數(shù)據(jù)庫(kù)嫁接在SQL Server之上。從這個(gè)項(xiàng)目上線的***天起,就開(kāi)始被打臉:性能問(wèn)題,維護(hù)成本,數(shù)據(jù)遷移的難度,我們花了非常大的代價(jià),才讓這套東西基本上能夠工作。
在那段時(shí)間里,這并不是唯一一個(gè)“魯莽的“技術(shù)決策,而這一切到底是如何發(fā)生的?實(shí)際上,存儲(chǔ)框架的決策比起采用什么樣的數(shù)據(jù)庫(kù)來(lái)說(shuō),要重要的多,然而這樣重要的決策卻沒(méi)有被拿到桌面上正兒八經(jīng)的和客戶一起討論。我們并不是糟糕的工程師,然而我們卻把自己的才智與精力放在了錯(cuò)誤的地方。
沒(méi)有業(yè)務(wù)的引導(dǎo),技術(shù)決策就更“技術(shù)導(dǎo)向”而不是“業(yè)務(wù)導(dǎo)向”。
我不得不給客戶寫(xiě)一封郵件來(lái)解釋為什么我們要花很大的代價(jià),從一個(gè) homemade 的存儲(chǔ)框架,切換到更加成熟的方案,而我直到現(xiàn)在依然可以很清楚的記得當(dāng)時(shí)的尷尬。
客戶當(dāng)然非常不高興,***的回復(fù)是,“至少我們開(kāi)始討論這些事情了”。于是這正是我們開(kāi)始做的,我們開(kāi)始在作出重要技術(shù)決策的時(shí)候邀請(qǐng)客戶參與。設(shè)置一個(gè)技術(shù)治理小組,每個(gè)月對(duì)技術(shù)方向進(jìn)行討論,用技術(shù)債雷達(dá)來(lái)可視化和積極的應(yīng)對(duì)技術(shù)債,這些都是在客戶的參與下發(fā)生的。
一方面,這是為了把更多的信息透明給客戶,然而更為關(guān)鍵的另一方面是,為了作出慎重的技術(shù)決策,我們需要知道客戶所面臨的約束,我們需要能夠從中驗(yàn)證自己的假設(shè),從而更好的尊重這些約束。
Tech Lead 的傾向從追逐”正確“的決策,變成了開(kāi)始作出”合適“的技術(shù)決策。
于是事情開(kāi)始向好的方向發(fā)展,從2011到2014年期間,homemade 的存儲(chǔ)框架的搭橋手術(shù)成功,能夠讓我們逐漸遷移到成熟的方案;我們開(kāi)始構(gòu)建了更多的產(chǎn)品,微服務(wù)的技術(shù)架構(gòu)也逐漸成型;隨著新系統(tǒng)的上線和老系統(tǒng)的退休,整個(gè)平臺(tái)遷移到了RackSpace上,加上自動(dòng)化部署流水線,發(fā)布變得越來(lái)越頻繁。
Happy ending?可惜并不是,2014年,客戶方的技術(shù)負(fù)責(zé)人被調(diào)動(dòng)到了另一個(gè)部門(mén),另一個(gè)人接手了他的工作。與前任不同的是,他對(duì)于技術(shù)決策的參與度非常高。甚至有時(shí)候會(huì)為團(tuán)隊(duì)做決策,然后讓團(tuán)隊(duì)承擔(dān)決策的后果。
這導(dǎo)致了另一個(gè)問(wèn)題,當(dāng)團(tuán)隊(duì)所得到的只是一個(gè)決策結(jié)果,沒(méi)有一個(gè)重新思考和衡量約束的過(guò)程,團(tuán)隊(duì)無(wú)法在不斷變化的技術(shù)環(huán)境中持續(xù)的驗(yàn)證以前的假設(shè)。一方面,我們喪失了很多采納新技術(shù)的機(jī)會(huì),更重要的是,團(tuán)隊(duì)需要能夠自己做出決策,承受自己決策的后果,并從中自己的決策中學(xué)習(xí)和成長(zhǎng)。
于是我們建議客戶能夠更多的分享上下文,而不是做決策,決策由團(tuán)隊(duì)來(lái)出,但是客戶保留否決的權(quán)力。如果客戶不認(rèn)可決策,在分享了原因之后,團(tuán)隊(duì)可以更好的提出別的方案。
去年C記的團(tuán)隊(duì)成功交付了一個(gè)新的產(chǎn)品,替換掉了好幾個(gè)花了三年多時(shí)間開(kāi)發(fā)的老產(chǎn)品。由于大多數(shù)的功能都已經(jīng)服務(wù)化,所以新產(chǎn)品的開(kāi)發(fā)只花了半年多時(shí)間就上線了。用客戶的話說(shuō),我們“able to leap tall buildings in a single bound”。這是正確的技術(shù)決策壓過(guò)了錯(cuò)誤技術(shù)決策之后的結(jié)果。
聆聽(tīng)、理解和尊重客戶約束,在技術(shù)決策上謹(jǐn)慎的前行,同時(shí),隨著技術(shù)的發(fā)展不斷去反思和檢查這些約束假設(shè)是否依然成立,從而持續(xù)的保持技術(shù)架構(gòu)演進(jìn)的方向與業(yè)務(wù)能力的對(duì)齊。
這是C記的故事的明線。
暗線:尋找時(shí)間之矢
有意思的是,如果倒過(guò)來(lái)讀C記的故事,會(huì)發(fā)現(xiàn)如果加以打磨,依然可是一個(gè)好故事:剛開(kāi)始的時(shí)候,客戶強(qiáng)控制技術(shù)決策,我們很suffer,然后,慢慢信任,逐漸放棄控制,***,我們贏得了客戶的信任,開(kāi)始獨(dú)立做決策,happy ending。雖然并不真實(shí),然而卻是一個(gè)更好的故事。
這就如同物理學(xué)定律中,時(shí)間是對(duì)稱的一樣,決策機(jī)制在這個(gè)故事中,也是時(shí)間對(duì)稱的,那么決策機(jī)制就并不是進(jìn)化的關(guān)鍵因素。然而在物理學(xué)中,熵增卻是時(shí)間之矢的指向,那么這里的時(shí)間之矢到底是什么?
從郭曉的演講中,我找到了想要的答案。
就如同交易成本的不斷降低,打破了壁壘,促進(jìn)了無(wú)數(shù)的人投身創(chuàng)業(yè)一樣,技術(shù)成本的不斷降低,技術(shù)壁壘的不斷降低,也會(huì)帶來(lái)更大范圍的結(jié)構(gòu)性變化。
比如說(shuō)自動(dòng)化測(cè)試技術(shù)干掉了傳統(tǒng)的測(cè)試部門(mén),數(shù)據(jù)庫(kù)的自動(dòng)化技術(shù)干掉了DBA,部署、運(yùn)營(yíng)的自動(dòng)化干掉了運(yùn)營(yíng),云化、安全內(nèi)嵌也許將要干掉采購(gòu)和安全。當(dāng)這些東西,因?yàn)榧夹g(shù)的進(jìn)步而標(biāo)準(zhǔn)化后,當(dāng)全面的數(shù)字化平臺(tái)in place之后,那么剩下的就僅僅是業(yè)務(wù)解決方案、技術(shù)棧與實(shí)現(xiàn)代碼了,在這個(gè)畫(huà)面里,不寫(xiě)代碼的傳統(tǒng)IT部門(mén)的麻瓜們是摻和不進(jìn)來(lái)的,于是把決策權(quán)交給開(kāi)發(fā)團(tuán)隊(duì)是一個(gè)自然而然的選擇……
| “If IT decision makers aren’t making the decisions any longer, who is calling the shots? The answer is developers. Developers are the most-important constituency in technology. They have the power to make or break businesses, whether by their preferences, their passions, or their own products.”——The New Kingmakers: How Developers Conquered the World |
于是隨著開(kāi)發(fā)團(tuán)隊(duì)的權(quán)力越來(lái)越大,意味著更大的責(zé)任,在這種新形勢(shì)下進(jìn)行技術(shù)決策保障也需要轉(zhuǎn)變思路。建立共同愿景,讓團(tuán)隊(duì)找到自己為了什么來(lái)工作的理由,找到自己的 purpose,把自己與日俱增的 power 用到合適的地方,這才是作為技術(shù)***應(yīng)該做的工作。
那么我們C記的故事的暗線也就浮出了水面,故事中所建立起的決策機(jī)制本質(zhì)上是在營(yíng)造安全感,我們的傳統(tǒng)企業(yè)客戶多多少少都有類似的決策機(jī)制(所謂的架構(gòu)組),說(shuō)白了是用增強(qiáng)控制來(lái)應(yīng)對(duì)新形勢(shì)下的心態(tài)失控。
然而,能控制得了的東西卻越來(lái)越少,技術(shù)之矢使控制本身越來(lái)越?jīng)]有價(jià)值,反而成了阻礙和包袱。在IT部門(mén)滅亡之前,也許就如同我們與C記故事的后半段一樣,在事情變好之前,會(huì)先變壞,但熵增的車輪,是不會(huì)停下的。
也正是這種反抗之力如此頑強(qiáng),每每當(dāng)傳統(tǒng)企業(yè)想要甩掉包袱往前快跑的時(shí)候,重重的阻礙卻并不來(lái)自于領(lǐng)導(dǎo)層。透過(guò)傳統(tǒng)企業(yè)繁冗的流程和層級(jí),背后是一個(gè)個(gè)“企業(yè)架構(gòu)師”、“系統(tǒng)架構(gòu)師”,一個(gè)個(gè)在這樣一種新的形勢(shì)下即將“被干掉”從而失去自己職業(yè)發(fā)展的人。
那么,你現(xiàn)在的職位是什么呢……
【本文是專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號(hào):思特沃克,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】
網(wǎng)站題目:又一個(gè)交付故事:技術(shù)決策的迷局
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/djdcceo.html


咨詢
建站咨詢
