《TO》導讀:本文轉載自合作夥伴《伯樂在線》。以下為第一人稱敘述。

Bill(不是他的真實姓名,我模糊了一些信息來保護他的身份)是一位東海岸的軟件工程師,在這個故事發生期間(2011 到 2014 年)他已經快 30 歲了,他想知道自己能否進入到更高級別的就業市場,為了能非常準確的評估這一點,他在兩個大體相當的公司(同樣的規模,同樣的聲望,同樣位於美國西海岸)分別申請了不同級別的職位,一個是作為高級軟件工程師,另一個是作為數據科學的副總。

Bill 之前是一名華爾街的金融工程師,而且還有一個副總的頭銜,要知道副總在投資銀行中只是一個中級的,非管理性的職位。而他現在的頭銜是資深軟件工程師,大體和主管相當。

Bill 教過幾次課並指導過一些實習生,但是他一直都不是一個正式的管理者,所以他來向我諮詢,如何能在 VP 級別的職位申請中出現更多「管理方面」的東西。

  • 實驗開始,首先詳細檢視你的履歷

他的首要問題是如何才能在下一份工作中有一些「管理方面的經歷」。我當時有些不知所措,談到直接經歷,我的第一想法是「在你擁有它之前作假」。

回顧思考一下他的簡歷,「實驗」這個詞出現在我腦海中,我能夠將 Bil l 這個優秀但並不是很傑出的數據科學家兼軟件工程師轉變為一個管理者嗎?

首先有一個好點的消息是我們沒有必要去做太多的改變,Bill 在投資銀行中副總的頭銜應該保持不變,而將資深軟件工程師變為主管也不會讓人覺得是不誠實的,因為這是一個橫向的調整,更有可能還是一個降級,在雙軌科技公司工程師的梯子比管理層的梯子更難爬一些。

Bill「管理簡歷」中的一切都足夠接近真實,很少有人會認為這是不道德的。我們提升了他的社會地位以及預計在那個社會層次所必需的管理文化的可信度,而不是技術資格。我們將技術領導轉變為「真正」有權利的領導,這是唯一改變的地方。

我們花了數個小時來確保簡歷的真實性,Bill 和我都不想因為開展這次實驗毀了 Bill 的職業生涯,只是因為實驗的完整性需要這些改變。

事實上,我們讓這份管理簡歷很有技術性。BIll 的經歷大部分是做為一個實現者,所以我們希望保持這部分的真實性。稍後我會談到這次實驗的結果,他作為一個實現型經理的重塑會有兩個積極的副作用:

第一,作為經理他沒必要弄髒自己的手,如果他是一位管理者的話,他做事情會得到很多表揚。

第二,和第一點相關但是更強大,就是他不需要再為自己不體面的項目或一個時期的低技術而辯解,相反的他的故事從「我現在在一個蹩腳的項目上」演變為「沒有人能夠完成它,所以我不得不弄髒自己的手」,這是一個高地位,管理方面的藉口。

那是個什麼項目?事實上和 Bill 的這個故事相關。Bill 維護過一塊遺留的老代碼,那塊有 4 萬行的代碼本質上在執行一個邏輯回歸,這個自定義模塊一直存在,卻沒有用當前統計軟件代替的理由是:多年來來自業務的大量需求被加進來,而且幾乎沒有一個自定義的調整是邏輯相關的,它們都得包含在源碼中,現在這個項目因其自身複雜性的負擔處在崩潰的邊緣。

這類項目對於工程師來說是職業殺手,因為在做這種項目過程中學不到其他(平台的)可用的技術,而且這種維護的工作沒有一個明確的結束或「勝利點」。對 Bill 的技術簡歷來說,我們必須要讓這個蹩腳的維護工程看起來像是機器學習。對於管理簡歷,「監督關鍵業務遺留模塊的維護」這個事實已經足夠了。

事實上有人可能會質疑 Bill 的簡歷是不是更誠實以及符合道德,因為它在紙上太不真實了。是的,我們誇大了他的社會地位並且給了他一個管理性的頭銜。然而,我們並沒有在「技能」那項下列出他沒有接觸過的技術以誇大他的技術能力。到了某個年紀,作為一個工程師出售自己往往需要:

a. 你只從事有趣的工作,而不是去做一些可以稱為職業殺手的垃圾項目,並且玩些政治遊戲也是需要的。

b. 引導你將來的老闆對你工作能力的信任。

c. 或者花費大量的時間在小項目上,這又是 a 和 b 的結合​​。

這個實驗合乎道德嗎?我的答案是肯定的。

