1. 程式人生 > >程式設計師生存定律--管理向左,技術向右

程式設計師生存定律--管理向左,技術向右

程式設計師生存定律這系列的目錄在這裡:程式設計師生存定律--目錄

喜歡從頭瞄的,可以移步。

-------------------------------------------------------------------------------


一個程式設計師在考慮增值時無法迴避的一個根本問題是到底是做技術還是做管理。當然也有些職位會介於兩者之間比如架構師,但我們暫時不去做細分,而是用簡單的二分法。

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

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

技術與管理的關鍵差異

到了30幾歲後,轉為管理人員的程式設計師經常會調侃自己的技術能力:當年解決這種有時出、有時不出的Bug時,我常常在其前後都加幾條除錯輸出,這招很管用很可能立刻就把它搞定了。結果多年後維護這程式碼的人困惑了,還來問我,這句為啥不能去掉,看著也沒用啊,其實我也不知道,只能說運氣和人品在程式裡也是很有影響力的。

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

據說微軟這樣的公司推崇一個人要想走上管理崗位,那要先把自己的程式碼用遠少於別人的時間寫好,省下來的時間才用來做管理工作。這很好,也不是完全不可能,但大多時候很難,需要很強大的天分,大多數人是做不到的。

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

管理者往往需要處理許多與人相關的事情,這導致要處理的事情是碎片化的,如果堅持編碼,那麼每天的打斷往往會大幅降低寫程式碼的效能,大家都知道編碼是需要專注的。

管理工作總是需要面對大量的瑣碎工作的,比如:老闆對專案不滿要趕緊去說明,免得發酵成大問題;人力缺了要趕緊協調,一是要能要到人,關鍵還得能要到合適的人;工具缺了,要趕緊購買;兄弟們有情緒了,要趕緊安撫;PPQA了有抱怨了,要趕緊改正。如果工作進一步泛化,還要涉及到預算、評估、職業路徑規劃等。

我們很難讓這些事情按照自己的節奏發生,如果管理人員做程式設計,最終這些都會變成一種對程式設計工作的隨機性干擾。所以一般來講很難把它們很好的與編碼結合在一起。想象一下,一個管理人員負責某個專案中影響關鍵路徑的某個模組,接下來上面所列的意外發生了,那這個管理者怎麼辦?

唱歌的時候常說到Key或者調門這個詞。同樣是《花心》這首歌,周華健的用的Key和原本的沖繩民謠《花》的就不同,這導致兩首歌聽起來差別就很大,完全不一個感覺。也許可以說管理也是一種技術,但管理和設計編碼這種技術的Key不一樣。做技術需要面對的是程式,程式是講道理的,Stack Overflow時它一定會崩潰;而做管理時需要考慮技術因素,但更需要面對的是各種人,人則只在一定程度上講道理,所以管理不只是一種技術。因此基本上可以認為管理和技術時完全不同的兩個方向。

如果大家細心觀察周圍,就會發現,做技術(編碼)的往往可以轉去做管理,但做管理的再轉回做技術(編碼)就難了。這意味著技術背景對做管理往是很有幫助的,而管理背景對做技術則幾乎沒用。

瞭解到這種差異後,要想做出自己的那份選擇,還需要考慮三件事情:一是既定環境下技術路徑究竟有多長,也就是說做技術有前途麼;一是個人的性格適不適合做管理工作;一是做管理工作可能會有什麼負面影響。這三點將在接下來的三個小節中分別進行探討。

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

程式設計師往往自嘲自己是“碼農”,不知道這詞是那裡出來的,但聽起來“碼農”和“農民工”已經有點近似了。而“農民工”往往是收入低,工作時間長的代名詞。這就折射出了一個很尷尬的事實,在很多公司中,單純從收入的角度來看管理職位是要高於純粹的技術崗位的。

這並非是一個絕對規則,前文就曾經提到早在20年前,微軟的超級程式設計師就可以擁有比管理人員更高的工資,可以擁有多輛保時捷。但在技術路徑短的公司裡,管理人員收入偏高這事情卻具有必然性。

當一個公司的核心技術並沒有創生多大價值,而是需要靠人力規模、商業模式等來支撐業務的時候,那麼我們可以稱之為技術路徑短的公司。想象一下,如果一家公司專門承接本地化工作,那麼也許也會需要程式設計師編制某些工具,但對程式設計師而言技術路徑無疑是短的。

如果暫時把眼光從程式的世界移開,那麼事情就可以看得更清楚。

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

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

