Thoughtworks 全球CTO:按需求構(gòu)建架構(gòu),過(guò)度工程只會(huì)“勞民傷財(cái)”

作者 | 冬梅
采訪嘉賓 | Rebecca Parsons,Thoughtworks 全球CTO

Thoughtworks 成立于 1993 年,目前已在近20個(gè)國(guó)家開(kāi)設(shè)辦事處,擁有1萬(wàn)多名員工。多年來(lái),Thoughtworks 一直在為敏捷軟件開(kāi)發(fā)、持續(xù)集成、持續(xù)交付、微服務(wù)、演進(jìn)架構(gòu)和數(shù)據(jù)網(wǎng)格等方面提供服務(wù),是最早為復(fù)雜軟件項(xiàng)目開(kāi)發(fā)敏捷的公司之一。

多年來(lái),Thoughtworks技術(shù)雷達(dá)峰會(huì)一直是業(yè)界知名的“技術(shù)風(fēng)向標(biāo)”。峰會(huì)由一群資深技術(shù)領(lǐng)導(dǎo)組成的技術(shù)顧問(wèn)委員會(huì)創(chuàng)建,他們定期開(kāi)會(huì)討論 Thoughtworks 的全球技術(shù)戰(zhàn)略以及對(duì)行業(yè)有重大影響的技術(shù)趨勢(shì)。

借此技術(shù)雷達(dá)峰會(huì)之際,InfoQ有幸采訪到了Thoughtworks 全球CTO Rebecca Parsons,請(qǐng)她來(lái)跟我們聊一聊技術(shù)雷達(dá)發(fā)布這么多年,希望給大家?guī)?lái)什么樣的價(jià)值?未來(lái)有哪些技術(shù)趨勢(shì)值得關(guān)注,以及一名技術(shù)人應(yīng)該如何保持技術(shù)前瞻性等話題。

在1999年加入Thoughtworks之前,Rebecca是一名計(jì)算機(jī)科學(xué)研究員和大學(xué)講師。完成碩士和博士學(xué)位后,她主要從事編譯器、程序優(yōu)化、分布式計(jì)算、程序設(shè)計(jì)語(yǔ)言、計(jì)算理論、機(jī)器學(xué)習(xí)和計(jì)算生物學(xué)等方面的研究。

2007年,她成為了Thoughtworks的首席技術(shù)官。除了深度技術(shù),她還倡導(dǎo)行業(yè)的多樣性和包容性,特別是增加編碼和STEM領(lǐng)域的女性數(shù)量。

以下為訪談實(shí)錄,InfoQ在不改變?cè)獾幕A(chǔ)上做了編輯。

InfoQ:很高興能有機(jī)會(huì)采訪您,能先向InfoQ的讀者介紹下您自己?jiǎn)幔?/p>

Rebecca:我是Thoughtworks公司的首席技術(shù)官,雖然不想承認(rèn),但我從事計(jì)算技術(shù)行業(yè)確實(shí)很久了。但我一直很享受這個(gè)過(guò)程,我覺(jué)得自己是那種典型的極客。

我的技術(shù)關(guān)注方向很廣,博士論文研究的是編程語(yǔ)言和編譯器優(yōu)化,在并發(fā)和分布式系統(tǒng)以及進(jìn)化計(jì)算、特別是遺傳算法方面也做過(guò)很多工作。另外還有計(jì)算生物學(xué),總之我對(duì)計(jì)算有著廣泛的興趣。

我是1999年12月加入Thoughtworks的,從2000年正式開(kāi)始了我的工作。最近,我參與撰寫了名為《Building Evolutionary Architectures》的新書,目前正在做第二版修訂。

InfoQ:技術(shù)雷達(dá)峰會(huì)持續(xù)發(fā)布了多年,您希望技術(shù)雷達(dá)給大家?guī)?lái)什么樣的價(jià)值?

Rebecca:其實(shí)技術(shù)雷達(dá)是大家合作的成果。最早是有內(nèi)部銷售人員問(wèn)我們,目前哪些技術(shù)最酷。我們就這個(gè)話題認(rèn)真討論了一番。實(shí)際上,當(dāng)時(shí)擔(dān)任技術(shù)顧問(wèn)委員會(huì)技術(shù)助理的Darren Smith才應(yīng)該是“技術(shù)雷達(dá)”這個(gè)概念的提出者。但大家不會(huì)分那么細(xì),基本就是群策群力的結(jié)果。當(dāng)時(shí)有位委員會(huì)成員在跟一位英國(guó)朋友交談,對(duì)方說(shuō)“我很好奇Thoughtworks在雷達(dá)里盯著什么”,這句話給了我們最大的啟發(fā)。