當有人問我是否可以捏造職業經歷和簡歷時,我通常會這麼說:如果一個人當前的狀​​態(能力和才能)和所修改後的一致,美化之前的社會地位是沒有問題的。

在某種形式上就像是講房子出售給一個迷信的買家之前把地址從 13 改為 11,被抹去的事實是他曾經是「13」號,這並不會給其他人造成任何傷害。另一方面,從長遠來看在技術上作假是不道德而且有害的(這是一個職業欺騙,其他人會被誤導別人做出一個和這個人當前狀態不一致的決定,在這種情況下是有害的),雖然我認為這麼做是一個壞主意,但是我不會對那些在簡歷中偽造時間和頭銜的人扣上一個道德問題的帽子,只要他們美化的是他們之前的社會地位,而不是一些如技術能力之類的硬貨。

現在,讓我們來談談這個實驗是如何進行的。

  • 面試 A:作為一個軟件工程師

Bill 面臨著 5 個小時的技術面試,其中 3 個比較好,一個表現平平(這是因為它關注 JVM 的實現細節,但 Bill 的經驗幾乎都在 C++ 以及一點 OCaml 愛好)。

最後一個面試聽起來非常糟糕,是和數據科學副總進行的面試,Bill 未來的老闆,他遲到了差不多 20 分鐘,並給了他一個面試問題,這個問題的正確答案需要花費數月甚至數年的內部試驗與糾錯才能被發現。這是一個「要證明我比你聰明」的面試。

事後,我告訴 Bill 不要擔心最後那個面試。通常企業會給候選人一個尚未解決或者很難解決的問題,沒有期望候選人能在一小時之內解決。但是這次我想錯了。

我在 A 公司有認識的人,所以我能夠理解情況,Bill 的反饋是 3 個非常好、1 個平平、一個不好,結果和他自己的預期非常一致。最差的是那個副總的評論「別的角色或許很優秀,但不是在我的團隊」,顯然副總對於他花了差不多一個小時和一個沒有 PHD 學位的人談話非常不高興,因為 Bill 沒有更高的學位,副總認為一個人足夠優秀到加入他團隊的唯一方式是在 40 分鐘內反向編譯出公司的核心,我不認為這任何人都可以做到。

我們來總結一下,Bill 出色的通過了 5 個面試中的 3 個,其中一個面試官,幾個月後想招聘 Bill 到他自己的創業公司。第四個面試馬馬虎虎,因為他不是一個 Java 專家,但結果也是一般。第 5 個失敗了,原因是他不知道需要多年研究才能發現的內部黃金算法。

當我直接問那個數據科學的副總他沒有僱傭 Bill 的原因,得到的回答是「我們需要的是能夠旗開得勝的人」。顯然,當創業的人試圖欺騙政府改變移民政策所用的藉口「缺少人才」,言下之意就是「我們不投資於人」。

或者,就這一點說,軟件工程師缺少必要的社會地位來讓別人投資。

  • 面試 B:作為一個數據科學經理

幾週後,Bill 在一個大體相當的公司面試了一個副總級別的職位,可以直接向 CTO 匯報。

值得提的是我們沒有做任何事使得 Bill 的簡歷比公司 A 時在技術上更令人印象深刻。如果有的話,我們在講一個「坦白正直的人」的故事時,通過「適度地誇大」表現他的社會地位,使得他的技術故事更加誠實。我們沒有掩蓋低技術活動的時期;他是一個管理者,自己完全可以解釋這些。

Bill 進行了 4 個面試,雖然問題是一些行為模式,並且對於很多技術人員來說答起來比較困難,但是 Bill 覺得這些問題非常簡單。對於「在自己想做的工作和何時去委派之間有一個權衡」這個問題,我給了他一個比較好的答案。它指出了一個擁有管理的地位的人(有委派別人的權力),也要對工作傾注熱情和勤奮,這個答案可以適應幾乎任何「行為模式」的面試問題。

Bill 身高 6 尺 1,相貌在白人男性中屬於中上,並且看起來像一名經理。我們做的工作似乎是得到了回報,在每個面試中,面試官在 Bill 之前 10 分鐘就到了。通過以管理者的面貌呈現他自己(重點是他看起來很像),他有了一個比終身當軟體工程師更加容易的職場。他已經是「俱樂部的一部分(管理層)」,並且在面試中,他不必再作為程序員展示代碼來進行面試,反之是就他是否要加入這個俱樂部的某個特定部分參與雙向討論。

