1. 程式人生 > >程序猿生存定律--管理向左,技術向右

程序猿生存定律--管理向左,技術向右

類比 核心 每天 關聯 減少 eas 控制 理想 技術工

一個程序猿在考慮增值時無法回避的一個根本問題是究竟是做技術還是做管理。當然也有些職位會介於兩者之間比方架構師。但我們臨時不去做細分。而是用簡單的二分法。

這樣的基本方向上的選擇對興許非常多細節上的取舍有關鍵影響。所以在考慮其它之前。最好先回答一下這個問題。這就和修煉時要選擇少林、武當、華山還是魔教一樣,一旦選擇,基本上是回不了頭。

當然選擇管理不意味著不須要掌握編程技能。畢竟當下大多公司還是信奉“宰相拔於州郡。將軍起於行伍”的。但當技術達到一定水平後,管理還是技術這樣的方向性的選擇將對下一步做什麽有比較大的影響。在考慮那個方向前,則要先弄清楚管理和技術的關鍵差異。

技術與管理的關鍵差異

到了30幾歲後。轉為管理人員的程序猿經常會調侃自己的技術能力:當年解決這樣的有時出、有時不出的Bug時,我經常在其前後都加幾條調試輸出。這招非常管用非常可能立馬就把它搞定了。結果多年後維護這代碼的人困惑了,還來問我,這句為啥不能去掉,看著也沒用啊。事實上我也不知道,僅僅能說運氣和人品在程序裏也是非常有影響力的。

這是管理人員的一種真實寫照。大家都知道,一旦走上管理崗位,那就和ppt越走越近。和代碼越走越遠了。盡管他仍然要跟蹤最新技術的動向,但他非常可能已經無法深究非常多技術細節了。

據說微軟這種公司推崇一個人要想走上管理崗位。那要先把自己的代碼用遠少於別人的時間寫好。省下來的時間才用來做管理工作。

這非常好,也不是全然不可能,但大多時候非常難。須要非常強大的天分。大多數人是做不到的。

主要原因是管理和技術所要處理的問題有根本上的差異。

管理者往往須要處理很多與人相關的事情,這導致要處理的事情是碎片化的,假設堅持編碼,那麽每天的打斷往往會大幅減少寫代碼的效能。大家都知道編碼是須要專註的。

管理工作總是須要面對大量的瑣碎工作的,比方:老板對項目不滿要趕緊去說明,免得發酵成大問題;人力缺了要趕緊協調,一是要能要到人,關鍵還得能要到合適的人;工具缺了。要趕緊購買。兄弟們有情緒了。要趕緊安撫。PPQA了有抱怨了,要趕緊改正。

假設工作進一步泛化,還要涉及到預算、評估、職業路徑規劃等。

我們非常難讓這些事情依照自己的節奏發生,假設管理人員做編程,終於這些都會變成一種對編程工作的隨機性幹擾。所以一般來講非常難把它們非常好的與編碼結合在一起。想象一下。一個管理人員負責某個項目中影響關鍵路徑的某個模塊,接下來上面所列的意外發生了。那這個管理者怎麽辦?

唱歌的時候常說到Key或者調門這個詞。

相同是《花心》這首歌。周華健的用的Key和原本的沖繩民謠《花》的就不同,這導致兩首歌聽起來區別就非常大,全然不一個感覺。或許能夠說管理也是一種技術,但管理和設計編碼這樣的技術的Key不一樣。做技術須要面對的是程序,程序是講道理的。Stack Overflow時它一定會崩潰。而做管理時須要考慮技術因素,但更須要面對的是各種人,人則僅僅在一定程度上講道理,所以管理不僅僅是一種技術。

因此基本上能夠覺得管理和技術時全然不同的兩個方向。

假設大家細心觀察周圍,就會發現,做技術(編碼)的往往能夠轉去做管理,但做管理的再轉回做技術(編碼)就難了。這意味著技術背景對做管理往是非常有幫助的,而管理背景對做技術則差點兒沒用。

了解到這樣的差異後,要想做出自己的那份選擇,還須要考慮三件事情:一是既定環境下技術路徑到底有多長,也就是說做技術有前途麽。一是個人的性格適不適合做管理工作;一是做管理工作可能會有什麽負面影響。

這三點將在接下來的三個小節中分別進行探討。

技術路徑長短對前途的影響

程序猿往往自嘲自己是“碼農”,不知道這詞是那裏出來的,但聽起來“碼農”和“農民工”已經有點近似了。而“農民工”往往是收入低。工作時間長的代名詞。

這就折射出了一個非常尷尬的事實,在非常多公司中,單純從收入的角度來看管理職位是要高於純粹的技術崗位的。

這並不是是一個絕對規則,前文就以前提到早在20年前,微軟的超級程序猿就能夠擁有比管理人員更高的工資,能夠擁有多輛保時捷。但在技術路徑短的公司裏,管理人員收入偏高這事情卻具有必定性。