于是技術(shù)雷達(dá)就這么誕生了。我覺(jué)得它給大家?guī)?lái)的價(jià)值主要分三點(diǎn)。首先,技術(shù)雷達(dá)覆蓋全世界,所以這里匯聚了來(lái)自印度、中國(guó)、巴西、北美乃至歐洲的技術(shù)資訊,世界各地的技術(shù)人都有機(jī)會(huì)做出貢獻(xiàn)。但我們也發(fā)現(xiàn),有時(shí)候大家對(duì)同一種技術(shù)的觀點(diǎn)會(huì)大相徑庭。我還記得,有次一個(gè)英國(guó)小組想叫停某項(xiàng)技術(shù),但另一個(gè)印度小組則覺(jué)得應(yīng)該大力推廣。在深入研究之后,我們發(fā)現(xiàn)雙方面向的客戶完全不同,所以對(duì)技術(shù)的使用方式也差異巨大。所以我才覺(jué)得,必須要始終保持這樣的全球視角。

第二點(diǎn),我覺(jué)得是扎實(shí)的實(shí)踐經(jīng)驗(yàn)。這種經(jīng)驗(yàn)不可能單靠跟供應(yīng)商或者分析師聊天就得到。說(shuō)明文檔里呈現(xiàn)的當(dāng)然也是經(jīng)驗(yàn),也可以很好用,但它還沒(méi)有真正轉(zhuǎn)化成你自己的財(cái)富、你也不一定能夠用得得心應(yīng)手。

第三就是,我們會(huì)明確表達(dá)自己的態(tài)度??傮w上,技術(shù)雷達(dá)是更支持開(kāi)源技術(shù)、相對(duì)弱化商業(yè)產(chǎn)品的,而且都是用實(shí)實(shí)在在的安全性和數(shù)據(jù)說(shuō)話。畢竟如果沒(méi)有好的隱私保護(hù)手段和鮮明的架構(gòu)系統(tǒng)設(shè)計(jì)思路,就不可能建立起優(yōu)秀的架構(gòu)方案。

這就是我們?cè)诩夹g(shù)雷達(dá)中的一貫堅(jiān)持。

InfoQ:您從1999年就加入了Thoughtworks,這么多年的工作經(jīng)歷中,您感受最深的技術(shù)變革是什么?

Rebecca:我感受最深的技術(shù)變革有兩次,而且區(qū)別很大。

剛開(kāi)始接觸商業(yè)技術(shù)工作時(shí),我發(fā)現(xiàn)如果不借助數(shù)據(jù)庫(kù),我們甚至沒(méi)法把任何一條數(shù)據(jù)寫進(jìn)磁盤里。當(dāng)時(shí),大家都覺(jué)得一切數(shù)據(jù)都是彼此相關(guān)的,所以會(huì)把數(shù)據(jù)全都“塞進(jìn)”關(guān)系數(shù)據(jù)庫(kù)。后來(lái)那些互聯(lián)網(wǎng)巨頭,谷歌啦、Netflix啦,他們的出現(xiàn)才真正打破了這種心態(tài),讓人們開(kāi)始相信,并不是所有數(shù)據(jù)之間都有關(guān)聯(lián)。

比方說(shuō),我們也可以把圖存在傳統(tǒng)數(shù)據(jù)庫(kù)里,但這并不能體現(xiàn)圖屬性。而在產(chǎn)品目錄這類新技術(shù)中,所容納的屬性就豐富得多了,也能被輕松放進(jìn)文檔數(shù)據(jù)庫(kù)當(dāng)中。所以對(duì)我來(lái)說(shuō),這標(biāo)志著我們對(duì)計(jì)算的觀點(diǎn)有了根本性的轉(zhuǎn)變。就是說(shuō)在有了關(guān)系數(shù)據(jù)庫(kù)之后,我們又遇到了新的問(wèn)題:我們需要保留什么樣的數(shù)據(jù)?要如何查詢這些數(shù)據(jù)?哪種持久性技術(shù)更適用?這些問(wèn)題的提出,代表著真正的思維轉(zhuǎn)變。

至于第二個(gè)變革,就是當(dāng)我們有了持續(xù)交付的基礎(chǔ)之后,就會(huì)立足整個(gè)部署管道、測(cè)試自動(dòng)化體系嘗試推廣自動(dòng)化。這也讓我們闖出了一條新的,以往根本無(wú)法想象的試驗(yàn)性構(gòu)建道路。以前,沒(méi)人敢想象微服務(wù)架構(gòu)這種東西——手動(dòng)錄入幾十上百項(xiàng)微服務(wù)的部署腳本,根本就不可能也不安全。過(guò)多服務(wù)代表著我們向架構(gòu)中引入了過(guò)多風(fēng)險(xiǎn),所以沒(méi)人這么干。也正是系統(tǒng)部署的難度太大,才讓我們沒(méi)法在系統(tǒng)組織方面做出天馬行空的探索。

