Facebook前工程總監黃易山撰寫了一系列文章,很好地總結了Facebook卓越研發文化中的寶貴經驗。本文是這一系列文章的第五篇,也是最后一篇。
何謂技術型領導
所有從外部聘用的管理人員包括技術部門負責人,都必須能夠編寫代碼,并且要達到爐火純青的地步。如果是一家技術公司,CEO也應如此。
現在有個誤區就是認為編程不是高管或者經理的必備能力,仿佛只是一種花哨的打字形式。但其他專業化行業都不這樣認為:銀行業高管必須能夠閱讀資產負債表;汽車業高管則需要了解催化轉換器等。
有人可能會說,技術的精通程度無法檢驗,因為一個杰出的管理候選人最近幾年可能只關注于管理,與技術已無直接的接觸。而且,一個杰出的經理可以管理一切事情。顯然,這是不真實的。
當然,并不是希望候選人能用當前有限的擴展性技術創建一個大規模系統,或者在芯片集這種底層進行優化,或者能記住特定語言或框架的詳細語法。但檢驗一個經理候選人是否具有較強的個人技術背景是合理并且可取的。當然我指的是基本技能測試,如果候選人曾經是一個稱職的技術人員,他肯定能通過編程測試,包含某些簡單迭代或遞歸算法,以及計算機基礎學科中指針、散列和操作系統原理等概念題。
即使是一些門檻很低、許多人可能認為任何一個程序員都會的問題,還是有很多程序員搞不定(我并不是說能夠做到這一點就意味著是一個優秀的程序員,但做不到這一點則意味著你肯定不是一個優秀的程序員)。在其職業生涯早期,他們發現自己不是優秀的程序員,但又恰好處在一個技術要求沒那么嚴謹的組織中,因此他們能夠被提拔,完全是因為他們碰巧很擅長與人打交道(或善于用人)。現在,他們中的許多人已經進入了技術管理和高管候選人的行列。此外,他們通常非常善于談論一場精彩的比賽,聽起來就像他們知道自己在做什么(否則他們也不會到那個位置)。
檢驗一個候選人是否具備技術實力的唯一方法是:給他們出一些簡單的代碼題目進行測試或者找一些他們寫過的開源代碼直接評估檢驗。不能通過測試或者沒有可供驗證的公開技術記錄的候選人將不會被雇用。
原因是顯而易見的——那就是管理者需要縱觀大勢,以便作出明智的決定。一個有經驗但無技術背景的經理可能會有好想法,但在同等情況下,一個有類似技術背景的經理則可能有更突出的表現。換句話說,前者肯定提供不了技術領導力,如果希望你的公司成為行業的技術領導者,你的領導者首先需要具備技術。
為什么需要技術型領導?
一個沒有技術型領導的“技術”公司往往會失敗,原因可以歸咎于以下兩者或者其中之一。
領導無法分辨技術人員執行的工作是否符合標準,因為在面臨技術挑戰時他們無法區分是技術人員執行力太差還是確實遇到了技術瓶頸。進而,也就無法實行績效管理,這會導致業績平庸,并將最終導致徹底甚至反復的失敗。
業務需求導致領導不顧技術人員的建議或者想法。當今嚴酷的商業環境要求企業領導推進企業不停地超越舊邊界,這意味著領導不僅要告訴他的員工警惕“該死的魚雷”,還要能夠深化拓展,不能僅求安逸。不幸的是,非技術型領導人沒有個人能力來衡量首要技術問題的實際風險狀況(例如:某些特殊情況下已經非常過時的限制),并往往會推翻那些不應該被推翻的建議。
在Facebook之外,我見證了不止一個由于管理層缺乏核心技術力而導致的大型公司的失敗。而在Facebook,個人技術能力恰巧是所有工程管理人員所必需的,甚至包括部門領導及CEO(是的,Mark?Zuckerberg還在繼續參與Hackathon編程活動)。這使得該公司敢于多次進行技術冒險,以達到更大的產品創新目標并實現一貫快速的前進步伐,正所謂越了解游戲規則,玩得就好。
作者介紹: 黃易山,1997年畢業于卡內基-梅隆大學。2001年加入PayPal,曾任高級工程總監。2005-2010年在Facebook領導研發,在公司研發環境的建設上發揮了重要作用。