點擊參與 2020 開發者大調查:https://bss.csdn.net/m/topic/dev_survey2020,有效資訊填寫者均能在第一時間獲得包含專家解讀和豐富干貨調查報告的電子版,還有幸運大獎等你來拿,
【編者按】有個很有意思的話題,拿高薪的工程師得做出什么樣的成績才能對得起他們的薪水?一般來說,大部分公司都會選擇增加他們的作業量或者作業難度,因為他們的薪水比別人高很多,但是,”硅谷公司“不這樣做……
原文標題:What Silicon Valley "Gets" about Software Engineers thatTraditional Companies Do Not
原文鏈接:https://blog.pragmaticengineer.com/what-silicon-valley-gets-right-on-software-engineers/
作者 | Gergely Orosz,已獲作者翻譯授權
譯者 | 彎月 責編 | 張文
頭圖 | CSDN 下載自視覺中國
出品 | CSDN(ID:CSDNnews)
以下為譯文:
我曾在多家公司作業,既有傳統的咨詢公司,也有投資銀行,還有飛速崛起的科技公司,我也曾與很多軟體工程師交談過,他們之中有人在創業公司作業,也有人從事銀行、汽車和高科技,而更多的則是傳統公司,這些公司有很多都在硅谷,但也有總部坐落在硅谷之外的公司,
我發現,硅谷公司總是能“獲取”一些傳統公司既不能理解也無法在實踐中實作的價值——尤其是在歐洲,有一些實踐經驗能夠促進公司的創新,幫助工程師得到更好的專業成長,或者說讓工程師發揮更大的價值,硅谷公司可以(也愿意)支付更高的薪水,同時也能夠從同一個人身上獲得更多價值,
在本文中,我通過“硅谷公司”來代指那些能夠從每一位工程師身上獲取更大價值的現代公司,且這些公司的總部坐落在硅谷(盡管有很多新起之秀并非從硅谷起家),這類公司的每位工程師的產出能夠與 Facebook 或 Google 一較高下,他們使用的方法都很類似,而且能夠從其他硅谷公司吸引到人才,
這些公司之所以技高一籌,主要體現在以下幾個方面:
軟體工程師的自主性
在傳統的公司中,開發人員只需要等著上級給指派作業,大多都是 JIRA 上的任務票,這些任務票由產品經理或專案經理審核,任務票上記載了作業的關鍵細節,而開發人員只需要按照任務票完成作業,除非任務票中有一些細節需要被澄清,否則就不需要提問,
然而,在硅谷公司中,情況就會有所不同,公司內有很多專案,還有很多程式經理和工程經理,但大多數時候,工程師需要靠自己弄清楚如何完成作業,包括一些重大決策,而且會得到公司的鼓勵!在有些情況下,專案的負責人由工程師擔任,這樣可以方便分解作業,而有些情況下,則由工程經理或高級工程師來承擔這些作業,無論采用何種方式,公司都希望鼓勵工程師著眼全域,打破固步自封,解決所有他們發現的問題,
工程師的積極主動性是硅谷公司的成功,在這些公司中,經常能看到有些服務和功能是在工程師的建議下構建的,或者在團隊成員的倡導下,多個團隊共同合作投入專門的時間來解決技術負債,而等著經理來告訴工程師該做什么,或者將他們的作業分解成小塊,或事無巨細地管理團隊,反而不正常,所有人都是自我管理,
在傳統公司,開發人員只需要完成分配給自己的作業,而在硅谷公司,開發人員需要主動解決業務上的問題,這是一個巨大的差別,會影響到工程師每一天的作業,
在傳統公司,開發人員只需要完成上司分配的任務,這種人員管理的方式最終都會形成等級制度,我曾與某家銀行的職員交談,他們公司的專案管理有 6 個等級,而開發人員處于最底端的兩個級別,所有的決策都必須來自第三層以上,真正干活的人基本上沒有任何話語權,不用我多說你就能猜到,這家公司一直被一個問題所困擾:如何讓軟體工程師好好干活?
圖:等級制度,一些傳統公司仍然采用了這種形式
與這類公司相比,有些公司則非常清楚工程師有能力解決問題,他們能夠比其他任何人更好地解決實際問題,領導都明白爭取利益最大化的方式,就是告訴工程師所有的業務背景,給他們執行的空間,
圖:向下傳達業務目標,并賦予工程師自主權,讓他們來做決定,是組織快速前進的動力
有思想,有能力的工程師
傳統公司往往認為,工程師應該將 8 個小時的作業時間全部花在編程上,任何時候,只要工程師沒有坐在電腦前面寫代碼,就是在浪費時間,而且他們不惜高額成本來證明一點,我曾聽見有人這樣說:
軟體工程師的工資比很多職位都要高,我們需要相應的回報,我們不能讓他們閑著,
硅谷公司則認為軟體工程師是組織中最適合解決問題的人群,招聘工程師不僅是為了技術,還有溝通與解決問題的能力,他們的看法是:
軟體工程師是我們公司中薪水最高的人群,這是因為他們撰寫代碼和解決問題的能力能夠帶來最大的價值,我們希望他們多多接觸業務,這樣在完成“常規”作業之余,他們還能發現更多重大商機,
在實際作業中,一位有動力的工程師創造的價值是一位聽命行事的“工廠工人”的數倍,最差的結果也不過是,在規范清晰正確的情況下,兩位工程師都拿出同樣的產出,然而,勇于解決問題的工程師在著手作業之前,往往會停下來認真思考,尋找更有影響力的機會,當我問硅谷公司的幾位工程師,是否可以做X之后,過了一段時間他們給我的答復是:
-
“我做了一點調查,我們確實可以做 X,但是縮小這個功能的范圍也不會對業務有任何影響,我們無需做任何代碼變更就可以推出這個功能,只需要修改幾個組態檔,”
-
“對于我們是否可以推出這個專案,其實我有點擔心,我覺得我們應該暫時放一放,我調查了一下我們的競爭對手,其中有一家推出了類似的功能,但在被監管機構調查后,又撤銷了這個功能,你有沒有問公司的法務團隊,我們是否可以推出這樣的功能?”
-
“我看了一下積壓的功能串列,專案 Y 與之非常相似,如果我們可以將專案 X 和專案 Y 結合到一起,那么就可以同時發布兩個產品,而且還無需額外的開銷,”
-
“我們可以在舊的基礎設施之上構建這個專案,但是等到一個月后,我們的新基礎設施搭建完畢,我們還需要再進行移植,這個專案可以推遲一個月嗎?等到新的基礎設施準備好之后再動手,就可以避免雙倍的作業了,如果業務上沒有特殊的需求,要我們在一個月之內推出這個功能,我真心建議再等一等,”
與遵從指示相比,鼓勵工程師解決問題的環境帶來的價值更高,而且能夠做出更好的決策,
內部資料、代碼與檔案的透明度
硅谷公司非常重視透明度,盡管也有一些例外,比如蘋果或 Palantir,他們給工程師的資訊太少了,我發現大多數硅谷公司都愿意分享他們的資訊,他們在通用資料保護條例(GDPR)、個人身份資訊(PII)以及其他規定的范圍內盡可能地分享資訊,
員工(不僅是工程師)都有隨時訪問業務指標與資料資源的權限,他們可以撰寫自己的查詢,并生成自定義的報表,在 Skyscanner,員工每天都會收到有關每日收入明細的匯總郵件,而在 Uber,員工也會收到有關類似指標的周報,
隨著各個公司的發展與上市,這些資訊會被整合,但是,工程師仍然可以訪問公司的業務資料,幫助他們做決策,而在傳統的公司,基本不會出現這樣的情況,工程師拿到的是規格說明,只有上層才知道決策后面的原因——至少,公司的宗旨就是這樣,
公開業務與業務指標
硅谷公司希望每個團隊成員都了解他們的作業將會影響到哪些業務,以及會造成怎樣的影響,團隊的目標只是推出某個功能的情況非常罕見,比如推出功能 1 可以降低 2%的客戶流失率,或者推出專案 X 預計每年可以增加一千萬的收入,
硅谷公司鼓勵工程師多接觸其他業務人員,與工程師之外的人員建立關系,在實踐中,很多高級工程師都會與產品經理結伴參加客戶研討大會,但是,我也見過新來的工程師很快就直接與業務利益相關者打成一片,
相反,在傳統公司里,開發人員基本上不可能接觸其他業務人員,但是,他們可不會表現出來,他們會說:“我們不希望打擾工程師”,我也曾聽說,有一位工程經理希望團隊成員參加產品發表,卻被產品經理拒絕,他們的借口往往是:“我們希望他們好好作業,不希望他們被打擾,”
如果傳統公司里的某位工程師與團隊以外的人員來往,就會被人說:“不夠專心”,“浪費時間”,或者“不務正業”,這類“不正常”的行為常常會給他們的業績評價帶來負面影響,
聽起來非常荒謬,有些公司手握一流的解決問題高手,卻強制把他們塞進了小格子里,然后說“你只需要寫代碼”,但是現實就是這樣,同時,試圖通過代碼行數來衡量工程師生產力,或者抱怨為什么工程師不關心產品,也是同一類公司,
工程師之間的三角溝通
如果你是一位工程師,并且你想問另一個團隊一個問題,則可以看看傳統公司與硅谷公司之間的差異,
傳統公司鼓勵等級式溝通,這不僅可以“保護”工程師,而且因為處于這些職位的經理更希望充當資訊樞紐,他們不愿放棄這部分的管控,如果你想問另一個團隊一個問題,則需要:
圖:“傳統”/等級制度組織中的溝通
硅谷公司鼓勵工程師之間直接進行溝通,不經過中間人,這種溝通方式更快,即便其他團隊的工程師幫不上忙,也可以回到“傳統”模式,找經理幫忙促進討論:
圖:更有效的溝通
努力改善開發人員的作業體驗
2020 年是糟糕的一年,不是指寫代碼方面,寫代碼很容易!而是因為其他相關的作業:設定依賴性、部署到生產或測驗環境、CI/CD、監視與警報,如果你在一個由多人組成的團隊之中,那么可能沒什么問題,然而,你遲早都會遇到這些麻煩,
隨著公司的發展,開發人員的體驗會越變越糟,剛開始的時候,都是一些小問題:構建時間變得遲緩,依賴性增加,或者需要修改跨多個服務的代碼,慢慢地,團隊需要搞清楚各自負責的服務;一些遷移規模雖小,但因為涉及多個團隊,而出現失敗;乃至最終需要重新定義整個工程架構,
框架和庫的變化速度非常快,而且很多工具很難跟上步伐,對于各個公司來說,如果不希望開發人員的體驗變糟,就必須鼓勵工程師側重于解決問題,建立各種基礎設定、平臺和 SRE 團隊,
一些的軟體工程師的作業目標只是為了讓其他軟體工程師能更快地作業,聽起來似乎有違常理,但很多時候并非如此,幫助這些公司快速發展,能夠獲得巨大的回報,而且開發人員也更加快樂,
自主性與高薪之間的杠桿效應
硅谷公司愿意向工程師支付高薪,為的是獲得更高的杠桿率,因為這些工程師帶來的價值超過了他們的薪水,這種杠桿效應既可以來自規模,也可以來自業務發展,減少在不必要的溝通上浪費的時間,利用工具等都可以為這種杠桿帶來價值,給工程師足夠的自主權,可以為業務發展做貢獻,也可以保持高杠桿率,
如今 Google、Facebook 和其他公司支付的高薪都是規模的杠桿效應,這些公司的工程師構建的功能擁有數百萬的用戶,這種杠桿效應和附加的價值本身就是回報,
圖:自主性越高,杠桿率越高,創造的價值越高,薪水就越高(同時公司還能攫取巨額利潤)
硅谷公司就是利用軟體工程師來發展業務,FogCreek 的軟體工程師正是通過這種方式實作了百萬美元的廣告分類,Facebook 的工程師和設計師也是通過這種方式構建了點贊按鈕,這個小小的按鈕帶來的是幾十億的商機:Facebbok 通過按鈕定位廣告,并在 Facebook 之外追蹤用戶,
如果上面這些人在傳統環境中作業,那么他們的想法永遠也不會有機會實作,硅谷的創業公司鼓勵工程師提出商機,然后再實作,提出想法的人和公司業務都可以從中獲益,
利用工程師建立杠桿效應的公司根本不發愁支付市場最高昂的薪資,甚至超過最高水平,Basecamp 就是一個很好的例子,雖然不是科技巨頭,但他們也很好地利用了工程師,因此他們也能支付軟體市場的高昂薪資,同時還能保持盈利,
整體最大的區別
不同型別的公司在處理與工程師之間的關系方面有很多差異,最大的區別就在于,硅谷公司認為工程師能夠創造價值,擁有解決問題的能力;而傳統公司則將他們當成工廠的工人,
思想上的這種分歧導致,思想比較前衛的公司不僅能夠支付更高的薪水,而且還能給予工程師更多自主權,而工廠工人的價值是預先定義好的,你可以做出預算,另一方面,如果利用得當,富有創造性、能夠解決問題的工程師可以帶來10 倍的價值,因此,向他們支付更高的薪水,給他們更多自由,自然也很合理,因為這是你激勵他們貢獻更多業務價值的手段,
在硅谷公司之類的環境中作業過的人,很難回到傳統的作業場所,在那里,每個人的職責都有明確的定義,每次你離開自己的小格子,就會有人皺眉頭,
作為軟體工程師,在負責解決問題的環境中作業更加令人心神愉悅,而不是作為一名工廠工人,如今的你身在哪邊?
原文:https://blog.pragmaticengineer.com/what-silicon-valley-gets-right-on-software-engineers/
本文為 CSDN 翻譯,轉載請注明來源出處,
參與開發者大調查猛戳這里:https://bss.csdn.net/m/topic/dev_survey2020
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/275431.html
標籤:其他
上一篇:UNIX的名字是我起的——對話 UNIX 開發者:Brian W. Kernighan
下一篇:CSDN【精品專欄】第14期