但現(xiàn)在這些限制都被打破了,只要遵循持續(xù)交付原則,就能把系統(tǒng)拆分成一個(gè)個(gè)模塊。哪怕面對(duì)幾百個(gè)模塊,自動(dòng)化技術(shù)也能把部署難度始終維持在很低的水平。畢竟計(jì)算機(jī)可不在乎自己要干一件事,還是一百件事。于是乎,我們不用再考慮約束條件,可以純粹從部署和運(yùn)營(yíng)的角度選擇最適合的架構(gòu)解決方案。

所以對(duì)我來(lái)說(shuō),這就是計(jì)算技術(shù)領(lǐng)域出現(xiàn)的兩次根本性轉(zhuǎn)變。有了這些質(zhì)變,其他的量變也會(huì)接踵而來(lái)。

按需求構(gòu)建架構(gòu),過(guò)度工程只會(huì)“勞民傷財(cái)”

InfoQ:在數(shù)字化轉(zhuǎn)型大背景下,除了基礎(chǔ)軟件一些熱門話題外,人們也比較關(guān)注可進(jìn)化的架構(gòu),您認(rèn)為構(gòu)建“可進(jìn)化的”、可面向未來(lái)(十年)發(fā)展的架構(gòu)的關(guān)鍵是什么?

Rebecca:要說(shuō)可進(jìn)化架構(gòu),我覺(jué)得最重要的一點(diǎn)就是,關(guān)注自己想通過(guò)架構(gòu)實(shí)現(xiàn)怎樣的結(jié)果。具體實(shí)現(xiàn)永遠(yuǎn)是為結(jié)果服務(wù)的。

作為一名企業(yè)架構(gòu)師,我的工作就是確定到底需要把可擴(kuò)展性、安全性或者彈性做到什么程度。我不會(huì)具體指定必須使用哪種負(fù)載均衡器,只會(huì)定下合理的負(fù)載強(qiáng)度目標(biāo)。所以如果大家能把注意力從具體實(shí)現(xiàn)轉(zhuǎn)向規(guī)范性目標(biāo)時(shí),最終成果反而會(huì)更好,因?yàn)檫@樣系統(tǒng)構(gòu)建團(tuán)隊(duì)既有靈活空間、又有明確方向,他們自己知道怎么做選擇。彈性啦、可擴(kuò)展性啦,這些都是客觀的衡量標(biāo)準(zhǔn)。

有了這樣的指引,系統(tǒng)團(tuán)隊(duì)就能權(quán)衡不同的架構(gòu)選擇會(huì)給結(jié)果造成怎樣的影響。而且面對(duì)新技術(shù),大家還是會(huì)以結(jié)果倒推方案 — 符合架構(gòu)需求,那就用;如果不符合,那再新的技術(shù)也沒(méi)有意義。所以這樣我們的架構(gòu)會(huì)更靈活,我們可以專注于需要實(shí)現(xiàn)的目標(biāo),不再糾結(jié)于特定時(shí)間、特定位置到底要用哪些特定方案。

這就是構(gòu)建可進(jìn)化架構(gòu)時(shí),必須完成的心態(tài)轉(zhuǎn)變——以結(jié)果為導(dǎo)向。我不在乎你具體怎么做,但它必須能達(dá)成特定的正常運(yùn)行時(shí)間或者可擴(kuò)展性。要求明確之后,身處一線的團(tuán)隊(duì)更了解該怎么做取舍。他們可以自由選擇技術(shù),決定自己怎么把目標(biāo)變成現(xiàn)實(shí)。

InfoQ:所以您的意思是,一定要防止過(guò)度工程,對(duì)吧?

Rebecca:沒(méi)錯(cuò),但很遺憾,我經(jīng)常見(jiàn)到過(guò)度工程、過(guò)度設(shè)計(jì)的系統(tǒng)。不是每套系統(tǒng)都需要99.999%的可靠性,也不是每套系統(tǒng)都需要應(yīng)付谷歌那樣的負(fù)載規(guī)模。我們構(gòu)建的系統(tǒng)能滿足自身需求和合理預(yù)期就夠了,干嘛非要做得跟Netflix一樣夸張?

InfoQ:那您能不能分享幾個(gè)過(guò)度工程、產(chǎn)出又不高的案例?

Rebecca:在關(guān)于可進(jìn)化架構(gòu)的演講中,我最愛(ài)舉的例子,就是我們當(dāng)初在英國(guó)開(kāi)設(shè)辦事處的故事。我們當(dāng)時(shí)有家英國(guó)客戶,他們運(yùn)行著一套三明治外賣系統(tǒng)。每天早上,食客可以在系統(tǒng)上下單,再由他們負(fù)責(zé)送貨,客戶的信用卡信息也不會(huì)被存儲(chǔ)到他們的系統(tǒng)里。

