摘要:CTO,程序員職業發展的重要方向。不過,想到成為一名好的 CTO,不僅需要有技術前瞻性、優秀的管理能力、敏銳的商業嗅覺,更重要的是自身技術實力一定要夠強。
原文鏈接:https://blog.southparkcommons.com/your-cto-should-actually-be-technical/
聲明:本文為 CSDN 翻譯,未經允許禁止轉載。
CTO/VPE應該具備怎樣的技術水平?你可能認為這個問題的答案不言而喻,CTO(首席技術官)或VPE(工程副總裁)不都是技術人員嗎?
然而,你知道有多少CTO/VPE不懂技術嗎?這是現如今許多科技公司管理層普遍存在的一個怪異之處。工程團隊的發展每步入一個新階段,就會創造一個新的管理層,這些負責人是從實際的技術工作中抽離出來的。然而,這些人選必須能夠勝任高層管理的任務,因此常常導致技術能力最強的候選人落選。
CTO、VPE 為什麼要懂技術?
這有什麼問題嗎?面對最後期限迫在眉睫,首席技術官也應該加班加點地寫代碼?還是擔任系統的「首席架構師」?VPE 是否需要具備出色的技術洞察力?還是說,我們本不應該要求管理層領導具備卓越的技術力?
當然不是。公司的技術領導者理應具備高超的技術力,主要原因有五個:
只有具備卓越的技術力,CTO/VPE才有評判的資格,在招聘工程師、系統設計師等的時候,清楚地分辨出哪些人只是合格,而哪些人出類拔萃。
只有具備卓越的技術力,CTO/VPE才能良好地權衡質量、速度、發布日期以及功能等因素,而做出正確的權衡是領導力的基石之一。
只有具備卓越的技術力,CTO/VPE才能贏得整個團隊的尊重。如果CTO/VPE無法在必要之時身先士卒,力挽狂瀾,那麼就很難讓員工信服。
掌握了高超技術的人往往對技術有着濃厚的熱情。他們希望突破技術的界限。這些人能夠激勵團隊走向成功。充滿激情的技術領導者會讓每個人充滿使命感,即便面對原本平凡的任務也能全力以赴。在他們眼中,技術不僅僅是達到目的的手段,他們對這些手段充滿了興趣。只有這樣的人才能站得高看得遠。
擁有高超技術的領導者更容易吸引和招募到其他技術高手。偉大的工程師並不想為偉大的人事經理賣命。由於以上種種原因,他們更加希望為與他們能力相匹配的領導者工作。
Bug之戰
下面,我們通過一個具體的例子,說明技術力對於工程領導者的角色有何幫助。
軟件中存在Bug,這是萬古不變的難題。逃無可逃,避無可避。程序員與Bug之戰時而打得難解難分,時而略有緩和,但這場戰爭永遠沒有勝利的一方。公司的工程領導是平衡開發新功能與保持質量並消滅Bug的關鍵角色之一。這通常意味着,通過截然不同的激勵措施,調節產品開發與銷售團隊之間的緊張關係。
那麼,我們究竟該怎麼辦呢?
如果你想改進某個方面,首先必須制定衡量標準。因此,Bug可持續作戰計劃的第一步就是衡量當前的質量。當然,在這之前(也就是第0步),我們首先需要定義質量等級。
也就是說,我們需要回答這樣一個問題:「用戶最關心的三大功能分別是什麼?」我們必須保證這些功能正常工作,而且質量上乘。
以Dropbox為例,這款產品的主要功能是確保數據永遠不會丟失或損壞。同樣,無法訪問數據的行為也非常糟糕。它會破壞產品的核心價值。如果Dropbox丟失某個文件,那麼這款產品的信譽就全完了。其他功能雖重要,但都是次要的。
而對於Facebook而言,關係到質量的關鍵點在於,在廣泛的地域和各種互聯網速度下快速加載頁面/應用程序。如果無法快速瀏覽 Facebook,那麼用戶就沒有興趣再使用了。
因此,第 0 步就是為產品定義清晰的質量等級。
而第 1 步是根據我們定義的質量等級,準確測量產品的當前水平。當然這些工作無法在一夜之間完成。相關的數據工具有很多。但根據我的經驗,正確配置和設置工具所需花費的時間往往會超出你的預期。而且剛開始的時候,你還會收集到錯誤的數據。但是,請不要氣餒。
面臨這個問題,我們一般建議,每周或每月進行一次質量審查,以了解事態的發展情況。在這個階段,你必須對自己制定的指標充滿信心。
在跨越信心的鴻溝之後,下面我們就需要設置一條紅線,確保質量不會低於這個範圍。這是第2步,這時我們就能看到工程領導的技術力是多麼重要。CTO/VPE 需要深入了解紅線在哪裡,以及如果接近紅線將看到怎樣的警告信號,最重要的是,為了遠離紅線,我們需要做些什麼。
CTO 必須向每個人解釋清楚,如果質量低於某個點,那麼一切工作都必須暫停,並全力以赴提高質量。這會導致工作中產生一些摩擦,尤其是與產品領導和 CEO。沒有人希望看到自己心愛的功能出問題或延遲。但你必須強制大家遵守這條規定。如果公司的其他領導者信任 CTO 的技術評估,那麼遵守這個規定就會容易得多。
下面,我們舉一個具體的例子。隨着Dropbox的工程團隊不斷壯大,Dropbox 桌面客戶端代碼庫的變更也越來越多,然而我們發現Bug的數量也在迅速增加。桌面客戶端是用戶訪問文件的主要方式,因此不能出問題,也就是說,這就是我們的紅線。
問題是桌面客戶端代碼庫並不會因為團隊增加新成員而成比例地增長。深入研究技術架構後,我們發現這條紅線距離我們的舒適區太近了。此外,我們還發現,重新組織架構後,修復Bug會更容易。但這種變更需要6~9個月的時間。
想象一下,你告訴CEO,你需要這麼長的時間來修改核心產品的底層架構,你們所需要面對的是重新組織架構期間造成的種種延誤。整個公司的領導層都需要對推動這種變革的工程領導充滿信任。
我堅信速度對創業公司的重要性。作為一名工程師,我曾親身經歷過Facebook快速行動、打破常規的發展時代。但 CTO/VPE 最核心的職責之一便是明白什麼時候磨刀不會耽誤砍柴。技術力不僅能讓工程領導對於何時需要這種速度轉變更有信心,而且還能將這種決策轉達給公司的其他人。
在重新構建客戶端架構期間,我們在bug之戰中取得了重大進展:隨着路線圖與OKR計劃的推進,質量標準也在不斷提高。這是我們邁出的第3步,我們將紅線移得更遠,而且不會隨着時間的推移再次被推回來。
最後一步,建立持久的流程,確保核心產品正常工作。
如何招聘到好的CTO/VPE/工程總監?
有關CTO/VPE的技術能力的討論,我反覆聽到的一個話題是公司和創始人詢問這些職位應當如何招聘。似乎有很多CTO/VPE候選人在編程面試中表現欠佳。
我個人認為,CTO/VPE/工程總監候選人應該通過編程面試。事實上,他們應該在編程面試中拿到優異的成績。
雖然這些職位需要具備管理人員的能力,並且能夠與創始人和其他管理層通力合作共同管理公司,還要有招聘的能力,但他們應該通過編程面試,以及系統設計面試,而且技術力應該是決定他們能否勝任該職位的關鍵因素。
因為,首席技術官應該懂技術。
《新程序員001-004》全面上市,對話世界級大師,報道中國IT行業創新創造!
