導(dǎo)讀:近期業(yè)界有大量有關(guān)什么是一個(gè)好的 CTO 的討論,本文是最近一周在美國(guó)碼農(nóng)圈熱議的文章,高可用架構(gòu)翻譯轉(zhuǎn)載如下。
如果你還在整天寫文章辯論 PHP 是最好的語(yǔ)言,那說(shuō)明你還沒(méi)有成為一名真正的 CTO。
CTO 并不是團(tuán)隊(duì)中最瘋狂的黑客,編寫代碼是 CTO 最不重要的工作。 在我看來(lái), CTO 是一個(gè)能夠與其他技術(shù)人交流技術(shù)并引導(dǎo)他們更好的完成項(xiàng)目執(zhí)行的人。 另一方面, CTO 是一個(gè)保護(hù)技術(shù)團(tuán)隊(duì)免受外部干擾的人,并勇于在需要時(shí)承擔(dān)錯(cuò)誤責(zé)任的人。
在很多缺乏技術(shù)人員的創(chuàng)業(yè)公司里,成為 CTO 并非難事。然而 CTO 在這樣的公司里,很大程度上只是這個(gè)公司嚴(yán)重過(guò)度疲勞的碼農(nóng)。我主要想討論 CTO 這個(gè)位置需要什么樣的能力,并且如何養(yǎng)成這樣的能力。
我討厭技術(shù)部門只是實(shí)現(xiàn)了他人所設(shè)想的功能。 這樣技術(shù)部門與其說(shuō)是公司的部門,不如說(shuō)是一個(gè)技術(shù)外包團(tuán)隊(duì),因?yàn)樗?dú)立于決策過(guò)程。 正如 Camille Fournier 在“ CTO 的作用”一文中所說(shuō),“ CTO 必須保護(hù)技術(shù)團(tuán)隊(duì)不要成為一個(gè)不表達(dá)自己的需求和想法的純執(zhí)行部門。
如果公司需要一個(gè) CTO,那么這個(gè)人定義了對(duì)技術(shù)的長(zhǎng)期影響的愿景。現(xiàn)在越來(lái)越多的企業(yè)不是使用技術(shù),而是被技術(shù)定義。現(xiàn)代的一切都是建立在技術(shù)的基礎(chǔ)上,從零售電子商務(wù)到移動(dòng)應(yīng)用程序,當(dāng)有人從內(nèi)部推動(dòng)技術(shù)發(fā)展的時(shí)候,公司就會(huì)因此獲益良多。 CTO 不能讓技術(shù)團(tuán)隊(duì)僅僅成為實(shí)施者。
我曾經(jīng)和不少 CTO 討論過(guò)關(guān)于如何讓公司的其他部門尊重技術(shù)開(kāi)發(fā)的過(guò)程。例如,如何推廣單元測(cè)試。我會(huì)告訴他們:“這是我們要走的方向,這就是它將如何工作?!?/p>
總之,無(wú)論 CTO 說(shuō)什么,就應(yīng)該做成什么樣。如果 CTO 沒(méi)有這樣的技術(shù)決策權(quán)力,那他就不是 CTO,而是工程師小組長(zhǎng)。
CTO 是一個(gè)業(yè)務(wù)戰(zhàn)略的工作,它定義了公司內(nèi)部的技術(shù)方向。如果你討厭會(huì)議,討厭跟非技術(shù)人員交流,并認(rèn)為所有經(jīng)理都整天坐在一起,什么都不做,那 CTO 可能并不適合你。任何會(huì)議都是關(guān)于公司業(yè)務(wù)發(fā)展方向的討論,以及技術(shù)如何能夠幫助達(dá)到目標(biāo),或者有時(shí)技術(shù)如何為增長(zhǎng)創(chuàng)造新的機(jī)會(huì)。
因此, CTO 必須了解企業(yè)和客戶的需求。從我的經(jīng)驗(yàn)來(lái)看,很多技術(shù)人員喜歡遠(yuǎn)離“商業(yè)的東西”。然而,作為首席技術(shù)官,這卻是第一要事。技術(shù)決策不會(huì)在純粹的軟件或硬件問(wèn)題中產(chǎn)生。大多數(shù)時(shí)間 CTO 應(yīng)與產(chǎn)品經(jīng)理同步,以保證產(chǎn)品戰(zhàn)略與開(kāi)發(fā)進(jìn)度一致。
最終, CTO 會(huì)創(chuàng)造一個(gè)允許團(tuán)隊(duì)做牛逼事的環(huán)境。現(xiàn)在很大的問(wèn)題是找不到足夠的工程師,每個(gè)公司都在尋找工程師,高質(zhì)量工程師從來(lái)都很少,因此一個(gè)好的環(huán)境很重要。 CTO 應(yīng)該知道如何構(gòu)建好的環(huán)境,因?yàn)樗麄冊(cè)?jīng)是其中之一。如果團(tuán)隊(duì)想要做 TDD,或配對(duì)編程或臨時(shí)服務(wù)器, CTO 都應(yīng)該批準(zhǔn)。由工程師來(lái)衡量這些變化帶來(lái)的影響。
思考技術(shù)研發(fā)的財(cái)務(wù)影響也很重要。一個(gè)創(chuàng)業(yè)公司可能允許自己使用最新最酷炫的技術(shù),而一個(gè)更大規(guī)模的公司則多半不會(huì)如此選擇。這一切都應(yīng)該在投資回報(bào)的基礎(chǔ)上權(quán)衡,看看它給客戶帶來(lái)多少價(jià)值。因此,在大多數(shù)情況下,它是關(guān)于現(xiàn)有優(yōu)勢(shì)和更新已有的基礎(chǔ)設(shè)施的平衡,而不是花費(fèi)大量精力去做很難實(shí)現(xiàn)的工作。根據(jù) 80-20 規(guī)則,找到能通過(guò) 20% 的投入獲取 80% 的回報(bào)的那部分工作。
我曾經(jīng)對(duì)未來(lái)的 CTO 候選人進(jìn)行過(guò)訪談,他們會(huì)問(wèn):“為什么你堅(jiān)持這個(gè)老版本,為什么你沒(méi)有用 React.js 重寫?”
對(duì)不起,我認(rèn)為這不是一個(gè)好主意。有時(shí)候,老的遺留程序確實(shí)更難管理,但是重寫幾乎總是為客戶提供不了價(jià)值。
CTO 需要平衡團(tuán)隊(duì)力量,好鋼用在刀刃上。建立一個(gè)只想要觸摸新技術(shù)的團(tuán)隊(duì)是不可持續(xù)的。
構(gòu)建一個(gè)階段來(lái)實(shí)現(xiàn)你最重要的事情。例如,我認(rèn)為可靠性和安全性是任何軟件的兩個(gè)最重要的功能。因此,業(yè)務(wù)目標(biāo)的任何變化都與之相稱。對(duì)于一個(gè)非技術(shù)人員來(lái)說(shuō),掌握安全相關(guān)的知識(shí)顯然是不可能的。然而這樣很可能會(huì)導(dǎo)致公司追求的目標(biāo)會(huì)侵犯別人的隱私(安全性有問(wèn)題)。 CTO 的工作的一部分是處理這個(gè),并確保他們不會(huì)犯錯(cuò)。
雖然我做的是技術(shù),但是我認(rèn)為技術(shù)應(yīng)該是用戶不可見(jiàn)。 PHP 是否是最好的語(yǔ)言,對(duì)于很多開(kāi)發(fā)者是一個(gè)令人興奮的話題,但對(duì)于一個(gè)組織(公司)卻不是。我相信, 不關(guān)心這類事情是成為 CTO 的踏腳石——不過(guò)分關(guān)注技術(shù)細(xì)節(jié),而是尋找團(tuán)隊(duì)和其他一切。
成為 CTO 是關(guān)于實(shí)現(xiàn)更大技術(shù)影響的途徑,如何定義業(yè)務(wù)和如何幫助客戶。它有助于理解技術(shù)本身,但不僅如此。
本文由高可用架構(gòu)翻譯自 Juozas 'Joe' Kaziuk?nas 的 Becoming a CTO,原文地址:
https://juokaz.com/blog/becoming-a-cto
聯(lián)系客服