我們的辦公室就在倫敦中心區(qū),所以只要這套系統(tǒng)出了問(wèn)題,我們下樓看看門口那些三明治店,就能馬上發(fā)現(xiàn)端倪。這根本就不涉及保密的問(wèn)題。我每天早上都會(huì)下單點(diǎn)個(gè)三明治加雞蛋,訂單里沒(méi)有個(gè)人身份信息、也沒(méi)有信用卡信息,所以完全不需要加密。即使系統(tǒng)停機(jī)維護(hù),我也只需要下樓親自去趟門店就行,根本沒(méi)啥影響。對(duì)于這么簡(jiǎn)單的系統(tǒng),用rails之類的開(kāi)發(fā)就夠了。客戶創(chuàng)建的訂單會(huì)留存一段時(shí)間,再到當(dāng)周末集中刪除??傊?,這天然就是一套最最簡(jiǎn)單的系統(tǒng),沒(méi)必要硬塞一些復(fù)雜的功能進(jìn)去。

我還經(jīng)常提及另一個(gè)案例。當(dāng)時(shí)我們?yōu)榭蛻魳?gòu)建了一套交易系統(tǒng)——一聽(tīng)到交易系統(tǒng),很多人首先就會(huì)想到“高頻交易”,就是頻率超高、延遲極低之類的。但大部分交易系統(tǒng)其實(shí)沒(méi)那么復(fù)雜,每天只需要處理100次左右追蹤交易。所以性能并不是大問(wèn)題,反倒是交易成功率才是重點(diǎn),畢竟每筆交易的金額都高達(dá)數(shù)十億美元。

所以情況就跟第一印象完全不同了,這類交易系統(tǒng)跟高頻交易系統(tǒng)根本不在一個(gè)次元。所以我們還是要回歸眼前的現(xiàn)實(shí)問(wèn)題,思考怎么解決、為系統(tǒng)引入哪些特性,這才是根本。

InfoQ:面對(duì)當(dāng)前的數(shù)字化轉(zhuǎn)型潮流,傳統(tǒng)和金融企業(yè)在數(shù)字化過(guò)程中往往對(duì)分布式架構(gòu)或微服務(wù)架構(gòu)望而生畏,您給他們的建議是什么?

Rebecca:我經(jīng)常引用Martin Fowler寫過(guò)的一篇文章,談的就是微服務(wù)架構(gòu)的適用門檻。對(duì),微服務(wù)架構(gòu)相當(dāng)復(fù)雜,是有適用門檻的。

我自己也在一篇文章中,解釋過(guò)為什么我們永遠(yuǎn)不會(huì)在技術(shù)雷達(dá)上使用微服務(wù)。雖然微服務(wù)確實(shí)能解決某些特定問(wèn)題,但架構(gòu)本身的復(fù)雜性卻大大增加了。就像你提到的分布式架構(gòu),它們真的非常復(fù)雜。如果采用結(jié)構(gòu)更簡(jiǎn)單的其他高質(zhì)量模式,很多故障壓根就不會(huì)發(fā)生。

所以組織得先明確自己能從微服務(wù)架構(gòu)中得到哪些好處。這些分布式架構(gòu)或者說(shuō)微服務(wù)架構(gòu)當(dāng)然很有價(jià)值,但你得證明由此帶來(lái)的額外復(fù)雜性物有所值。各個(gè)微服務(wù)可以獨(dú)立擴(kuò)展、功能靈活,這些都是真實(shí)的優(yōu)點(diǎn),但同時(shí)也會(huì)給IT部門帶來(lái)更大的運(yùn)營(yíng)負(fù)擔(dān)。

我之前也提到過(guò),持續(xù)交付才是真正的核心,所以如果保證不了這一點(diǎn),微不微服務(wù)根本沒(méi)有意義。所以如果IT部門已經(jīng)非常成熟,那不妨放心大膽地去用微服務(wù)架構(gòu);但如果原本的模式就已經(jīng)完全夠用,何必還要自尋煩惱呢?萬(wàn)一IT部門根本搞不定微服務(wù)模式,那只會(huì)把本來(lái)好好的業(yè)務(wù)弄得一團(tuán)糟。

所以還是認(rèn)真想想微服務(wù)架構(gòu)到底有什么好處,在組織里到底能不能發(fā)揮不可替代的價(jià)值。把收益和成本權(quán)衡一下,相信大家自有答案。

構(gòu)建負(fù)責(zé)任的技術(shù)迫在眉睫

InfoQ:您在技術(shù)雷達(dá)峰會(huì)上談到要構(gòu)建負(fù)責(zé)任的技術(shù),怎么理解您這個(gè)演講主題?“危險(xiǎn)技術(shù)”不是近幾年才出現(xiàn)的,之前也有,那么為什么會(huì)選擇在這樣的時(shí)期談這樣的話題?

