2014年3月13日 星期四

黛博拉 伯樂

http://deborahjong.wordpress.com/2014/02/20/paiza-1/

伯樂(上)

日本科技界三不五時便會出現「為什麼日本無法誕生像Google這樣的公司?」之類的話題。雖然DeNA、GREE、LINE、價格.com、Cookpad…等公司算是闖出了名氣,在Google、Facebook…的面前只不過是小巫見大巫,甚至自Microsoft的時代起整體的質、量便與美國相去甚遠。
大致上來說,原因可歸咎於「日本人大多不願嘗試新的挑戰」、「創投等資金提供環境的不完善」、「因循前例、重視過往成效而不敢採用新創公司的產品或服務」等。不過,甫推出線上工程師評價系統「paiza」的Gino CEO片山良平認為,「在日本工程師並沒有受到應有的重視」也是阻礙新一代偉大科技公司誕生的一大絆腳石。片山良平在自立門戶創設Gino前除了寫程式以外,還擔任專案經理。他回憶當時用戶排山倒海的抱怨,多半因系統建構的專案成效不彰所致。該公司高層總是抱著「問題發生等有需要時再調工程師進來幫忙就行了」的心態,也就是說,在這些老闆們的眼裡,工程師不過是「製造過程」裡呼之即來揮之即去的作業員。諷刺的是,專案的進行不如預期順利或進度落後時才臨時找人,急就章的結果起不了正面作用,於是加深了用戶的不滿,而同樣的劇情也一而再、再而三地上演。工程師們都明白維持產品/服務的健康得從改善體質做起,但不少老闆們只想著頭痛醫頭、腳痛醫腳。
IT產業基本上以person-month來衡量工程師的生產力,比起因人而異的能力,「幾個月、投入多少人」之menial job的計算方式更為根深蒂固。特別是以「將進口資源予以加工再行出口」之傳統製造業模式起家的人,更容易把工程師當成苦力來使喚。軟體開發工作裡屬於肉體勞動的部分其實不多。開發過程中會產生許多新發現,這些新發現將會被回饋至企劃端,開發與企劃同時並進。也就是說軟體的打造,或姑且稱為軟體的「製造」,實與企劃密不可分。片山良平表示不少公司的老闆或管理高層未曾碰過程式,也難以了解軟體的「製造」與企劃間融為一體的關係。由於缺乏識貨的眼光,不是發揮不了優秀人才的長處,就是大力提拔實力並不怎麼樣的人。真正懂得軟體開發的人昇不上要職,掌權的人不了解軟體開發的真髓,結果便是陷入惡性循環。這個現象,也可以說是促成片山良平創設GINO的遠因。
另一方面,目前日本的IT產業中,以富士通、日立製作所、NTT Data為首的系統整合商依然勢力龐大。一般企業通常都編制有資訊系統之類的部門,而這些資訊系統部門可以說是公司的開銷單位(cost center),為了抑制成本,多半將系統建購業務外包給所謂的系統整合商。既然一般企業並非以營業額來評估資訊系統部門的績效,而是以有辦法節省多少費用為給分標準,那麼對實質軟體「製造」者的系統整合商而言,比起品質,更優先考慮的便是「如何以更低廉的成本做出勉強過關的產品」。這麼一來,位於層層剝削利益結構最末端的工程師們,只有秤斤論兩賤價叫賣的份了。
所謂物極必反。IT只不過是大多數企業之成本削減工具的宿命,似乎出現了轉機。片山良平認為,在社群遊戲等網路應用陸續誕生後,軟體能夠獲利、甚至非常賺錢的印象與認知,總算開始滲透至日本的社會各界。簡單地說,工程師由守轉攻,所屬組織的定位從只會燒錢的開銷單位(cost center)變身為迅速順應環境變化,並肩負業績成敗責任的進帳單位(profit center)。過去承包大企業的案子,從接洽到實作完畢最少要花上半年的冗長時間。現今打造網路服務的工程師們則可能一大清早便針對前晚出現的問題進行檢討,並在入夜前的短時間內完成修改與版本更新,從事業開發的觀點,以飛快腳步進行投資的回收。90年代初期網際網路誕生以來已經過20餘年的歲月,有助於事業發展的諸多條件漸趨成熟,且拜行動裝置迅速普及所賜,虛擬與現實的接點大幅增加,過去難以IT化的部分得以IT化並帶動營收成長。這一波的轉變不僅限於IT產業,更廣泛影響了其他業種。工程師從後台負責燈光、道具等的工作人員,逐漸轉型為舞台上粉墨登場的主角。片山良平表示,由於愈來愈多人開始思考與IT、網路相結合的事業型態,工程師被要求的能力、資質也與過去有很大不同。然而,儘管工程師的重要性與日俱增,在日本仍沒有受到足夠的重視。這還得從美、日工程師投胎環境的差異說起。
一般來說,矽谷等地的工程師多半具有資訊相關科系的學歷與基礎數理知識。片山良平表示,在日本的系統整合商工作的人,有不少是進公司後才開始接觸程式。這些系統整合商所需要的,是「掌管龐大專案」的人士。技術能力(technical skills)不怎麼樣無所謂,人際關係能力(human skills)才是最受重視的部分。相對地在矽谷,新創公司的誕生宛如雨後春筍。剛開始必須一個人當好幾個人用,從事技術等的創新,並在某種程度上什麼雜事都幹,而後步上成功軌道的例子相當多。新創公司以幾個人的小團隊與盡可能少額的資金來成就一番大事為目標,尚不要求工程師扮演統率大軍的角色。因為大陣仗的軟體開發,根本就是八字還沒一撇的事。此外,從比爾蓋茲到Google的創辦人等因寫程式而稱霸業界的成功人士,皆受到英雄般的狂熱崇拜。可以這麼說,工程師活躍於新創公司並進而有朝一日飛上枝頭,是新創公司生態圈的一部分。而日本的工程師只不過是領薪水的上班族,且經常被視為公司裡等級最卑賤的下人。
片山良平表示,據傳Mark Zuckerberg即便到了今天還在親自coding。當然,Mark Zuckerberg在企業的營運策略上不見得100%料事如神,但由於相當熟悉技術,對技術關鍵所在的判斷基本上很少出差錯。而日本則恰好相反;文科畢業且對技術關鍵所在一竅不通的主管經常作出沒頭沒腦的錯誤決策,甚至一廂情願地認為只要多調點工程師進來問題便可獲得解決。結果不是無謂地拖延專案的完成期限,就是因成本增加而膨脹了赤字。片山良平強調,特別是系統整合商這幫人「人多就萬事OK」的愚蠢想法最要不得 — 就像產業外移一般,把業務分配給印度甚至越南的充沛廉價人力,總有一天日本便不需要工程師的存在。片山良平認為,印度、越南的人力是否有辦法勝任軟體企畫的工作,還是個大問號。三不五時的軟體版本更新,比方說一早開會檢討,傍晚便得完成修改之體制的建立,並非想像中容易。此時所需的並非是只會按照規格一五一十coding,而是縱向地對前端至後端皆有一定程度的全盤理解,並可獨當一面的人才。
這麼一來,愈來愈多的日本企業開始異口同聲地認為「不需要只會出一張嘴的人」,而「哪裡有真正懂得寫程式的人」的要求,也源源不絕地傳進片山良平的耳裡。因此,在雇用工程師或欲評估其實力時,便有必要實際看看應徵者是不是真的有兩把刷子。這便是片山良平推出線上工程師評價系統「paiza」的近因。