結果呢,Bill 通過了,不同於申請一個典型的工程師職位,這裡沒有任何履歷覆核。CEO 對他說:「我們知道你是一個不錯的人,我們想盡快錄用你」,和作為工程師具有 7 天 offer 期限不同,Bill 有兩個月的時間來做決定。他沒有提出要求就有 4 個星期的假期和實實在在的股權(每年可獲得大約薪水的 75% 利益)。

但是之後 Bill 給我打電話詢問一些搬遷的事情,說實話,聽到這我估計這次交易可能不會成功了。因為搬遷問題就我所知,常使得很多工作邀請支離破碎;同時也是一個公司把某個人是否看作關鍵成員,或者只是一個填補一個崗位的測試。

CEO 開始說:「在深入了解之前,首先申明我們是個初創公司…。」

嗯,這個公司僱員人數超過 100 名,所以並不是一​​個創業公司;撇開這不管,總之「我們是一個創業公司」通常會是一個壞消息的前兆。

「…所以我們將會提供搬遷費,也就是兩個月的臨時住宿費,還有 1 萬美金的機票預算以便你探望東海岸之外的任何家人,但是我們不承擔房屋的交易損失和房產經紀人的費用。」

目前這位 CEO 正在向 Bill 表示歉意,因為他們不能提供一個全套搬遷費用。

對於一個軟件工程師,「搬遷」通常是 3000 美金的一次性打包。因為「軟件工程師」對於管理層來說就是「22 歲具有少量財產,住在父母家的無知男性」。但另一方面,如果你是一個管理者,你會被視作需要考慮的「真正的人」。

這非常有趣,我一直在聽,想知道當你一旦「進入那個俱樂部」後結果會有什麼不同,CEO 和 Bill 之間是平等的談話,沒有那種家長式作風,以及給出一個「這個對你職業生涯很有好處」的權威指導。

這種平等的語氣是一個軟件工程師絕對不會從一個 100 人公司的 CEO 中得到的。

  • 分析「面試」實驗:想要在職場上被尊重最好還是努力提升自己的地位

Bill 有著超人的記憶力,每次面試結束後他都會記錄大量的筆記,所以有很多資料來分析這次社會學的實驗。

這份資料教會了我很多,在 A 公司,Bill 申請的是高級軟件工程師,他被認為「合適」的程度開始有 90(只有 90,是因為因為他沒有博士學位和史丹佛背景)。但是他所不知道的一切都是掉分的,沒有 Spring 和 Structs 方面的經驗,減 5 分; 不熟悉公司的黃金算法?不是一個真正的「數據科學家」,減 8 分;沒有 Hadoop 經驗,減 6 分。

Bill 在「他所不知道的一切」以及「需要多少工作才能讓他快速成長成為一個可靠的下屬」上被評判。

B 公司是一次完全不同的經歷。Bill 從 70 分開始,但是他所知道的一切是都是給他添分的。他能夠說清楚邏輯回歸和最大似然法,加 5 分;而且他還實際實現過他們,加 6 分;他懂得 OCaml,加 5 分。他所知道的一切都對他有利,我認為他還通過不相關的「有趣的人」有所加分,比如說他的旅行經歷。

當一個程序員到了一定的年齡,他知道很多東西,但是同時也有很多的東西他不知道,因為沒有人能夠知道這個行業所發生的所有事情,從 70 分開始從你所知道的事情獲得加分,遠遠比從 90 分開始由於你所不知道的事情得到減分好,除非你在申請一個初級的職位。

這整個問題不僅僅是一個人對技術的掌握程度。作為程序員,我們習慣了學習新技術,這是我們所擅長做的事(即使一毛不拔的商人討厭投資訓練我們)。這是一個社會地位的問題,當一個人在玩工作遊戲時,為什麼地位會他媽的如此重要,遠遠比忠誠,能幹,勤奮重要。

地位的高低並不意味著被喜歡或不喜歡。有些人被人喜歡但是地位很低,有些人不被人喜歡但是地位卻高。通常來說,在工作中擁有高低位比受歡迎更有用、更重要。顯然兩者擁有最好,但是受歡迎地位低的人在垃圾項目中,永遠得不到進步。不被人喜歡卻地位高的人,最壞的情況下也能得到遣散費。

正如 Machiavelli 所說,「如果你兩者不能兼備,被人敬畏遠遠比人喜愛更安全」,人們的喜好會隨著時間變化的,但一個地位高的人不大可能會讓他人對自己不利。

此外如果你地位低,人們最終會找到不喜歡你的理由,除非你不斷地犧牲自我以換取別人的喜歡,甚至用這種方式耗盡時間。