Rebecca:對(duì)我來(lái)說(shuō),技術(shù)的最大意義在于,它能給人們的生活帶來(lái)怎樣的改變。我倒是沒(méi)有被技術(shù)所累,最多也就是根據(jù)亞馬遜上的推薦買東西,而且我還是挺喜歡那些推薦的。真的沒(méi)什么大問(wèn)題。但其他一些關(guān)鍵領(lǐng)域,比如醫(yī)療決策、刑事司法系統(tǒng)、信用評(píng)分、欺詐檢測(cè)、人臉識(shí)別等等,與此相關(guān)的錯(cuò)誤會(huì)造成嚴(yán)重后果,我們自然不能對(duì)相應(yīng)的技術(shù)掉以輕心。

作為技術(shù)人員,我們需要考慮一旦自己犯了錯(cuò),最終會(huì)造成怎樣的影響。我們能承擔(dān)后果嗎?我們真的了解系統(tǒng)訓(xùn)練中所使用的各種數(shù)據(jù)嗎?關(guān)于偏見(jiàn),我經(jīng)常會(huì)舉這樣一個(gè)例子。雖然偏見(jiàn)并不一定就有惡意,但影響仍然不容忽視。一家醫(yī)院打算訓(xùn)練一套模型,指導(dǎo)醫(yī)學(xué)生們?nèi)绾卧O(shè)計(jì)患者的術(shù)后恢復(fù)方案,特別是需不需要將患者送入重癥監(jiān)護(hù)室(ICU)。結(jié)果,數(shù)據(jù)集中的素材對(duì)哮喘患者存在偏見(jiàn),所以會(huì)自動(dòng)將所有哮喘患者都送進(jìn)ICU。

事實(shí)證明,這套數(shù)據(jù)集里根本就沒(méi)有關(guān)于哮喘患者的信息,這些患者是在不同的醫(yī)療系統(tǒng)下接受診療的。但院方在訓(xùn)練模型時(shí)并沒(méi)有考慮到這一點(diǎn),所以模型對(duì)哮喘癥狀一無(wú)所知。隨著時(shí)間推移,如果有醫(yī)院真的直接使用這種模型,那么肯定會(huì)引發(fā)很多“藥不對(duì)癥”的問(wèn)題。這套模型對(duì)哮喘病人當(dāng)然沒(méi)有惡意偏見(jiàn),只是院方?jīng)]有認(rèn)真篩查模型訓(xùn)練所使用的數(shù)據(jù)集。我們?cè)趯?shí)際工作中,接觸過(guò)很多出現(xiàn)類似問(wèn)題的系統(tǒng),所以我才覺(jué)得負(fù)責(zé)任技術(shù)是個(gè)非常重要的議題。

好在現(xiàn)在的我們還擁有關(guān)于理性決策的集體記憶,及時(shí)糾正未為晚矣。

InfoQ:在這個(gè)話題下,您認(rèn)為有哪些有負(fù)面效應(yīng)的技術(shù)應(yīng)該著重關(guān)注和探討?

Rebecca:其實(shí)萬(wàn)事萬(wàn)物都有負(fù)面效應(yīng)。我覺(jué)得最大的負(fù)面效應(yīng),其實(shí)來(lái)自因?yàn)閷?duì)底層數(shù)據(jù)的不理解而做出的錯(cuò)誤決策。不單是做出錯(cuò)誤決策,甚至?xí)?qiáng)化這些錯(cuò)誤、讓下一次做出錯(cuò)誤決策的可能性提高。畢竟強(qiáng)化學(xué)習(xí)的基本原理就在于此。

而從另一個(gè)方面出發(fā),隨著自動(dòng)化水平越來(lái)越高,很多系統(tǒng)當(dāng)中發(fā)生問(wèn)題的速度也越來(lái)越快。如果整個(gè)循環(huán)中還有人的要素,那至少要等他們按下“確認(rèn)”按鈕、或者輸入某些指令。但如果是機(jī)器對(duì)機(jī)器交互,這些延遲就將不復(fù)存在。這樣我們得到的就是快速升級(jí)的反饋循環(huán),錯(cuò)誤會(huì)令交易業(yè)務(wù)的公司在幾分鐘內(nèi)就宣告破產(chǎn)。這就是算法出錯(cuò)造成的危害,整個(gè)組合將會(huì)瞬間灰飛煙滅。而如果其中有人的參與,這些問(wèn)題就不會(huì)發(fā)生。