在選擇方向時關鍵要避免的是選擇了技術方向,但身處的現實中技術方向卻路徑較短,或者喜歡管理但跑到了純粹技術流的公司裡,這種選擇其內部所蘊含的矛盾會給當事人的人生造成極大的困擾。比如說開發小型資訊管理系統時,其所需要的技術含量並不高,公司的主營如果是這個,單純的做技術可能會直接影響收入。這是一個需要考慮的很現實的事情。

什麼樣的程式設計師適合轉管理

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

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

比如說:

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

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

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

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

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

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

外傾性(extroversion):

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

隨和性(agreeableness:

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

責任心(conscientiousness):

高責任心的人是負責的,有條不紊的,值得信賴的,持之以恆的。低責任心的人則容易精力分散,缺乏規劃性,且不可信賴。

情緒穩定性(emotional stability):

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

經驗開放性(Openness to experience):

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

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

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

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

管理這功夫練好了,情形就變了:上司尊重你的意見,下屬把你視為旗幟。一處天堂,一處地獄,核心差別其實不大,根本還在天生的人格特質。待管理人群的特質也很有影響,但這是運氣所管理的範疇。

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

假設說團隊裡兩個兄弟吵起來來了,你願不願意去調解?

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

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

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

這個列表還可以增長。一旦做管理工作,這類需要拋開個人視角,而從組織的視角去看待問題並行動的地方很多。

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

上面這幾個問題,純走技術道路的還可以作壁上觀,但如果是發生在自己團隊裡,管理者卻保持逃避的態度,那麼管理者就失職了。

由於人的世界很複雜,所以期望壞的事情一件也不發生,那是不現實的。我個人感覺管理者面對這類事情的機率是100%,區別是遇到多少件,而不是遇不遇得到。

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

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

管理工作的負效應

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

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

管理工作和人打交道比較多,所以對人員的特質有很強的依賴性。如果一個團隊的人都非常像機器人,那麼在不同公司間管理技能是完全通用的---只要有PMPCMMI這類東西就夠了。但關鍵問題是人員的特性是多樣的,這導致管理人員和被管理人員需要較多的磨合和適應。形象點講就是,如果無法搞定特定人群,你考5PMP證書,該不管用還是不管用。

同時長時間在管理崗位的話,即使是做技術出身,技術能力也會退化,溝通技能、與上級的信任程度反倒會提高。而這些東西,到一家新公司後,一定會被歸零,,其價值並不明顯。反倒不如擅長演算法,擅長某類業務的技術人員可流動性好。

這也就意味著,管理人員往往與公司的利益繫結的更緊。尤其是中層管理人員,達到一定年紀後(比如:40歲),很可能會失去流動的可能性,一旦所處的公司出現問題,那就可能會面臨非常尷尬的局面---直接講就是,如果你選擇了管理方向,卻缺乏相應的人脈,35歲之後基本不具備可流動性,換工作會很難,至少比純技術的高階人員難。

這點的一個旁證是各個初創期公司的人員構成。如果你用心觀察就會發現對於初創期的公司而言,它需要創始人把握方向和尋找資金,也需要工程師來完成具體事務,但不太需要中層管理人員。比如:Pinterest曾經公開了自己的資料,在2010年是2個創始人,1個工程師;20113個工程師;2012年是6個工程師;2013年是40個工程師。這種情況下,只有到2013年後中層管理人員才有存在價值,而一般情形而言這種情況並不會社招,而是會從現有人員中選拔。這最終導致純管理人員的可流動性並沒有想的那麼好。

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

小結

考慮上述三個方面,大多時候可以判明自己是應該做技術還是做管理。比如說:如果一個人日常很容易和人產生衝突,但腦子很好使,也能靜下心來鑽研技術。這種情形大致上應該努力找一家技術路徑長的公司做技術,否則可能會人際關係緊張。而與此相反,一個人如果技術能做的還不錯,也願意與人溝通,同時已經身處一家技術路徑不是很長的公司,並不太能夠換工作,那麼就很可能需要儘早轉向管理方向。

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

------------------------------------------------------------------------------

關於我自己的各種資訊,在左邊欄可找到,想了解下寫這書的人是不是騙子和大忽悠的可以瞄。

最後希望感興趣的支援V眾投,感覺上這應該是國內最靠譜的生活購物等的問答社群了吧,都是朋友給朋友做的答案,同時實行一人一號,一人一票制度,想找什麼答案關注公眾號:vzhongtou(左側有二維碼)就行了