劍一人敵,不足學,學萬人敵 — 項羽,史記
小時候讀史記這段的時候,有點不以為然,電影中那些飛天鑽地的俠士操著寶劍,無論是皇宮還是敵人巢穴,都出入如無人之境,萬夫莫敵,這樣的劍,有什麼不足學?為什麼沒有辦法萬人敵呢?
號稱萬人敵的兵法,抽象無比,除非是實戰,不然所有的操演與模擬,完全都是在假想的過程中完成的,能不能真得用上都不知道,對我來說,還是能夠具體肉搏取勝的劍法比較有吸引力。
整個成長的過程中,我都一直在琢磨一人敵的技術,比如說英文、法文、數學,還有後來的程式語言、程式架構、八極拳 XD … 等。
我只要多出某一項技術,或是某項比別人強一點,我就能夠戰勝,從群體裡脫穎而出,努力學習的同時,劍鋒指的是同儕,他們是我的競爭對手,我必須要比他們更強。
圖片出處
所以我很能接受在矽谷 startup 中提倡的 Get Shit Done 概念。
Get Shit Done 很難翻得很妥切,硬要翻得話應該是可以用幾百年前「新生活運動」時期的兩個要點涵蓋: 迅速 & 確實 。(然後那個 Shit 有點髒話的意思,迅速確實又有點太文謅謅,失去原文那種矽谷的野性)
在矽谷早期的新創公司,做事情要(他馬的)迅速確實,沒有藉口、沒有推托,不管你用什麼樣的方法,用多髒的程式碼,只要道德底線守住,用多 hacky 的方法都沒有關係,你只負責在死線(deadline)以前,確實地把工作成果交出去就可以了。
同時,因為 Get Shit Done、因為抄捷徑,鳥事有時候就是會發生(Shit Happens)!這裡早期的新創公司容錯的空間也很大,大家都是摸著石頭過河,你這次搞砸了,只要你能夠立即修正錯誤或是補救,並且以後不發生同樣的錯誤,老闆會拍拍你的背,一笑置之,你一樣是上頭眼前的大紅人。
除了最後容錯的那部分以外,迅速確實的基本理念,跟台灣職場是相通的,我仍然是一人敵即可。
但是矽谷可遠遠不止于此,一人敵,一人駭客的電影情節聽起來很爽,但是這裡可是一個可以在短短 10 年內孕育出類似像 Google ,、Facebook 這種超級規模公司的沃土,真正的黃金,藏在那些萬人敵謀士的腦袋中。
長大不等於成熟,公司的人可以一直增加,辦公室可以一直長大,但是這些都不是公司一飛沖天的充要條件。
按照之前 Get Shit Done 的俠士態度,成長到某個地步,如果不進行結構性的改革,每增加一個人,增加的不是效率與產出,而是增加了無可救藥的亂度,很多人把這種 Get Shit Done 隨之而來的亂度成長稱作是成長的 技術債 。
任由技術債繼續成長,你的產出會隨著你的成長漸漸下滑,最後吞噬掉你的所有產出,公司或是組織只能撲滅不斷發生的眼前火,長期成長與原來的野心都會變成泡影。
我在聊的不只是 MBA 老生常談的公司管理而已,這樣的技術債,發生在公司或組織的所有部門,不管是會計、工程、IT、HR… 等的所有部門。
舉例來說,公司以指數的速度成長,過去人力資源專員所有的方法與工具漸漸的會沒有辦法負荷日漸增加的履歷與職缺,這是後如果只是加人進 HR 團隊來分擔原來專員的工作量,就算所有新的專員全都是業界老手,沒有教育訓練的問題,真的可以幫原來專員分憂解勞,你認為你找這些業界好手的速度可以跟得上指數成長公司的需求嗎?
不要忘了,整個市場裡面就只有那麼多好手,就算你把所有的好手都囊括進公司了,接下來的成長怎麼辦?
你需要捨棄所有現有的工作流程與工具,重新設計(Reengineer)一個適合新階段的工作方式。
但是要怎麼做呢?你需要有萬人敵的高手加入團隊,幫你打造新的工具與工作流程。
我不熟人力資源或是其他 MBA 應該懂的東西,但單單以軟體工程來說,在矽谷的確到處可以看到萬人敵的高手,他們所持有的技術與知識,通常都跟要駕馭的「量(scale)」有關,有時候是人,有時候是機器,有時候兩者都有。
當你的公司網站因為 product market fit 而流量破錶,你可以找到萬人敵,使用各類工具把你的 Web App 重新架構,讓你可以運用在亞洲、美洲、歐洲的各類伺服器撐起原來極限 10 倍甚至百倍以上的流量,而且成本可能只是原來的幾倍而已。
當你有大量的資料需要運算,你可以找到萬人敵,從資料倉儲開始,把你分散式運算的基礎架構建構好,客製化你資料生產線(data pipeline),不管是用有 10 年以上歷史的 Hadoop ,或是炙手可熱的 Storm 與 Spark 操縱幾十台,甚至幾百台電腦,同時使用機器學習的演算法處理同一件事情,讓以往要好幾個月才能處理完的資料,壓縮在小時甚至分鐘之內結束。
當你的工程團隊成長到 1000 人的等級,每個全都是常春藤名校的精英,你可以找到萬人敵,建構起整個工程團隊賴以為生開發環境,包括客制所使用的文字編輯器或是 IDE,在 local 端所使用的 provision 工具與方法,程式碼的 repository,issue 追蹤的系統,staging 測試系統,工程師 peer review 的流程與方式,自動測試系統,到最後用 Chef , Docker ,或是 BitTorrent 同時部署到幾百台,甚至幾千台的伺服器中,還是直接用 Mesos 來做資料中心的虛擬化,以及最後追蹤所有伺服器健康狀況的監視系統。
那些量小時很簡單的工作,當你是以千或萬為單位同時進行時,複雜度跟整個實作邏輯跟原來是有 100% 的差異的。
一次折斷一支筷子很容易,但是如果你真的必須要一次折斷 10,000 隻筷子,你需要的絕對不是只要有故事中的鐵木真的兄弟齊心 XD 而已,你必須要硬生生做一隻浩克(Hulk)出來。
這隻浩克,就是我所說的萬人敵。
而矽谷這邊,因為長時間有非常多公司迅速地成長茁壯,訓練出非常多這種能支撐快速成長的萬人敵浩克,不管是工程端、業務端、市場端、人資端,還是 IT 端,你都可以發現這種浩克級的高手的存在。
訓練出萬人敵的絕對不是教育或是課堂,而是那些萬人敵的難題本身。
你有沒有想過為什麼當初的 just in time inventory 是日本人汽車業想出來的,而那些超屌的分散式運算的 Apache Projects 是美國人(大多在矽谷)想出來的,但是卻很少世界級的管理或是技術突破源自于台灣?
因為當初台灣沒有那樣迫切的需要,沒有這些難題,自然就沒有解法。
這些解法,都是難題逼出來的。因為有這些超級難題,驅使業界的精英摩頂放踵、夙夜匪懈地找出解法,並慢慢發展成當地的 know how 的。如果沒有這些前後文(context),只是從文本或是網路上取材,很難真的一窺全貌。
所以要到難題的最震央去歷練,學做萬人敵。
這張是在 Facebook 總公司照的,本來 Facebook 的名言是: Move Fast and Break Things(其實跟 Get Shit Done 同意) 但是公司階段不一樣了,為了下一輪的成長,名言改成: 慢下來,把自己搞爛的東西清乾淨。
在矽谷這個創業聖地,萬人敵當然不會只屈就于當人家的員工或是跑來跑去當解決問題的顧問而已,他們會做產品,創業!
當萬人敵十年磨劍以後,手癢的他們,會把他們的學習做成產品與公司,解決業界普遍對於該難題的需求:
1. Anyperk 解決矽谷中小型 Startup 員工福利的問題
(雲端福委會 XD)
2. mesosphere 用 Apache Mesos 解決資料中心(Data Center)虛擬化的問題
(twitter 與 airbab 都是愛用者,團隊是 airbnb 出來的)
3. signalfuse 解決運行中服務狀態追蹤的問題
(創辦人之前在 Facebook 就是做這個技術的)
還有 databricks , Docker … 等,多不勝數。或許真的像 魔力小馬 中土地神所說的:「 他們的旅行,並不是沒有意義的」 ,經過之前的歷練,萬人敵一個個開出精彩的果實。
回到項羽的那句話,不管他當初只是年輕氣盛還是真的能夠 dream big(把夢想做大) ,多年以後異地咀嚼,味道真的很不一樣。
或許真的跟當初某位老教授一直跟堂下耳提面命的,旅行最大的意義,不是打卡,是能給你的眼界。
學萬人敵,實戰萬人敵,才是矽谷(或是你的巴黎)能給你的最大價值。
【台灣工程師的矽谷故事】突破魯蛇人生,就用 DP 演算法進化吧!
【台灣工程師的矽谷故事】如果你喜歡台灣,回來,但是不要一直待在這裏
(文章轉載自合作部落格: 台灣工程師的矽谷故事 ;未經許可,不得轉載)