所以我們必須要建立起這樣一種更可靠的自動(dòng)化循環(huán),否則早晚會(huì)發(fā)生意想不到的情況、那種我們根本無(wú)法預(yù)測(cè)自動(dòng)化系統(tǒng)會(huì)作何反應(yīng)的情況。自動(dòng)駕駛就是典型的例子。目標(biāo)似乎很簡(jiǎn)單:讓汽車沿著高速公路行駛,躲避其他汽車并保持在車道中央。這事很難嗎?但行駛過(guò)程中往往會(huì)出現(xiàn)一些意外狀況,比如一只鹿突然竄上馬路,或者有人破壞了行駛標(biāo)識(shí)、導(dǎo)致系統(tǒng)無(wú)法正常識(shí)別。對(duì)于這類全自動(dòng)化系統(tǒng),我們必須全面思考它們犯錯(cuò)的可能性,并在系統(tǒng)中設(shè)置斷路器,確保能在意外后果發(fā)生前將其關(guān)停。

InfoQ:技術(shù)帶來(lái)的負(fù)面效應(yīng)常常是不可預(yù)測(cè)的,那么您認(rèn)為對(duì)于一般企業(yè)來(lái)說(shuō)可以采取哪些管理措施或框架、工具讓技術(shù)變得更加負(fù)責(zé)?

Rebecca:確實(shí),所以我們才發(fā)布了《負(fù)責(zé)任技術(shù)手冊(cè)》,大家可以在我們的網(wǎng)站上看到。其中包含一系列促進(jìn)技術(shù),能幫助開(kāi)發(fā)團(tuán)隊(duì)有效打破自己的固有觀點(diǎn),從其他不同技術(shù)人員的視角看待問(wèn)題。是的,在討論負(fù)責(zé)任的技術(shù)時(shí),我們會(huì)從問(wèn)題出發(fā)。

我們會(huì)先搞清楚問(wèn)題是什么,再看看問(wèn)題會(huì)影響到哪些人,也就是我們需要幫助的對(duì)象。我們還會(huì)站在受影響者的立場(chǎng)上思考,比如他們可能需要什么?他們可能有哪些顧慮?這份手冊(cè)中的方法并不全是我們自己想出來(lái)的,我們只是收集了這些思路并整合起來(lái),同時(shí)注明相應(yīng)來(lái)源。有了如此豐富的促進(jìn)技術(shù),我們就能更全面地審視自己的技術(shù)選擇、考慮這些選擇可能產(chǎn)生的影響。畢竟技術(shù)本身沒(méi)有立場(chǎng),所以無(wú)法預(yù)判實(shí)施之后會(huì)帶來(lái)哪些意外后果。

這就是負(fù)責(zé)任技術(shù)理念的意義所在。作為技術(shù)人員,我們至少有責(zé)任想得遠(yuǎn)一些,預(yù)測(cè)技術(shù)實(shí)施可能引發(fā)哪些意外后果。也許沒(méi)什么后果,也許能改善產(chǎn)品并擴(kuò)大目標(biāo)市場(chǎng),這些都是比較好的結(jié)果。但某些意外后果也可能傷害到其他人,也許有辦法可以提前預(yù)防或者緩解,這就是我們身為技術(shù)人的責(zé)任。

“對(duì)技術(shù)的熱愛(ài),讓我走到了今天”

InfoQ:看到您從高中開(kāi)始接觸編程,最早接觸編程的契機(jī)是什么?

Rebecca:當(dāng)時(shí)我在學(xué)代數(shù),我們的高中數(shù)學(xué)老師正好在當(dāng)?shù)卮髮W(xué)里學(xué)習(xí)編程。他買了本教科書,記得當(dāng)時(shí)是1974年,我正好在讀高中。他也送給我一本教材。那時(shí)候?qū)W校里有一臺(tái)鍵盤穿孔機(jī)。不知道為什么,我們學(xué)校從來(lái)沒(méi)開(kāi)過(guò)這門課,但我可以用這臺(tái)機(jī)器編寫程序再錄入到打孔卡里。之后,代數(shù)老師會(huì)把我的卡片帶到大學(xué),在上課的時(shí)候試著跑一跑,我就這么學(xué)會(huì)了編程。靠著代數(shù)老師學(xué)編程的這本教材,我第一次接觸到了編程。

InfoQ:那你第一次編程的時(shí)候感覺(jué)怎么樣,喜歡嗎?

Rebecca:喜歡啊。我很少回憶過(guò)去,但我還清楚記得那種能用電腦解決問(wèn)題的感覺(jué)。這是一種截然不同的問(wèn)題思考方式,真的很令人著迷。順著這種方式,我們就得到了程序,我特別喜歡這種感覺(jué)。

InfoQ:那個(gè)時(shí)候,你認(rèn)為數(shù)據(jù)會(huì)改變世界嗎?

Rebecca:與其說(shuō)是數(shù)據(jù),不如說(shuō)是技術(shù)可以改變世界,當(dāng)時(shí)的我倒是相信編程和技術(shù)可以改變世界。