地位高,人們會找喜歡你的理由。地位低,你的缺點會被首要關注,你的優點會被視作不重要的,或許還會經過「是的,但是」之類的反駁將積極的方面變成負面的(比如說「是的,他在 Clojure 方面很擅長,但是他只不過是那些動態類型方面的牛仔程序員之一」,「是的,他很擅長 Haskell,但是那隻意味著他不過是那些靜態類型方面的白痴之一」,「是的,他是一個很好的程序員,但是他看起來不像是團隊中的成員」。)

當你地位低時,你最好的策略是不被人看到,注意到的,因為即使你優秀的特質也會傷害到你。你想要保持清白,等待一種均值回歸現象把你帶入中間階層,在那裡,受人歡迎會幫到你,然後過些時間,會把你帶到中上層或上層。

當你地位高時,那情況將是相反的。你不用努力保持自己的石板空白,實際上所有對你有益的事情會被寫在上面。人們會誇大你的優點,忽略你的缺點(除非這些缺點是極壞的並且危險的),你從 70 分開始,人們會尋找方法來給你增加另外的 30 分。

  • 是什麼讓工程師面臨了這樣的處境?

我一直覺得程序員的社會地位低,上面的實驗也支持這個觀點。顯然,這些都是一些事蹟而不是數據,但是我認為我應該著手給「軟件工程師」的低社會地位一個嚴格的定義。

在當前經濟和市場情況下,程序員的工資到底是低了還是高了,經常會有這樣的爭論。由於這種因素是可變的,不能夠準確的衡量,所以,這種爭論最終會以主觀感受結束而不是一些(客觀)技術上的支持。

「一個人的缺點被關注,還是積極的優點被關注?」使用這種地位的技術觀念,我們有方法不通過比較一個人的薪水和他們應得的工作條件來評估程序員的社會地位。

如果你所處的位置人們強調你的錯誤、忽視你的成就,那麼你的社會地位就低(即使你每年掙 20 萬美元,那只意味著裁掉你的計劃將會很快到來)。

如果你所處的位置和這個相反,那麼你擁有一個高社會低位。

從這個角度看,程序員社會地位低的事實,再清楚不過了。我們永遠也不會付給一個軟件工程師「理想下正確的、公平的價值」的薪水。我們看到的只是技術人員的成就在他們所工作的企業中很少被提到,但是他們所犯的錯誤卻被著重突出。

我曾經在一家公司被告知的第一件事是 4 年前由一個人所造成的生產中斷,那個時候他還是個實習生。(為什麼一句話也沒有提那個讓一個實習生造成事故的經理?因為那位經理的地位高。)

問題的很大一部分原因是程序員向來習慣於勝​​過對方(見:feigned surprise)以證明他們具有更優秀的學識、能力與智力。從外部(即,從我們所為之工作的企業經營者的角度)來看,這些無聊的比賽使得雙方都看起來愚蠢和不足。程序員通過穩妥地降低彼此的地位,毫無閃失地降低了整個群體的地位。

曾經有一段時間,或許離現在有 20 多年了,當時的矽谷是不同的,工程師掌管著局勢,技術人員互相幫助,程序員工作在高度自治和充滿鼓勵的研發環境中。套用一個研發車間的內部標語:壞的創意是好的,好的創意是非常棒的。

矽谷是不合群的人的愛麗絲島,在「牧羊犬」的領導下企圖遠離主流的 MBA 文化(這種文化能夠摧毀行業的創造力)。那個時期結束了,舊金山加入到了由波士頓、紐約、華盛頓和洛杉磯組成的「paper belt」(根據 Balaji Srinivasan 的術語,戰後工業和基建系統非常完善的區域)。風險投資轉向好萊塢那些醜陋的人,矽谷開始成為自身成功的受害者。而灣區的房東使得這個程度更大了。

從 MBA 文化的據點如麥肯錫和高盛出來的一些失敗者找到了競爭力更小的舞台,在那裡他們可以(不受懲罰地)無所顧忌地管理書呆子。如果你還不夠優秀到在銀行擔任總經理,你去西海岸成為一個風險投資創始人。在這種矽谷新秩序下沒有勝出地其中一群人就是軟件工程師。房租漲得比他們地薪水還要快,他們逐漸遠離了創新的同伴,而成為 MBA 文化失敗者糟糕思想的實施者。這是我們現在所處地位置。

  • Coder 社會地位低的情況有解嗎?

那麼發生了什麼事?難道矽谷新的財富吸引作惡者是不可避免的嗎?或者是可以避免的?