當一個公司的核心技術並沒有創生多大價值,而是須要靠人力規模、商業模式等來支撐業務的時候,那麽我們能夠稱之為技術路徑短的公司。

想象一下,假設一家公司專門承接本地化工作,那麽或許也會須要程序猿編制某些工具,但對程序猿而言技術路徑無疑是短的。

假設臨時把眼光從程序的世界移開,那麽事情就能夠看得更清楚。

在蓋樓的時候,僅僅要達到主要的質量,一個人每天砌200塊磚,固然比砌100塊要好的多。但相對於大樓而言。多砌100塊磚。所多帶來的價值有限。再進一步因為砌每塊磚的價值是固定的,同一時候一個人每天所能砌的磚也是有限度的,這就會導致砌磚工人,無論多麽努力。其收入水平必定會被限制到某一個較低的水平,僅僅要他的工作還僅僅是砌磚。這樣的限度是由這一工作的內涵所決定的,倒不是誰遭到了鄙視。

再類比到軟件行業裏,單純的在既定接口下實現已定義的業務邏輯就是技術路徑比較短的工作,是體力密集型的;而分析業務邏輯,控制總體架構或者去研究TTS的算法則是智力密集型的,技術路徑較長。

在選擇方向時關鍵要避免的是選擇了技術方向,但身處的現實中技術方向卻路徑較短,或者喜歡管理但跑到了純粹技術流的公司裏,這樣的選擇其內部所蘊含的矛盾會給當事人的人生造成極大的困擾。

比方說開發小型信息管理系統時,其所須要的技術含量並不高,公司的主營假設是這個,單純的做技術可能會直接影響收入。這是一個須要考慮的非常現實的事情。

什麽樣的程序猿適合轉管理

《黑客帝國》的動畫片中有一集叫做“Matriculated”,在這一集裏有個機器人被逮住後,人類通過各種場景讓他相信自己是個人類,計劃看似成功了,但實際卻不是。這個動畫的啟發意義在於,先天帶來的非常多東西,比方性格等實在非常難改變,很多其它時候選擇順應自己的天性比選擇對抗更加明智。

從先天性格來看,確實有的人天生適合做管理多一點。有的人天生適合做技術多一點。

比方說:

有的程序猿天生有點被動。不喜歡主動學習非常多東西,不喜歡與人溝通,但對工作所直接關聯的領域研究較深,做事情兢兢業業,一絲不茍。

有的程序猿非常聰明,理解東西非常快,但不願意搭理別人,總感覺別人水平比較差,脾氣也比較暴躁。

有的程序猿精力充沛,對技術狂熱,但並不僅局限於技術本身,有大局觀。有理想,能堅持。

單從性格而論前兩者都不太適合做管理工作的,一旦做了管理工作。接觸各種性格的人,easy造成人際關系緊張,反倒對自己形成一定的壓力。極端情形下就會精神失常。

單純的由於收入而選擇管理工作,並不總是明智的,你可能無法適應,反倒導致事業出現起伏---不要低估這點的影響。現實中許多的人由於這樣的錯位而使人生走入低谷,甚至生病。

在大五模型裏用五個因素來考察人格特質:

外傾性(extroversion):

外傾者者傾向於喜歡群居。善於社交和自我決斷。內傾者則比較內向,膽小害羞,安靜少語。