因?yàn)檫@些是實(shí)實(shí)在在的工作,能讓事情變得更好。我們可以用程序處理賬戶、應(yīng)收賬款、工資單之類的工作。對(duì)于這些簡(jiǎn)單的結(jié)構(gòu)化任務(wù),當(dāng)時(shí)的人們還沒(méi)法直接編寫公式統(tǒng)一解決。但程序可以,所以這是種革命性的飛躍、能夠讓這個(gè)世界變得更美好。聽(tīng)起來(lái)有點(diǎn)幼稚,但那時(shí)候我們確實(shí)是這么認(rèn)為的。

InfoQ:您所關(guān)注的技術(shù)范疇也很全面,您是如何保持學(xué)習(xí)的熱情以及維持住技術(shù)“前瞻性”的?

Rebecca:主要是因?yàn)槲疑磉吙傆幸蝗和瑯訜釔?ài)技術(shù)的伙伴?,F(xiàn)在我還主持著一檔播客節(jié)目,我特別喜歡錄制播客的過(guò)程,因?yàn)榇蠹铱梢宰谝黄?,共同討論彼此關(guān)注的某些技術(shù)話題。

在這一個(gè)小時(shí)里,我會(huì)以主持人的身份交談、感受他人對(duì)于某些技術(shù)細(xì)節(jié)的激動(dòng)之情。所以我們才會(huì)每年舉行兩次技術(shù)雷達(dá)大會(huì),在這里大家可以接觸到更廣泛的技術(shù)工具、平臺(tái)和方法。這就是我保持技術(shù)熱情的方式。

InfoQ:要保持技術(shù)前瞻性,我猜唯一的訣竅就是保持學(xué)習(xí)、永不止步,對(duì)嗎?

Rebecca:沒(méi)錯(cuò)。

InfoQ:作為Thoughtworks的CTO,這個(gè)角色對(duì)您來(lái)說(shuō)所面臨的挑戰(zhàn)來(lái)自哪里?

Rebecca:我剛開(kāi)始從事技術(shù)工作時(shí),CTO的身份多少有點(diǎn)像記者,只需要在操作系統(tǒng)、編譯器、數(shù)據(jù)庫(kù)和應(yīng)用程序當(dāng)中做選擇就行。但現(xiàn)在的技術(shù)領(lǐng)域太過(guò)廣泛,所以記者型的CTO已經(jīng)不成立了,任何特定類型的技術(shù)都會(huì)引發(fā)相應(yīng)類型的問(wèn)題。

比如說(shuō),當(dāng)我們面對(duì)物聯(lián)網(wǎng)系統(tǒng),那有些問(wèn)題就可以直接忽略;但在使用云端服務(wù)器時(shí),同樣的問(wèn)題又變得至關(guān)重要。整個(gè)技術(shù)生態(tài)已經(jīng)比當(dāng)初復(fù)雜太多了。所以我會(huì)從思路、成效等多個(gè)角度審視這些技術(shù),理解它的內(nèi)涵。

Thoughtworks公司體量不算太大,目前有11000名員工,但也已經(jīng)不小了。所以我們必須對(duì)自己的選擇、對(duì)可能給客戶帶來(lái)重大影響的技術(shù)保持嚴(yán)謹(jǐn)且挑剔的態(tài)度。我一直在擔(dān)心自己的某些技術(shù)判斷會(huì)不會(huì)出錯(cuò)。我最怕自己做的決定搞得客戶們?cè)孤曒d道,絕對(duì)不能出現(xiàn)這樣的事情。

總之,隨著技術(shù)環(huán)境變得愈發(fā)復(fù)雜,客戶使用技術(shù)的方式也越來(lái)越廣泛。多年以來(lái),大家已經(jīng)習(xí)慣了在特定類型的應(yīng)用場(chǎng)景中部署傳感器網(wǎng)絡(luò),但以往這些系統(tǒng)只適用于某些特定問(wèn)題,現(xiàn)在卻需要朝著普遍適用的方向發(fā)展。身為CTO,我覺(jué)得現(xiàn)在選擇技術(shù)方案的難度確實(shí)越來(lái)越大了。

InfoQ:大部分開(kāi)發(fā)者/工程師工作幾年之后,都會(huì)面臨是否轉(zhuǎn)做技術(shù)管理的選擇。很多人會(huì)對(duì)此感到迷茫,他們的問(wèn)題可能包括“要不要轉(zhuǎn)技術(shù)管理”“我是否適合做技術(shù)管理”或“如果不做管理,繼續(xù)在一線做開(kāi)發(fā)有前途嗎”等等。開(kāi)發(fā)者如何做出正確的選擇,不同的選擇分別有哪些方面需要注意,能否基于您的經(jīng)驗(yàn)(包括您自身的經(jīng)驗(yàn)和您所管理的團(tuán)隊(duì)成員的經(jīng)驗(yàn)),給大家一些建議?

