醫療社區丁香園的 CTO 馮大輝離職了,炸出了科技行業里的一個大問題:CTO到底應不應該寫代碼?
具體來說,CTO 在公司里是干嘛的?他/她到底寫不寫代碼?該不該做代碼評審(code review),親力親為給程序員做出榜樣?還是把握一下大方向,設計架構,管管程序員,提供一些培訓?抑或應該把首席市場官以及首席吐槽老東家官的崗位一并兼了?
在國內,大大小小的程序員們就這個問題已經吵成一團;那我們不妨去看看硅谷。帶著這些問題,我們問了一圈硅谷大小科技公司的 CTO、VP Engineering、技術合伙人,以及其他各種高級技術管理職稱上的朋友。
硅谷 CTO 寫不寫代碼?
我們發現在硅谷,技術類公司比純互聯網產品公司多得多。大部分 CTO 不但會寫代碼,代碼也是他們日常最重要的工作內容。
Movidius 是一家研發低功耗視覺處理芯片的硅谷科技公司,現在已經擴張到了400多人的規模。Movidius的 CTO David Moloney 在愛爾蘭都柏林工作,他負責管理一支超過 120 人的技術團隊,因此也設有一個 “CTO 小組”,每天花 10-15 分鐘聽取小組成員的報告并作出指示。他常用的溝通工具是 Slack。
盡管如此,David 仍然很享受親力親為的工作風格,也是公司的技術迭代的主要功臣。他告訴PingWest品玩,他的日常工作主要包括設計算法、寫專利聲明以及幫助解決成員提出的技術問題。
我們按照項目和任務分成小組工作,我本人經常寫 Octave(Matlab)、C/C++ 來開發算法,日常使用 GCC 和 Visual Studio(兩種編程工具)。我們使用 GitHub 來管理所有的代碼。
除此之外,David 還會親自撰寫很多的專利聲明,而非將其交給下屬以及其他法律顧問。
David Meloney 其實不止David,采訪中我們發現,在硅谷,擼袖子上陣寫代碼對于 CTO/技術合伙人/高級技術管理人員來說簡直是家常便飯,幾乎不分公司技術團隊人數多寡。
一家由機器人 SLAM(定位、識別和移動技術)公司的聯合創始人匿名接受了采訪。他告訴我,因為是技術公司沒有設立 CTO 的崗位,自己和另外一個創始人每天大約有 8 個小時在寫代碼,剩下 4 個小時做管理和溝通工作。
寫代碼是每天工作主要部分,語言包括 Python、Java、C++、C 等。
這家公司的技術團隊目前有 8 個人,一半在開發算法,另外一半做開放系統。
看完小公司,讓我們看看大公司是怎么搞的。一位前微軟員工告訴我,“印象很深的是在微軟,一個高級總監管理多于 300 個技術人員,還在堅持對核心部件進行 code review,時不時自己寫代碼,代碼質量還很不錯。”
微軟現在不設 CTO 職位,每個主要業務單獨設立部門,由資深的技術負責人擔任SVP——這些大多擁有十年以上的微軟工作經驗。
Oculus VR 是世界上最知名的 VR 技術公司之一,在被 Facebook 收購后增長迅速,員工總數從去年的數百人增長到今年的逾千人,其中技術人員比例很高,但該公司的大神級 CTO John Carmack 仍是一副不寫代碼不舒服的樣子。他討厭管理,由其討厭開會,曾經在 Twitter 上說:
沒有什么比“取消: ”的郵件標題讓我笑得更開心了。
一位知情者告訴我,Carmack 超級不喜歡別人打擾他。他早年用過一些很奇怪的工具來提高自己的工作效率,比如工作的時候開始用 CD 機放音樂,但凡有任何中斷(上廁所、收發郵件、被人闖進辦公室)就暫停,然后記錄一天下來暫停了多少次。著名游戲開發者 Richard Garriott 曾這樣評價 John Carmack 在代碼上的水平和造詣:
這個人啊,他的大腦分成兩個部分,一塊存儲 Oculus 的所有代碼,另一塊存儲他創立的那個火箭公司的所有技術——而且跟內存一樣,他隨時能調取出任何一家公司、下屬項目里面的任何一個代碼細節。他真是讓我很沒自信……
John Carmack
評論