Linus Trovalds談Linux內核開發管理風格

譯者注:本文號稱是Linux它爹Linus Trovalds親筆寫的關於項目管理的文章。Linus Trovalds在業界素以脾氣火爆,語出驚人而聞名,誰要是讓他不爽,他就直接伸出中指來F**k(參見),本文也秉承了他這一向的風格。儘管沒有中國人推崇的謙虛的美德,可是Linus在軟件領域方面的不少觀點是至關有價值和值得分享的,這也是翻譯本文的最初動機之一。程序員

在翻譯本文的時候,譯者坐臥不安,生怕理解不到或者誤解了大神的觀點。限於能力,譯者不敢保證翻譯必定到位,所以還請各位讀者不吝賜教。segmentfault

關於文中的粗口部分,原文是」d*ckheads「,出於和諧的因素,譯者就直接用你們喜聞樂見的」SB」來代替了。其實英文直譯的意思要比SB重口味得多,感興趣的讀者能夠本身查字典。如下爲譯文。編碼

Linus

這篇短文是描述了一種「理想的」(固然也能夠說是「自覺得是的」,各類見解因人而異)Linux內核開發管理風格。這篇文章從某種意義上來講就和編碼規範文檔差很少,有了這篇文檔,就能夠避免老是重複地回答一樣(或者相似)的相關問題。spa

管理風格實際上是因人而異的,並且很難像編碼風格同樣,單純用數量來衡量。所以這篇文檔沒法保證必定具備實際的參考價值。關於這一點,咱們有言在先。你能夠根據本身的狀況來決定是否接受。.net

順便提一下,咱們所說的」內核經理「,明確地指(負責內核開發的)技術經理,而不是傳統意義上公司內部負責行政的經理。若是你平時的工做涉及到採購或者是制定公司預算,那你基本上就不屬於咱們討論的內核經理的範疇。若是是這樣的話,本文就不適合你。翻譯

首先,我建議讀者去買《成功人士的七個好習慣》這本書,而後千萬不要讀這本書,而是燒掉它。這種行爲能夠代表一種對所謂成功學的蔑視態度。blog

(*)本文絕對不會用來回答各類提問,而是要向那些提問者們闡述一個很是痛苦並且明顯的事實:大家問的問題咱們根本就不知道怎麼回答。遊戲

廢話少說,咱們開始:項目管理

第一章:決策

咱們都以爲:經理的主要職責是作決策,並且作決策這件事情是很重要的。決策越大就愈發棘手,就須要職位更高的決策者來決定。這種說法看上去真的是又明顯又有道理,但事實並不是真的如此。開發

讓咱們來作一個叫作」不要作決策「的遊戲吧。尤爲是,當你被人要求」在A和B中選出一個」的時候,若是你是技術經理,對不起,那你的麻煩就來了。你手下管的人其實比你更明白各類事情的細節,若是他們都須要讓你來作一個選擇,那你算是完全失敗了。很明顯,你的下屬比你更有資格去作正確的決策。

(由一樣的邏輯咱們能夠知道:做爲技術經理,若是你手下管的人對技術細節的瞭解程度還不如你,那你又敗了,無論是什麼緣由。這種局面只能說明:你不適合作技術經理的工做,相反你的下屬反而比你更適合這個職位)

因此說,技術經理要「避免作決策」,至少那種又大又難的決策不要輕易作。那種規模較小,影響不大的小決策卻是能夠作,而且可讓你看上去稱職,因此技術經理要作的事情就是把又大又難的決策拆分紅不少可有可無的小事情,小事情是沒有人會真拿它當回事兒的。

這還能夠幫助咱們認清「大決策」和「小決定」的區別,其主要區別就在於:你是否在過後有機會去糾正錯誤。若是你要把大事化小,那你必定要確保本身老是有機會去看看是否是作錯了(或者會不會作錯),若是錯了,你能夠浪子回頭,避免損失。這樣一來,忽然你就能夠作不一樣的決定了,正確的決定和錯誤的決定,就像靈活而善變的企業管理人員同樣。

