一個程序員在考慮增值時無法回避的一個根本問題是到底是做技術還是做管理。當然也有些職位會介于兩者之間比如架構師,但我們暫時不去做細分,而是用簡單的二分法。
這種基本方向上的選擇對后續很多細節上的取舍有關鍵影響,所以在考慮其他之前,最好先回答一下這個問題。這就和修煉時要選擇少林、武當、華山還是魔教一樣,一旦選擇,基本上是回不了頭。
當然選擇管理不意味著不需要掌握編程技能,畢竟當下大多公司還是信奉“宰相拔于州郡,將軍起于行伍”的。但當技術達到一定水平后,管理還是技術這種方向性的選擇將對下一步做什么有比較大的影響。在考慮那個方向前,則要先弄清楚管理和技術的關鍵差異。
技術與管理的關鍵差異
到了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%,區別是遇到多少件,而不是遇不遇得到。
其實故事到這里還沒完,如果往深了考察,就會發現,即使一個人愿意去搞定吵架中的兩個人,那還有你怎么去搞定,搞不搞得定的問題。
搗糨糊、各打五十大板這類簡單粗暴的方法往往只能有效于一時,等價于埋下定時炸彈,長線來看不是什么高明方法。但把這個展開就需要另外一本書,這里就不進行展開了。
管理工作的負效應
從日常很多人發表的言論來看,管理工作似乎被無限美化了,很多人都認為管理工作似乎是一條徹底金光大道,但這并不完全正確。為了讓事情回歸本來面目,這里說一點管理方所可能帶來的負效應。
同純技術工作相比,管理工作(特別是中層管理)的可流動性可能會非常低,形象來講很多公司并不會愿意請外來的中層管理者來管理已有的員工,而更愿意請技術上有專長的人來解決具體的問題。這是由管理工作的幾個特質所決定的:
管理工作和人打交道比較多,所以對人員的特質有很強的依賴性。如果一個團隊的人都非常像機器人,那么在不同公司間管理技能是完全通用的---只要有PMP,CMMI這類東西就夠了。但關鍵問題是人員的特性是多樣的,這導致管理人員和被管理人員需要較多的磨合和適應。形象點講就是,如果無法搞定特定人群,你考5個PMP證書,該不管用還是不管用。
同時長時間在管理崗位的話,即使是做技術出身,技術能力也會退化,溝通技能、與上級的信任程度反倒會提高。而這些東西,到一家新公司后,一定會被歸零,,其價值并不明顯。反倒不如擅長算法,擅長某類業務的技術人員可流動性好。
這也就意味著,管理人員往往與公司的利益綁定的更緊。尤其是中層管理人員,達到一定年紀后(比如:40歲),很可能會失去流動的可能性,一旦所處的公司出現問題,那就可能會面臨非常尷尬的局面---直接講就是,如果你選擇了管理方向,卻缺乏相應的人脈,35歲之后基本不具備可流動性,換工作會很難,至少比純技術的高端人員難。
這點的一個旁證是各個初創期公司的人員構成。如果你用心觀察就會發現對于初創期的公司而言,它需要創始人把握方向和尋找資金,也需要工程師來完成具體事務,但不太需要中層管理人員。比如:Pinterest曾經公開了自己的數據,在2010年是2個創始人,1個工程師;2011是3個工程師;2012年是6個工程師;2013年是40個工程師。這種情況下,只有到2013年后中層管理人員才有存在價值,而一般情形而言這種情況并不會社招,而是會從現有人員中選拔。這最終導致純管理人員的可流動性并沒有想的那么好。
當然什么事情都有例外,如果你是成功運作幾個產品的產品經理,那么也可不在流動性上受到限制。因為那些產品就是你最好的名片,他們使你在江湖里有了一席之地。
小結
考慮上述三個方面,大多時候可以判明自己是應該做技術還是做管理。比如說:如果一個人日常很容易和人產生沖突,但腦子很好使,也能靜下心來鉆研技術。這種情形大致上應該努力找一家技術路徑長的公司做技術,否則可能會人際關系緊張。而與此相反,一個人如果技術能做的還不錯,也愿意與人溝通,同時已經身處一家技術路徑不是很長的公司,并不太能夠換工作,那么就很可能需要盡早轉向管理方向。
總之,別太為了點錢過度難為自己,走不遠的話,最終還是吃虧。
-
程序員
+關注
關注
4文章
952瀏覽量
29799
發布評論請先 登錄
相關推薦
評論