伯樂(中)

說到日本的轉職,基本上篩選過程是經過書面審查與面試兩道關卡後,再來判斷是否錄取。
大多數日本企業在工程師的招募上也因循上述的做法,只憑履、經歷與口頭面談的結果便決定人選,與業務、行政等職種的篩選方式並無太大的不同。片山良平始終覺得納悶的是,既然大家想找的是真正會寫程式的工程師,為什麼總是本末倒置?先行確認應徵者是否具備良好的coding能力後,再來進行書面審查或面試也不遲啊…。
片山良平認為,本末倒置的原因有二。其一,書面審查具有提升企業端面試效率的意義。徵才是企業活動中非常重要的一環,但與為數眾多的應徵者面談則相當花費時間與勞力。不可否認,從履、經歷之個人的過往功績來判斷此人是否值得一見,是非常合理的舉動。但不少應徵者為了在書面審查勝出,總會費盡心思包裝一番。比方說履歷表上寫著「在歷時五年、金額為數億日圓規模的專案中撰寫Java」,看起來好像很了不起。如果再加上「東大畢」三個字,感覺上又掛了百分之兩百的保證。不過,在看不見全貌的巨型專案中只負責小部分,並一五一十地按照上面交代下來的規格實作的5年實務經驗,與單獨一人從requirement definition到建構基礎環境、設計、開發、測試、運用…等包山包海的3年實務經驗,在實力上有著天壤之別。如果從寫的人的表達方式,到讀的人的認知之間完全契合事實且毫無失真,那是最理想不過了。但片山良平表示,從他面試工程師的多年經驗來看,要從書面看出一個人真正的技術實力,是相當強人所難的事。
其二,面試官等第一線工程師無暇閱讀應徵者寫的程式。片山良平表示,若規定書面審查資料中必須付上程式作品,判別這些作品好壞的工作自然是落在第一線工程師的頭上,而非人事部。然而在絕大多數的情況下,需要徵才的部門不是因為有人離職,就是因為現有人手無法消化與日俱增的工作量而急著補強戰力。不管是以上哪一種情況,有能力看code的人本身便已忙得不可開交,實在很難撥出時間審核應徵者的作品。徵才時一舉命中合適人選的機率極低,通常業界是以10選1的比例來淘汰,而光是面試就要花上「出席面試官人數*給每位應徵者的1小時面試時間*10」的工時。再加上履歷表與程式作品的審查,更是吃掉這些大忙人更多分秒必爭的時間。此時若有CTO在並抽空專注於徵才事宜便無大礙,只可惜具備如此體制的公司仍屬少數。因此,雖然一小部分的企業已經覺醒,但絕大多數仍難以跨出徵才時實施coding能力審查的一步。
elm200這位仁兄在2011年8月左右前往Twitter總部面試的經驗談,片山良平認為這是諸多值得參考案例的其中之一。elm200原本便有意前往矽谷工作,無意間在Twitter的timeline看到Twitter徵求日籍工程師的消息後,便抱著姑且一試的心態投了履歷表。競爭者眾,elm200心想自己應該在書面審查這一關便會被刷掉。沒想到幾天後竟接到Twitter人事部將安排電話面試的通知,完全沒做好心理準備的elm200在慌張之餘只好使出拖延戰術,將電話面試定在還勉強來得及惡補對策的日期。透過網路徵詢日裔美籍現役工程師等高人的意見後,elm200了解到所謂矽谷式的面試,是由第一線的工程師輪番上陣,並疲勞轟炸似地進行一連串技術上的盤問,與日本有很大的不同。高人除了面授機宜,還介紹了兩本自習用的優良參考書籍Cracking the Coding Interview: 150 Programming InterviewQuestions and Solutionsプログラミングコンテストチャレンジブック(程式競賽挑戰指南)。資料結構、演算法等自然是重頭戲,Cracking the Coding Interview前半段概論部分所描述之Google、Apple等美國西岸的面試情境與美國人對面試的看法,與日本現狀天差地別的程度,深深震撼了elm200。
平日不燒香、臨時抱佛腳。遠離高生產力coding有一段時日的elm200,準備起來還頗吃力。首次電話面試的日子很快地來臨,接起電話後竟出乎意料地傳來一陣日語。當時Twitter總部有好幾位優秀的日籍工程師,因此elm200的2次電話面試皆由同鄉所主持。開門見山的第一道題目都是「為什麼會應徵Twitter的工作」,接下來盡是技術相關的問題,每位面試官所花的時間大概在30-40分鐘左右。elm200覺得自己在第一回合的表現尚可,但第二回合卻應答地不怎麼順利,也頗為氣餒。將電話面試結果與高人分享後,elm200得到的建議是「在美國不管是什麼事,勇往直前就對了」。因此,elm200寫信告訴人事部希望獲得在舊金山總部面試的機會,理由是自己在face to face的表現會比電話來得更好,而Twitter也爽快地答應elm200的要求。
其實,elm200並不是專程為了Twitter而飛往美國。原本他便計畫前往矽谷探路,進行在當地工作之可能性的“市場調查”。天時地利人和,Twitter的面試得以包含在此次行程中,elm200覺得自己的運氣非常好。面試日期定為2011年9月1日的上午和9月6日的下午,踏進Twitter舊金山總部大門後映入眼簾的便是寬敞、品味不凡的cafeteria。cafeteria的存在與辦公室巧妙地融合為一,洗鍊的整體室內設計讓elm200像是走進了大觀園。elm200的首位面試官是位非常亮眼的美女。日本人對美國工程師的刻板印象通常是「邋遢、不修邊幅的男生」,有眼不識泰山的elm200一開始還將這位面試官誤認為人事部職員。她開口的第一句話是「要喝點咖啡嗎?」,並領著連忙點頭的elm200至擺放咖啡壺的地方,由elm200自己為自己倒了一杯咖啡。光從走進總部大門到現在,連枝微末節之處都讓elm200感到這裡與日本完全是兩個不同的世界。
2回合的面試下來,以一對一的方式,elm200總共見了8名面試官。每位在30-40分鐘的時間內提出數個問題,並請應徵者回答解決對策或在白板寫下pseudo code,並逐漸提昇至應徵者可能不易招架的難度。elm200表示面試官所提出的,乍看之下多半是資料結構或演算法的理論性問題,但皆與第一線工程師們平日所搏鬥的現實問題有著很大的關聯,相當犀利、精闢。elm200過去所服務的小公司所經手的多半是prototype的成品,仍停留在「如何在最短的時間做出會動的雛形」的階段。而當時已擁有1億規模用戶的Twitter,則將重點放在scalability與security。可以想見對scalability與security考慮得不夠周詳的工程師,很難獲得Twitter的青睞。
姑且先不論面試結果,接下來elm200從親身經驗所感受到美、日兩地人才篩選基準的差異,才是更令人省思的部分。