人們還真把這個當成是「領導才能」的象徵(放屁)

其實「避免作大決策「的要義在於「不要作你沒法挽回的事情」。不要把本身逼到沒有退路。要記住,狗急了能跳牆,兔子急了會咬人,技術經理被逼到走頭無路的時候,只會掛掉。

」可挽回「的原則至關清晰明瞭,就算再荒唐再沒大腦,也不會讓技術經理去承擔主要財務責任。由於花出去的錢就是潑出去的水,沒法挽回,惟一可以挽回的是」技術性決策「,技術性決策的挽回是很簡單的:把你手下的弟兄罵到半死,而後再跟全部人說抱歉,而後把去年搞砸的工做從頭再來一遍。這樣一來,你去年作的決策就再也不是什麼大決策了,由於這個決策失敗的後果是能夠挽回的。

不過有些人可能無法採納上述的方法,理由有以下兩點:

-認可本身是白癡比看起來難。咱們都要面子,公開場合說誰誰誰錯了這種事情多數時候是不那麼容易的。

-要讓別人告訴你,你去年作的工做徹底就沒有意義,這很畢竟不容易作到。對那些級別很低微的程序員來講也是如此。若是所謂的「重作「就是把他們原來的工做不分青紅皁白地刪掉從零開始,這樣你極可能就會不可挽回地失去他們的信任。要記住:」不可挽回「是咱們要不遺餘力避免的,一開始就是如此,咱們要避免讓咱們的決策成爲一個」大決策」。

幸運的是,上面所說的兩個理由能夠想辦法緩解,咱們不如一開始就放開心態,大大方方地認可本身其實沒有什麼好辦法,告訴你們如今所作的決定全都是很是初步的,頗有可能出錯。你要一直作好改變的準備,而且讓你們也都知道你是這麼想的。這樣就會在你犯錯的時候,讓本身更加敢於面對和認可本身的愚蠢決定。

若是你心態開放,那你犯錯的時候,人們也只是輕描淡寫地說:「瞧,他又錯了「。

這種主動放低姿態的方式還會讓你們在工做的時候養成三思然後行的好習慣,無論這個工做是否是真的須要那麼謹慎。畢竟,若是你們在不是」很是確認這是個好主意「的狀況下,你就不該該承諾說必定讓你們的代碼歸入到最終產品中。這樣你就確保了他們在木已成舟以前充分地進行思考。

記住:你的屬下最比如你知道更多的技術細節,而且他們一般以爲本身是萬能的。做爲內核技術經理,你要作的就是不要去幹涉這種自負的情緒,而是要對他們的能力和做爲作更深入的思考。

另一種「避免作決策」的好辦法就是賣萌,技術經理能夠可憐兮兮地問:「咱們能不能以兩個方面都兼顧呢?」。相信我,這招絕對好使。若是兩種方案之間並沒有明顯的優劣之分,你這麼一問,你的下屬們就會本身去解決問題。最後,分別支持兩種方案的雙方會各自放棄原來堅持的方案,而且都會很是不爽(可是能達成妥協性的一致)

也許你以爲這樣的作法很失敗,可是實際的狀況是,極可能兩種方案都存在問題,人們之因此沒法作出決定,是由於他們都是錯的。你的作法,其實是停止了雙輸的局面,雖然會有人不爽,但也是長痛不如短痛,何況,你還成功地避免讓本身作一個差勁的選擇,若是你不這麼作,極可能你就搞砸了。

第二章:人

咱們身邊的人基本上以白癡居多,做爲技術經理,就意味着你必需要和這些白癡打交道,這麼說還不太確切,確切地說,是他們必需要和你折騰。