事實上,我認為這應該停止,認識到我們現在的處境。有沒有可能在其他地區復制矽谷地成功,而且當資金出現並註入到其中時,我們的地位和自由不會丟失?我想是這樣地,但是我會用另一篇文章來解釋為什麼我們可以保持優勢以及用我們的方式使用實用的策略保持遊戲公平。這是一個大的話題,和我在這篇文章中試圖表達的相去甚遠。

地位的丟失是一件很讓人悲傷的事情,因為科技本來是我們的主場,我們熟悉電腦和軟件,以及算法基礎,但是這些擁有 MBA 文化的侵入者卻不懂。我們應當擁有優勢和保持一個高低位,但是我們卻敗了,為什麼?這裡有兩個彼此相關的原因。

● 第一個原因是我們缺少「牧羊犬」

牧羊犬,在這裡指的是一個好鬥強勢有能力保護善類的人。一隻牧羊犬能夠驅走捕食者進而保護羊群。牧羊犬不會挑起戰鬥,但是卻會以它們希望的方式結束戰鬥。程序員不喜歡「搞政治」,即使他們自己的同類捲入到了辦公室政治中, 他們也很討厭「搞政治」。

結果就是我們沒有太多的牧羊犬保護我們免受擁有 MBA 文化的狼群的入侵。如果有人學習一些保護善類的技巧,​​結果往往會不同。

● 第二個原因是我們允許別人用「熱情」來對我們不利

當我們喜愛我們的工作時,工作會非常努力(我們願意讓它被人知道,我們工作得非常努力)。但是這造成了兩個方面的負面影響:

第一它表明,如果我們不喜愛我們的工作,我們會和其他人一樣對工作不盡全力。管理層通常會有一種政治家的城府,不會隨便表現出他們是否喜愛他們的工作,除非是他們非常信任的人。

程序員,相反地,對待自己工作的態度非常明顯。這意味著那些對工作顯得很高興的人不會得到應得的(他們工作的很努力)升職,因為管理層覺得沒有必要去獎勵他們,而那些對工作顯得不那麼高興的人就會因為潛在的「態度問題」突出在咄咄逼人的管理層面前。

第二個負面影響是,對工作沒有熱情是一種犯罪,尤其在創業公司,我們是不被允許把工作當作「僅僅是個工作」,並且不應該僅僅在給予超常報酬時才付出超常的努力。我們不被允許去「搞政治」保護自己,我們應該充滿熱情「免費的」幹這個工作。

大部分人並沒有意識到正是這種強制性的「熱情」文化降低了我們的社會地位,因為它鼓勵我們無理由,不計條件的拼命工作

失去地位最快地方式是接受當前的低地位狀態。比如說,程序員經常會在人手不足時過度工作,這是一個糟糕的事情(那些高官不相信我們,所以我們通過加班證明給他們看),允許人手不足的情況存在,這樣做就證實了整個團隊的低地位。

管理層是比較機智的一群人,當不到提升或應得的酬勞時,他們會多工作失去熱情。他們的這種態度並不是可憎的,他們不討厭這種態度,但是也不會試圖去掩蓋它。他們不會為違背他們興趣或是降低社會地位的項目與公司付出真正的努力,他們也不會為了成為「熱情的人」而對自己不利。

他們希望自己被看作是一個極其能幹的人,而不是可以無條件犧牲的人。這就是他們和我們的不同之處,管理層一心為自己著想,並且對事實相當開放。相反地​​,程序員卻因一些形式的自我犧牲自居為英雄:比如說犧牲週末來交付項目,最後被取消了;或者在沒有搬遷費的情況下搬到舊金山,因為他「真的相信」那個他甚至都不能連貫描述的產品,並且他還將會擁有百分之五的股份。

管理明白互惠性,他們付出恩惠來賺取恩惠,但是不會去做犧牲自我。當「工作」不再愛他們時,他​​們也不會掉進「對工作的熱愛」的自我幻覺中去。他們不怕「搞政治」,因為他們認為他們的工作主要就是政治,只有那些能夠負的起對政治漠不關心的人或求同的人才是可信賴的政治贏家。

如果程序員想被認真對待,我們也應該被認真對待,那我們就必須對我們的妥協做出反思並且開始修補。甚至這是「政治性的」。我們應該停止吹噓無意義的自我犧牲,並開始為我們自己以及我們的價值發聲。

  • 延伸閱讀

上班打卡制、下班責任制,這樣的企業別跟我談競爭力!

(本文轉載自合作夥伴《伯樂在線》;未經授權,不得轉載。圖片來源:muir.ceardach,CC Licensed)