隨和性(agreeableness:

高隨和性的人是合作的,熱情的和信賴他人的,低隨和性的人是冷淡的。敵對的和不受歡迎的。

責任心(conscientiousness):

高責任心的人是負責的,有條不紊的,值得信賴的,持之以恒的。

低責任心的人則easy精力分散,缺乏規劃性,且不可信賴。

情緒穩定性(emotional stability):

積極的情緒穩定性者傾向於平和。自信;而消極情緒穩定性者(神經質的人)傾向於緊張,焦慮。失望和缺乏安全感。

經驗開放性(Openness to experience):

開放性高的人富有創造性。凡事好奇,具有藝術的敏感性。開放性低的人則保守對熟悉的事物感到舒適和滿足。

總的來看,外傾性和經驗開放性好的人更適合走上管理崗位。

千萬不要忽視這樣的錯位的力量。金山的求伯君先生就直承自己不擅長做管理。他覺得人的一生之中最關鍵的是對自己可以有所了解,不是說自己什麽都能幹,是萬能的。在雷軍走後的4年裏。做CEO有些力不從心,快50歲的他精神壓力太大,多次想退休。請雷軍出山。終於求伯君先生在不到50歲的時候退出江湖。不知道是不是和這個有關。

當然非常多人可能遠走不到求伯君先生的高度,但終究類似,能夠打個例如形容錯位的中層管理者。上司和下屬員工像兩塊板子。管理這門功夫沒練好的話,中層管理者就被搓球了:上司說,你做的這叫什麽事兒,腦子大大的壞了。下屬說:你瞎答應什麽,這事兒怎麽做,我不幹,要幹你自己幹,愛咋咋地。

管理這功夫練好了。情形就變了:上司尊重你的意見,下屬把你視為旗幟。

一處天堂。一處地獄。核心區別事實上不大,根本還在天生的人格特質。待管理人群的特質也非常有影響,但這是運氣所管理的範疇。

是不是適合做管理者的簡明推斷方法

如果說團隊裏兩個兄弟吵起來來了。你願不願意去調解?

假如有一個人脾氣非常壞你願不願意和他溝通。即使你不喜歡?

假如有一個人問題非常多,你願不願意面對面批評他?

假如有一個人屢教不改。你願不願意採取直接的懲處措施。那怕關系緊張?

這個列表還能夠增長。

一旦做管理工作,這類須要拋開個人視角,而從組織的視角去看待問題並行動的地方非常多。

假設對這類問題的回答是否定的,那麽最好是不要往管理的方向上走。

上面這幾個問題,純走技術道路的還能夠作壁上觀,但假設是發生在自己團隊裏。管理者卻保持逃避的態度,那麽管理者就失職了。

因為人的世界非常復雜,所以期望壞的事情一件也不發生。那是不現實的。我個人感覺管理者面對這類事情的幾率是100%。差別是遇到多少件,而不是遇不遇得到。

事實上故事到這裏還沒完,假設往深了考察,就會發現。即使一個人願意去搞定吵架中的兩個人,那還有你怎麽去搞定,搞不搞得定的問題。

搗糨糊、各打五十大板這類簡單粗暴的方法往往僅僅能有效於一時。等價於埋下定時炸彈,長線來看不是什麽高明方法。但把這個展開就須要另外一本書,這裏就不進行展開了。

管理工作的負效應

從日常非常多人發表的言論來看。管理工作似乎被無限美化了。非常多人都覺得管理工作似乎是一條徹底金光大道,但這並不全然正確。為了讓事情回歸本來面目,這裏說一點管理方所可能帶來的負效應。

同純技術工作相比。管理工作(特別是中層管理)的可流動性可能會非常低,形象來講非常多公司並不會願意請外來的中層管理者來管理已有的員工。而更願意請技術上有專長的人來解決詳細的問題。這是由管理工作的幾個特質所決定的:

管理工作和人打交道比較多,所以對人員的特質有非常強的依賴性。假設一個團隊的人都非常像機器人,那麽在不同公司間管理技能是全然通用的---僅僅要有PMPCMMI這類東西就夠了。

但關鍵問題是人員的特性是多樣的,這導致管理人員和被管理人員須要較多的磨合和適應。形象點講就是。假設無法搞定特定人群,你考5PMP證書,該無論用還是無論用。

同一時候長時間在管理崗位的話,即使是做技術出身。技術能力也會退化,溝通技能、與上級的信任程度反倒會提高。

而這些東西,到一家新公司後,一定會被歸零,。其價值並不明顯。反倒不如擅長算法,擅長某類業務的技術人員可流動性好。

這也就意味著,管理人員往往與公司的利益綁定的更緊。

尤其是中層管理人員,達到一定年紀後(比方:40歲),非常可能會失去流動的可能性。一旦所處的公司出現故障。那就可能會面臨非常尷尬的局面---直接講就是。假設你選擇了管理方向。卻缺乏對應的人脈,35歲之後基本不具備可流動性。換工作會非常難,至少比純技術的高端人員難。

這點的一個旁證是各個初創期公司的人員構成。假設你用心觀察就會發現對於初創期的公司而言,它須要創始人把握方向和尋找資金,也須要project師來完畢詳細事務,但不太須要中層管理人員。

比方:Pinterest以前公開了自己的數據。在2010年是2個創始人,1個project師;20113個project師。2012年是6個project師;2013年是40個project師。這樣的情況下,僅僅有到2013年後中層管理人員才有存在價值,而一般情形而言這樣的情況並不會社招。而是會從現有人員中選拔。這終於導致純管理人員的可流動性並沒有想的那麽好。

當然什麽事情都有例外,假設你是成功運作幾個產品的產品經理。那麽也可不在流動性上受到限制。由於那些產品就是你最好的名片,他們使你在江湖裏有了一席之地。

小結

考慮上述三個方面,大多時候可以判明自己是應該做技術還是做管理。比方說:假設一個人日常非常easy和人產生沖突,但腦子非常好使,也能靜下心來鉆研技術。這樣的情形大致上應該努力找一家技術路徑長的公司做技術,否則可能會人際關系緊張。

而與此相反,一個人假設技術能做的還不錯,也願意與人溝通,同一時候已經身處一家技術路徑不是非常長的公司,並不太可以換工作,那麽就非常可能須要盡早轉向管理方向。

總之。別太為了點錢過度難為自己,走不遠的話。終於還是吃虧。

程序猿生存定律--管理向左,技術向右