技術上犯了錯誤,咱們還能夠挽回,可是人若是發神經,那真是很差辦。因此你必需要學會處理這些人的神經病,固然,也要學會處理你本身發神經的狀況。

然而,爲了讓你成爲一個稱職的內核技術經理,你必定要記住:「留得青山在,不怕沒柴燒」,對你手下的內核開發人員要學會寬容。很顯然,得罪人容易道歉難。所以」得罪」這個詞語很馬上地就被歸結到「不可挽回」的範疇中去了,這個在咱們第一章所說的內容裏是嚴格被禁止的。

那麼,爲了避免得罪人,你應該遵照下面兩條規矩:

(1)不要用「SB」這種詞語問候他人(至少在公開場合不要這麼作)

(2)若是你違反了第一條,那麼要學會怎麼給別人道歉

第一點所說的內容是很不容易作到的,由於罵人的辦法實在太多了,就算你不用」SB」,仍是能找到不少其餘一樣效果的詞語,甚至有的時候,你出口成髒,本身都沒有意識,並且每每伴隨着極端的狂妄和自負。

你越自覺得是(讓咱們面對事實吧,人人都想隨意罵人SB,而且多數時候你都認爲本身是對的),你就越不可能在過後跟人道歉

爲了解決這個問題,你只有兩個選擇:

-真心誠意給人道歉

-把愛灑向人間,讓每個人都沐浴在你愛的陽光裏,這樣就沒有人會感覺到你的敵意。變得極富創意的幽默,讓你們每天笑口常開。

其實後面那種超級好人的作法是不存在的。由於一看就是裝出來的,沒有人會信任這種人。

(*)保羅.西蒙斯唱過《Fifty Ways to Lose Your Lover》,說實在話,」告訴開發者他們是SB的100萬種方法「這種主題好像和原來那首歌徹底不搭調,可是我想西蒙斯也可能會考慮要不要唱一下。

第3章:人II – 如何作好人

若是周圍的人都是白癡,很遺憾,你本身也是白癡的一員。在咱們躺在本身創造的」周圍的人都不如我「的意淫中(說實話,不多有人認可本身水平通常或者是不行)的時候,咱們也該考慮一下認可現實,咱們並不敢說本身是獨一無二地優秀,身邊老是有些人要稍微優秀一些的,而咱們本身極可能真的就是個白癡。

「愚者怒,智者用「

做爲一個內核的維護者,面對比你更聰明的人,確保你本身是智者。盡情地和他們套近乎吧,由於他們幫你幹活,讓你的工做更輕鬆。尤爲是,他們甚至還要幫你去作決策,這個行業不就是這麼玩兒的麼。

因此,當你發現有些人比你聰明的時候,你就」袖手旁觀「就對了。你的管理責任多數時候就變成了兩種不一樣的問話:」聽上去不錯,整吧「,或者」聽上去不錯,不過那個xxx你以爲怎麼樣?」。後面那個問法很管用,若是你想了解xxx是怎麼回事,或者你想委婉地向一個比你更聰明的人表達不一樣意見的時候,你就能夠這麼作。不管是哪一種狀況,你都是最後的贏家。

還有一個事情必須指出,人非聖賢,不可能面面俱到。你想要鞭策你的下屬努力向前,可是要認清楚,他們在你要求的方面也許沒那麼優秀,也許是作什麼錯什麼。關於這個問題,好的一面是,人類通常都會自覺地回到他們擅長的領域中,因此說不是你本身破釜沉舟,他們就真的能跟你一塊兒破釜沉舟。因此不要逼得太狠了。

第4章:學會處理批評

事情可能會出岔子,並且確定有人會爲此遭受批評。沒準這我的就是你。

實際上,被批對任何人來講都是不愉快的,尤爲是你們都認爲「又不都是個人錯」的時候。這樣就造就了咱們面對批評的最好心態:「替別人承擔責任」。若是你是幫別人承擔批評,那一種榮譽感就油然而生,真正該被批評的那我的也由於沒有被罵而很高興,那個由於大家的工做失誤而損失了36個G的愛情動做片的倒黴客戶,雖然很是不爽,可是至少也會對團隊敢作敢當的風格表示一下讚許。