Rebecca:這個(gè)要分幾點(diǎn)來(lái)看。首先,有些人比較像獨(dú)行俠,我行我素、不愛(ài)跟團(tuán)隊(duì)打交道。但也有些人特別喜歡在團(tuán)隊(duì)中工作,卻并不愿意承擔(dān)管理事務(wù)。這些都很正常,但有時(shí)候卻會(huì)限制一個(gè)人的發(fā)展空間。

這也是大家從事技術(shù)管理工作的最大障礙。身為開(kāi)發(fā)人員的時(shí)候,我們面對(duì)的都是能夠快速反饋的問(wèn)題:代碼編譯成功了嗎?測(cè)試通過(guò)了嗎?一個(gè)個(gè)非常具體的指標(biāo)可以清晰衡量工作成效,讓我們感受到自己的進(jìn)步。如果測(cè)試沒(méi)能通過(guò),我們就回頭修復(fù),也無(wú)所謂。但身為技術(shù)管理者,這種比較直接的成功開(kāi)始逐漸消失,我們可能在很長(zhǎng)一段時(shí)間里都無(wú)法確定自己做的事對(duì)不對(duì)。這對(duì)很多人來(lái)說(shuō)最難適應(yīng),因?yàn)樗麄兞?xí)慣了自己做對(duì)的事、而不是指導(dǎo)別人去做對(duì)的事。

我覺(jué)得這確實(shí)需要重大的心態(tài)轉(zhuǎn)變,但回到之前你提到的保持技術(shù)熱情的問(wèn)題。我覺(jué)得大家就算走上了技術(shù)管理崗位,也仍然需要保持住技術(shù)水平,這樣對(duì)工作更有幫助。也只有這樣,技術(shù)管理者才能區(qū)分技術(shù)的好壞,理解團(tuán)隊(duì)成員有哪些不足、他們面臨怎樣的問(wèn)題、又該如何提供幫助。

所以在我看來(lái),不管是做純技術(shù)還是涉足管理,對(duì)技術(shù)保持熱情都是最重要的前提。

InfoQ:開(kāi)發(fā)者這個(gè)行業(yè)里其實(shí)男性從業(yè)者居多,但您做到了CTO,也有不少著作,建立了非凡成就,多年來(lái),您是如何平衡事業(yè)和家庭的?是否能給大家一些女性成長(zhǎng)上的指引或心得?

Rebecca:女性在科技行業(yè)的發(fā)展道路仍然很艱難。我是個(gè)鐵桿極客,所以從沒(méi)動(dòng)過(guò)退出的念頭,唯知一路奔馳。但對(duì)其他很多女性,這些阻礙確實(shí)會(huì)影響她們的感受、甚至迫使她們退出。要想堅(jiān)持下來(lái),最重要的還是對(duì)持續(xù)學(xué)習(xí)新事物的那種強(qiáng)烈期待吧。另外,培養(yǎng)起堅(jiān)守自我價(jià)值、忽略噪音的能力也很有幫助。

真正讓我堅(jiān)持下來(lái)的,還是對(duì)技術(shù)的熱愛(ài)。我喜歡學(xué)習(xí)技術(shù),探索技術(shù)的使用方式。

我喜歡學(xué)習(xí)新技術(shù)、喜歡跟大家一起工作。對(duì)于自己熱愛(ài)的事物,我們同樣得做出權(quán)衡,弄清楚哪些最重要。讓我感到遺憾的是,很多男性技術(shù)工作者可以出于豐厚的報(bào)酬和有趣的工作內(nèi)容堅(jiān)持下來(lái),同時(shí)期待能有更大的上升空間;但對(duì)于女性,他們的評(píng)判標(biāo)準(zhǔn)又變了,似乎好工作突然就變得不那么好了。所以在技術(shù)場(chǎng)合下看到女性,很多人的第一反應(yīng)會(huì)覺(jué)得對(duì)方是秘書,“給我來(lái)杯咖啡”這種。我就遇到過(guò)類似的情況,他們覺(jué)得出現(xiàn)在辦公室里的中年女性,肯定不可能是搞技術(shù)。

所以如果大家對(duì)技術(shù)像我一樣充滿熱情,那就請(qǐng)堅(jiān)持下來(lái),這一切都是值得的。但如果在你眼中,這單純只是一份工作,那不如去找個(gè)項(xiàng)目經(jīng)理之類薪酬差不多的崗位。確實(shí),在技術(shù)行業(yè)里女性還是會(huì)多少受到一點(diǎn)歧視和冒犯,這個(gè)是有的。

總之,現(xiàn)在整個(gè)行業(yè)在多樣性和包容性方面已經(jīng)做得越來(lái)越好了。但如果各位女性朋友對(duì)技術(shù)沒(méi)有熱情、只是單純想找份好工作,那可能還是不太適合。

InfoQ:非常感謝您接受我們的采訪!

Rebecca:謝謝。


原文鏈接:https://www.infoq.cn/article/weyXNTEtOFXa1sF6dqe5

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容