伯樂(下)

由於專長、志趣所在與Twitter的需求終究有所出入,最後elm200沒有被錄取,但透過這一次的面試,讓elm200對灣區知名企業招募工程師之細膩程度留下難以抹滅的印象。
包括電話面試在內,elm200總共與10位Twitter的工程師,進行了合計5小時以上的接觸。elm200強調,這10位工程師分別從各種不同的角度發問,以如此審慎的心態觀察應徵者的反應,看錯人的機率應該不高。兩相比較之下,大多數日本企業對應徵者的履歷內容囫圇吞棗,再由人事部主管見了2、3次面便決定人選的做法 ,根本就是敷衍了事。面試時不要說缺乏技術上的盤問,就連第一線工程師的影子也很難見得到。應徵者與現職工程師不互相打個照面、對彼此做個一定程度的了解,便由與第一線完全不相干的人事主管決定錄取與否,elm200深深為日本的現狀感到悲哀。
此外,當時41歲的elm200若想在日本換個東家找份正職的工作,可能性微乎其微。不論實力如何,光是年齡的因素就過不了第一關的書面審查。大家早就耳熟能詳,在美國找工作時完全不會觸及年齡方面的話題;elm200對於在自己的祖國只有碰壁的份,卻在美國西岸獲得力求表現的機會,無奈地搖頭苦笑。雖然說在美國不得於面試時詢問應試者今年幾歲、或是在履歷表上填寫年齡,但elm200認為就算沒有法律的約束,從文化上來看,美國人原本就不像日本人那麼在意年齡,而矽谷更是不偏不倚地貫徹「錄用與否應完全取決於工作相關能力」的思維。
矽谷式的人才篩選方式耗時費力。這些活躍於第一線的超強工程師在百忙之中暫時擱下工作,騰出寶貴的時間,就是為了對「來歷不明」的應徵者進行一番了解。elm200心想,光是面試自己一個人所佔據的5個多小時,換算為人事費用的話至少在數百美元以上。不難理解,如此鉅細靡遺的“鑑識”過程非常耗費成本,而這些企業也不太可能邀請太多的應徵者前往總部面試。能夠有機會親身體驗,並從中獲得相當多的啟發,elm200對Twitter滿懷感謝。
elm200的經驗談頗具參考價值。而片山良平更認為不只限於工程師,整體來說,日本的人才招募方式已經來到轉捩點。片山良平表示,這十多年來日本社會出現了大幅度的轉變。以終身雇用制為前提的就業環境,可以說是與高度經濟成長相輔相成的產物。上班族無需思考個人的生涯設計,而是一切聽從公司的安排。交出手中的自我主導權,為公司鞠躬盡瘁,並換來一生安穩的保障。然而隨著經濟成長停滯,愈來愈多的企業開始自身難保,終身雇用制度也逐漸遭到瓦解。在這樣的情況下,未雨綢繆地思考「就算被公司釋出也能順利發展個人的職業生涯」,便是刻不容緩的課題。
換跑道的情形愈來愈普遍,但一般來說人才篩選方式仍停留在過去的時代。因此,片山良平認為有必要為技術能力建立一套可視化的體制,並於去年10月推出工程師coding能力評價系統「paiza」(上圖,節錄自paiza官網)。「paiza」的用戶針對網站上的提問鍵入自己所設計的程式碼,而這段程式碼將被導入伺服器執行出結果,藉此來界定用戶的「內力深淺」。程式語言有Java、C、Perl、PHP、Ruby、Python等8種可供選擇,並將工程師的coding能力由低至高分為E、D、C、B、A、S之6個等級(下圖,節錄自paiza官網)。用戶必須相當精通演算法,方可順利解答S等級的提問。具體來說,在打造搜尋引擎、巨量資料分析引擎…時絕對少不了在演算法速度、效能上的推敲。能夠在這方面應付自如並進行創意實作的人,才有資格登上S等級的殿堂。
透過paiza,真正的coding高手在轉職時不需經過書面審查便可直接進入面談的階段,並藉此降低應徵者與徵才企業間的mismatch。至2014年2月上旬為止paiza的用戶為5,000人左右,經由paiza的管道遴選人才的企業有200多家。片山良平的目標是在今年8月用戶(工程師)規模成長至1萬人,並將合作企業擴大至300家。從目前的市場需求與用戶成長趨勢來看,達成目標並非難事。

沒有留言:

張貼留言