接下來,就是找到那個真正惹了麻煩的開發者(若是你真的能找到他的話),私下裏跟他說:你搞砸了。這樣作的目的一方面是他之後不會將錯就錯地抵賴說是你惹的事兒,另外一方面是你要讓他知道他欠你我的情。接下來,也是很重要的就是,他應該作點兒什麼去彌補錯誤了。實事求是吧,是你搞砸的,又不是我,總不會讓我去彌補吧。

承擔批評和責備也是你做爲技術經理最重要的職能之一。你的兄弟會由於你敢作敢當而信任你,打心眼兒裏佩服你,由於你是那個真正敢把「咱們搞砸了」這句話說出口的人。若是你一直是這樣的人,那麼我相信你如今已經對這個問題處理得如魚得水了。

第5章:該回避的就回避

有同樣東西是比直接罵人SB更可恨的,就是僞裝仁義道德地用關心的口吻罵人SB(」某某某,我這是爲你好,我當大家是個人孩子同樣,我這是鍛鍊你……」,耳熟不? —— 譯者注)。罵人SB過後還能夠道歉,第二種的話真是連道歉的餘地都沒有了。採用第二種作法,基本上就是自絕於人民,就算你有什麼觀點是對的,人家也都再也不聽你的了。

固然,咱們每一個人都認爲本身比別人更優秀,這均可以理解,可是你要是裝13,那就徹底是另一回事了。你或許認爲本身頗有節操,或者在智力上超羣,比你周圍的人都優秀,可是不要作得太明顯,除非你想刻意激怒別人。

一樣的道理,不要刻意強調禮貌,也不要敏感得不得了。禮貌這種東西要麼就會讓人得寸進尺,要麼就暴露不出問題,一樣,人們也會說:「在互聯網上面,你敏感個頭啊,誰會理你?」。若是你要想表達什麼觀點,那就老老實實地講給人家聽,所以除此以外,沒有別的辦法能讓人明確你究竟是什麼意思了。

固然,在表達觀點的時候講一點幽默,不管是從人際關係上仍是從效果上,都會有所幫助。把觀點誇張到極致,甚至是到荒唐的程度,反而能夠下降別人對你觀點的敵意,哪怕人家一開始認爲你簡直就是白癡。一樣,這種作法還有助於讓人與人之間解開心理防備,咱們多多少少都有一些這樣的問題,不是嗎。

(*) 提示:有的時候,去那些和你的工做不直接相關的社交媒體上罵一罵口水戰,是頗有利於你轉移對工做的負面情緒的。在這些地方飈一些語言尖銳,冷嘲熱諷的帖子出去,幾乎每次均可以讓你的情緒獲得發泄,而後你的心態就會恢復平靜一陣子。可是注意,別去那些人家認識你的地方,以避免被人發現。

第6章:爲何選我?

做爲技術經理,你又要幫別人承擔責任和過錯,又要在衆人面前顯示出本身的弱點,那麼你必定要問的一個問題就是:我是作了什麼孽?爲何一開始要幹這個?

首先,也許你家裏處於青春期狂躁的少女(或者少男,這裏我可不想對男女生青春期誰更狂躁作討論,更不想涉及性別歧視的問題)狂敲你屋子的門對你大吵大鬧,你是否是會感受到強烈的「責任感」,而且伴隨必定的「成就感」? 其實不要在乎你是否是真的跟得上全部人的節奏,也不要在乎你能不能遇上其餘人的速度。反正在你們的眼裏,你就是負責人。

只要能把事情搞定,你就牛了!


原文:Linus on kernel management style
轉載於:伯樂在線 - 黃小非

相關文章
相關標籤/搜索