阿朱訪談:程序員轉型期職業選擇,是繼續做技術高手還...(轉)

2009年3月6日,51CTO技術人頻道邀請了IT職業經理人:《走出軟件作坊》的作者阿朱老師作客嘉賓聊天室,和大家一起討論程序員轉型期職業選擇,是繼續做技術高手還是做管理者?阿朱老師講述了自己從程序員轉變爲管理者的職業經歷,並回答了網友在職業發展中遇到的問題。 

阿朱:本名呂建偉。《走出軟件作坊》一書作者。10年以上商業軟件從業經驗,10餘年來一直專注行業管理信息化領域,7年職業經理人生涯,在商業分析、產品體系規劃、研發人才體系搭建、研發過程管理、技術架構、貫通售前\研發\售後方面多有經驗。 
以下爲聊天實錄,51CTO略有整理 

一、阿朱講述自己的職業經歷 

51CTO:今天來到51CTO聊天室做客的嘉賓是《走出軟件作坊》的作者阿朱老師。和我們聊聊程序員職業發展中的轉型問題,到底是做技術高手還是做管理者。阿朱老師最開始是軟件開發人員,之後轉變成了職業經理人,請阿朱老師跟我們講講您的職業經歷。 
阿朱:我先跟大家公佈一個好消息,在軟件中國2008圖書評選中,《走出軟件作坊》在開發圖書類獲得了編輯推介大獎。這是很欣喜的一件事情。我跟大家介紹一下我的職業經歷,其實很簡單。正式工作了10年,但是這10年裏面就服務兩家公司了。一家公司是做醫療信息化的,另外一家公司是現在的公司是做汽車信息化的。也就是說,我一直待在了企業信息化領域。所以,我的職業經驗、眼光趨勢基本受我企業信息化領域的限制。所以,我在跟大家交流的時候,很多也有所偏頗,可能有這樣的職業經歷跟我面對的領域有關,今天跟大家一起交流、分享,一起探討。 
我不是在北京上的學,我來到北京,是實現一個北京夢,大家叫“北漂”。來到北京,當時首先是要成爲中國一流的程序員。這個夢想實現了一些,沒有很高的那種,實現得很茫然。當時很多畢業生,我也是應屆畢業生,我一進去做的就是核心開發人員,這是一個很特殊的個例。我能講到的也是個人的經歷和感受,可能大家去借鑑、模仿、照搬不太容易。 
我在上學的時候,瞄準了兩塊技術,一塊是數據庫,另外一塊是組建技術,也就是大家現在稱的一些中間件的技術。這跟現在的應屆畢業生或者是大學生有所不同,因爲學校都學了課程,相對是容易的,我是跟教學課程過關就行了。但是在學習之餘,我專門研究了這兩塊技術,因爲我覺得這兩塊技術我認爲是很有潛力的。當時我在學校的時候,在社會開始工作了,打一些臨時的工作。我是做的超時信息化,一開始我就進入了企業信息化的領域,而企業信息化領域數據庫是很重要的基礎,第二塊是組建技術。把軟件做到模塊化的能像積木一樣的組裝,我是最希望達到企業信息化開發的層次。所以我在學校就深鑽這兩塊。 
由於我一出學校畢業應聘的崗位是核心的程序員,這樣子有助於我很快能進入到公司的核心層面。你的職業發展是一步一步上升的,或者是你加入了很高層次的人羣,這樣有好處,你突然能跟一些很厲害的人對話,他們創新的思維、對業界的看法、技術的看法,你能知道最新、最深的技術。而我們平常的一般學生學習玩技術是看《從入門到精通》,我的學習曲線不是這樣的,一開始扎到根上了,所以成長很快。有的人說面臨了很精深的層次適應不了,就會退出,被這種壓力所拋棄,但是我恰恰適應了這種環境。所以,我很快地能從一個核心開發人員轉到了架構師的層次。 
當時,我們也正好面臨很好的機遇,我們要開發全新一代的系統,整個從技術到業務到重新的架構,不只是做一個維護,這是很好的機遇。很多程序員一畢業出來,程序早就寫好大家只是做維護的工作。寫好了代碼,修修補補打補丁,我面臨了全新的機遇,全新的系統需要去搭建,新的人新的產品。就像一張白紙上好畫畫一樣,接觸到整個過程。 
當我們的架構師產品經過了兩年的開發,我們要樹立成功案例,我就做了燈塔客戶的實施經理,也積累了相當寶貴的實施、培訓、推動上線、項目管理這些經驗。作爲實施經理我做了三家燈塔客戶之後,畢竟我是研發人員,不是做實施工程部門的,我就又回到了研發體系內,在研發體系內終於成立了架構組,我擔任了首席架構師。這是在我前四年的工作經歷,我從一個核心程序員到燈塔客戶實施項目經理到首席架構師。首席架構師既要對整個產品的體系架構負責,還要率領架構組,這是技術與管理相結合的崗位。這樣也奠定了我未來六年後的職業生涯。 
也就是說,我當時去的公司是一個官辦國企的背景,有很多體制上的限制。所以,我希望有一些創新性的產品或者是想法能夠實施下去,環境不是特別允許,我就來到了現在這家公司,我在現在這家公司待了6年多了,眼看着到了第7個年頭,到這家公司我到了技術總監。跟過去是一脈相承的,因爲所要求的職能首先要有管理的職能,然後要有技術的職能,畢竟這是研發部門。另外,你還要對企業的業務進行精通。過去我所做的是醫療,現在我所做的是汽車,汽車跟醫療這兩個業務是天壤之別,如何快速地進入到行業,瞭解行業的業務,這是對行業的技術總監提出的挑戰。恰好,我過去積累了很多的方法、經驗,如何快速地把握行業領域的業務知識,這是有一套方法的,這套方法,我在《走出軟件作坊》的書裏面大量都講了,詳細的大家都能看到就不多講了。 
我們現在這家公司,我剛去的時候是創業公司是草創型的。這麼多年從三五個人十兩條的小企業,現在發展到年收入三千萬的中小型典型的IT公司,至少在增長速度、規模上都比較令人滿意,過去的經歷還算比較成功,遇到的坎坷比較少。但是,隨着公司的長大,隨着起來的人不可能在研發部門去工作,那是很狹窄的領域。而且我們在公司經營過程當中,也發現了一些問題,研發的人會去抱怨銷售人員在前面跟客戶答應這個、答應那個,研發人員根本就辦不到,這個有隔閡,我相信大家很多的公司都存在這樣的問題。 
還有是開發人員、實施人員也有矛盾,實施人員說這是誰開發這麼爛的產品,怎麼去實施,部門之前存在着這樣的矛盾,誰去調解只能是總經理去。但是對於像我們現在這樣規模的,作爲老闆來說,銷售職能是比較高的。我想在其他公司這樣的現象也存在,老闆的銷售職能佔的比例是很重的,我們都一樣沒有擺脫限制。老闆既要去照顧公司的日常細節經營,又要去跟客戶拿單子,去把公司的銷售規模擴大,他無暇顧忌,只能是在部門經理和老闆之間再加一層,這個層次就是公司副總。我們現在有兩個,一個是銷售副總,把老闆銷售的事情能去分擔,使老闆不至於壓力那麼大。另外一個副總是研發副總,就像我現在的職位。雖然公司沒有明確規定你是CTO級別,但是職能已經是CTO的職能了。我們只是用了研發副總的擡頭來做的,像研發副總的職位就是要銜接售前、研發跟銷售如何去互動,你研發了產品必須給我們公司帶來銷售和利潤,而不是說研發出來了銷售部去賣吧,作爲這樣的公司不可能生存。這樣的話大家認爲公司會倒退。 
另外我要銜接售後,剛纔我所說的問題全部是由我去銜接、解決。通過我的各個部門之間的管理,包括流程上、職責上、方法上,把這幾個部門權限打通,這是我作爲CTO的職能。剛纔我講了我從一個核心的程序員到現在的CTO的經歷。 

二、程序員的職業發展道路 

51CTO:聽了阿朱老師對自己職業經歷的介紹,一定有很多網友獲得了啓發。歡迎各位網友在聊天室裏向阿朱老師提問。阿朱老師其實對大部分技術人員來說,從事了幾年的技術工作之後,總會對自己的職業發展常常感覺到迷茫、困惑。我想問問阿朱老師程序員的發展之路都有哪些? 
阿朱:大家一眼能看到的是進入核心程序員、架構師。首席架構師的職位,大家耳熟能詳是由於微軟蓋茨當了微軟的首席架構師,這樣的話架構師的影響、威望這麼大。在咱們中國,作爲首席架構師或者是中國公司的架構師來說應該是最好的職業目標,做到這一塊,但是不僅僅是這一條路。我的經歷也說了,我也當了架構師到了技術總監、到了CTO,這也是一條路。一個技術人員發展高了之後,會到公司的副總級別,不僅僅是做研發,我現在主抓研發但是不僅僅是限於研發。如果說CTO還能更高發展,上面只有一個頂尖了就是做老闆,是這樣的一條路。 
但是,技術人員在技術的路上不太好走,有的人技術達到了一定層次,已經無法突破這樣的瓶頸了,他認爲一般的難以達到這樣的層次,其實他可以做的是項目經理。而項目經理,如果是你跟人交流性比較好,溝通性比較好,可以去做實施項目經理。但是你可能在溝通上不太好,可以去做開發項目經理,因爲有一些項目需要開發的,不是安裝、培訓、推動上線的工作。這些項目開發經理最重要的是項目管理職能,大家不是想的項目管理職能不是跟每個人關係特別好,溝通特別好,也不是這樣。項目管理是在項目目標、項目範圍、項目質量、項目的報告、項目的計劃控制這些領域上,這是對項目管理非常重要的幾個點。我剛纔講到項目管理的幾個重要點裏面沒有提到這種人的溝通性,當然人的溝通性不僅僅是開發人員,我想是每一個人的溝通都非常重要,包括即使是開發人員來說,你跟你的經理的溝通、你跟你的老闆、你跟你的同事、實施人員、銷售人員,這是人的最基本的要求。有的開發人員不善於跟人去講,或者是講了一些事情自己都講糊塗了,確實有這樣的開發人員。 
那樣的開發人員我想在技術支持中心會更加合適,如果技術沒有辦法達到架構師,因爲咱們中國的軟件開發,有一些是開發新項目,有的是做維護性的開發,有的是做大型項目的定製開發,這些是需要更具有持久力、細心的,能夠按照任務計劃、質量走的開發人員。也就是說,許多人都希望成長到那種大手一揮、大框架、大戰略的步驟,如果你無法成長到這樣的局面,其實我們的企業也需要非常紮紮實實把事情做好的員工。畢竟是高層把大家略下來了,執行到位不到位是很重要,很多公司不是戰略不好、計劃不好而是執行不好走樣了。所以,一個公司需要各種各樣的人才,一個按照計劃、按照質量能夠很好地去執行的員工,也是我們企業當中的一寶。當然,有的技術人員的轉型也很多了,剛纔講了實施經理、培訓經理,還有開發經理,當然還有技術人員開始轉網售前,他對行業比較熟悉了,對客戶需要什麼也熟悉了,對產品能做到哪些功能也比較熟悉,他做到售前經理,這會延伸成爲市場經理、銷售經理,甚至還有一些產品經理。 
可能大家對產品經理的接觸比較少,在一個項目型的公司,來單子然後做開發,這種項目型的公司項目經理是很重要。項目經理能去調查開發人員、實施人員,調查很多的資源。對於一個產品型的公司,比如說像瑞星殺毒、WPS產品型的公司,他們的產品經理是最重要的。產品經理不僅僅要熟悉市場、熟悉客戶還得熟悉研發。而在一個產品型公司,產品經理比開發經理佔公司的影響力、職位還更重要。所以,技術人員可以向各個分支上去發展。 
51CTO:我們可以看到阿朱老師本身職業經歷的發展是明確的,您認爲技術人應該是從什麼時候開始規劃自己的職業發展道路?是從上大學的時候開始,還是工作幾年之後對工作有了一定的瞭解之後再規劃自己的職業生涯? 
阿朱:我建議是在大學大三開始規劃自己的職業經歷。因爲跨入社會第一步是很重要的,我很感謝我踏入社會第一步能進入到一個官辦國企這樣的公司,因爲這樣的公司,雖然是有很多這樣的想法,可能無法很順暢地執行,他有這樣體制上的弊病。但是他給人一個很寬鬆的環境,他不像一個私人企業或者是草創企業,他需要必要的盈利。也就是說在一個私營的企業要求趕快賺錢,不管是什麼單子能賺錢趕快賺錢,即使接下來不能做也得做,做了就得賺錢,這是第一位。但是在成型成規模的公司,規章制度、流程、崗位相對比較清晰,在這樣的公司發展首先沒有這樣的壓力,首先做的事情不會是亂七八糟做了很多的事情,你踏入社會的第一步作爲社會中的一員你是一張白紙,這張白紙你畫成什麼樣的畫是非常重要的。所以,你一出身畫成的是有框架、結構、層次的,還是一開始上圖亂畫、畫點這是不同的。所以,我感謝我過去的公司讓我看得很寬、看得很遠,我的眼光是在那裏修煉出來的,我做人做事的態度、氣質也是在那裏培育出來的。 
我們現在對於人員、不管是技術人員、其他崗位的人員我們最重要的是他的態度。如果你工作幹活吊兒郎當或者是欺騙客戶不誠懇,或者是對項目的質量進度拖拖拉拉,這樣的人不管你的技術性有多好或者是工作經驗多豐富,我們其實不需要這樣的人。 
在一個大的公司,你的眼光、你的態度、習慣能夠形成對你未來的職業發展能形成很好的鋪墊、基礎。所以,大家如果希望想有階梯狀、規劃的發展,你的第一步是關鍵點。如果想進入關鍵點,你需要從大三、大四開始規劃。我想在畢業出來進入哪家公司,這家公司需要什麼樣的崗位,我想在這家公司做什麼樣的崗位,去規劃去做準備。可能你達不到,你畢業了你沒有進入到那家公司,但是你也不會差到哪裏去。至少你爲職業崗位所做的準備在其他公司也是需要的。首先你的心胸、態度、框架已經建立起來了,這跟在大公司的訓練也是差不多的。如果你不做這樣的準備,直到畢業了纔去找工作,找了半年非常急,你會隨便找個公司趕快去做。如果你運氣不太好,可能這不是我想要的,幹了半年走了。然後到第二家,你可能會真是那種人常說的隨波逐流。你的第一步沒有走好,你的步步會形成隨波逐流,你想走到你想走的目標上就比較難了。所以,職業發展應該從大三大四規劃。 
51CTO:阿朱老師您是什麼時候對自己的職業進行規劃的,作爲從技術人員向到管理層轉變的代表,你是依據什麼來對自己的職業做定位的? 
阿朱:做職業的規劃,我最初的想法是在學校期間學習的技術、學習課程。當時我也學習了很多管理學的知識。我當時能想到的是,我想用我所學的IT技術,能給企業真真帶來效益,帶來價值,帶來真金白銀,我覺得這才非常有成就感。我的第一個產品研發出來,企業應用了,他能用我的產品加速企業上規模,從一個小公司到成爲大公司,這是非常有成就感的,你的價值被別人認可了。我從大學就有這樣對自己的期許、希望。所以,我進入企業信息化的領域也不是偶然的,都是有我這樣的心態和想法,自然而然你會去引導到自己投入到,因爲你想去這樣做的恰好你做到了。所以,這是從大學萌生的想法。 
但是怎麼樣萌生一個管理者的想法。我一開始也是沒有管理者的想法,像剛纔說了我要做中國一流的程序員,然後研究了很多的數據庫技術、組建技術。但是,我發現這樣研發出來的產品,客戶還是不滿意、不認可,我以爲用技術能解決很多事情,但是在我們給燈塔客戶實施的時候發現不是這樣。你技術好,但是你給企業帶來的不是明顯的價值的提升,而很有可能設置了一些技術障礙,使他們應用起來反而業務更加的緩慢有一些阻礙。然後我就開始想怎麼樣讓一個企業真正產生價值,技術有侷限性,我看其它的方法能不能解決。我就研究了怎麼去做項目管理,怎麼去做管理,你的業務怎麼去創新、怎麼去改變。這其實是已經站在一個管理者的角度看問題了,因爲我過去根本就沒有做過管理者,沒有站過這樣的位置。但是由於我在解決客戶問題的現狀下,我自發去想,如果我是去做管理者,我應該怎麼去做,應該怎麼去解決問題,應該怎麼給企業帶來價值。想的過程當中,我去不斷地實踐,當然也吃了很多苦頭,走了很多的彎路,但是積累下來很多很寶貴的經驗,這些經驗和經歷促使我走到了一個管理者的職位上頭。也就是說,你首先有這樣的想法,有這樣的準備,然後纔有這樣的職位。也就是說大家不要去想有一個職位就可以了,在那裏等着你把你提拔上來了,這種事情在職業發展上是沒有的。你不去爲它做準備,不去奮鬥這個職業不會等着你沒有這樣的機會。我剛纔講到的我的經歷全部是這樣,先有想法,然後再實踐,實踐當中有經歷有經驗了,管理去看這方面你是很優秀的人才,他會把你提拔上來,不然的話不會給你這樣的機會。 
51CTO:剛纔阿朱老師也提到了,在轉變的過程當中吃了很多苦走了很多彎路,那麼在這個過程當中,您遇到最大的困難是什麼?您是怎麼解決的? 
阿朱:最大的困難是業務。因爲做企業信息化來說,你必須得對企業業務進行很精深的瞭解,然後才能知道它的問題在哪裏,才知道做什麼樣的產品能結果它的問題,這是非常重要的。我一開始從技術人出身的,雖然深到了管理者之後,這對企業業務的瞭解心裏蠻有坎的。我覺得應該企業架構組織裏面有一個專門做業務設計的人,他對企業的業務應該非常精深,然後他覺得企業有什麼問題,他覺得企業的業務通過什麼樣的方法解決,然後把信息記錄下來,反饋給開發部門,開發部門根據他的要求再去做軟件的開發,這是我最初的想法。但是,在中國的現狀這種三五個人十來條槍,包括現在我們的開發部門人員也比較多,我發現在現實中這種組織架構還是沒有存在,我想它可能會是在至少應該在100人以上的研發團隊才能產生,業務跟開發能夠去分離。 
但是在中國來說,能上100個人以上的研發中心還比較少,大部分公司全是在20人以下的研發團隊。這樣的團隊最常見的是你作爲項目經理,或者是一個開發部門的頭你必須對業務進行精深,你不去精深沒有人去精深。你當了職位就得解決這個問題,解決這個問題你去尋找資源,有業務設計的資源沒有。當你沒有資源的時候還得去做事,不光是抱怨,抱怨沒有用,抱怨了解決不了,老闆幹嘛要把你放在這樣的位置上面,所以沒有辦法,只能自己去做業務的瞭解,深入到第一線,走出軟件部門,跟客戶去接觸,跟客戶去交流。 
所以,如果是你想在這種企業信息化的領域,能夠做得好、走得遠必須要走出軟件部門,進行一條業務與技術相結合的道路纔可以。我也是費了很大的思想轉變才覺得這是應該就這樣走的,而不是說被迫這樣走的。因爲現在的情況決定了這樣走這條路是最能解決問題的,如果你是想等未來有了這樣的架構再說。但是公司得天天經營,不可能等到很光明的那一天,可能等到光明的那一天你的職位也有了變化,你的職業生涯也有了變化,你無法從事那樣的事情。所以,我們在做企業經營的過程當中,有問題、解決問題,有現在的資源就拿現在的資源去解決問題,主要推動企業去長大、去成長,這樣是比較現實的方法。 
51CTO:您覺得技術人的性格會對他的職業發展產生很大的影響,是不是內向的人往技術道路上發展,而比較外向的人纔可以做管理者? 
阿朱:管理者的要求看什麼樣的層次管理者,有高層的、中層的。作爲中層的一些項目經理,開發經理這樣的職位,對業務、對技術要求不是那麼高,但是綜合性必須要平衡好,這是對職位的要求。你對項目、你對人員團隊的管理、企業業務細節的瞭解,這三者必須要平衡,而不是某一方面很突出,其它方面很差,這樣做不了一個經理層,必須三者來平衡。但是,作一個高級的研發類的管理人員比如CTO,他對商業趨勢、市場眼光、競爭格局、行業的未來發展變化要非常深刻地理解,這是一種具有商業敏銳思維才能去達到的。所以,不是說誰外向誰內向,作爲我來說也算是一個內向的人。有一些人是人來熟見第一面就非常熟,我不是那樣的人,但是不妨礙走到今天的位置。老闆需要你的價值而不是跟誰熟,有的事情也適合那樣的崗位那樣的人來做。但是在研發體系職業生涯內,剛纔也講了你的業務、你的團隊管理、你的項目管理、商業眼光是幾個必要的條件。不是說內向的做開發就比較合適。 
51CTO:程序員如果轉做管理之後,他是否還需要繼續學習,提高自己的技術能力? 
阿朱:作爲技術人員來說,上升到項目經理這一層面,確實是對技術有一些荒廢。他對項目管理花費了大量的時間,在客戶那裏,客戶的調研、功能的設計方面,他投入的心血比較多,他的技術雖然他非常希望去學習到更深入的技術,更新的技術,但是人的實際經歷確實有限。很多做開發做得非常好的,技術非常好的,然後上升到管理層面,心裏就有一個落差,他覺得我拿手最硬的本領被荒廢了,我現在目前管理的能力還不強,他就很茫然,我到底能做什麼,我會被社會所淘汰了。確實,在這個職業轉變的過程當中,會有一些坎,有的人能過去,有的人不能過去。不能過去的人會退回來,做一個更高級的技術人員,也不妨礙他在公司的收入的增加。 
我身邊有很多的朋友,都30多歲,他們很多人都還在技術崗位上工作,而且就是編碼性的工作,不是進行管理性的,畫一個架構圖或者是在很高的層面上工作。他們不是,他們也親自編碼,而且是開發中的主力,這些人仍然是30多歲的人。我們在軟件業老有一句話,程序員30歲怎麼辦,但是我身邊活生生的例子,大家全都是30多歲的人還在第一線進行開發,他們的技術非常激進,比如說做搜索、雲計算存儲、PaaS、SaaS方面,包括網絡遊戲、網絡安全,很多方方面面,他們都是核心的人才。大家也可以往這個方向去提升自己。 
51CTO:剛纔我們都談到了很多技術人轉做管理者的問題,現在我想繼續替堅持做技術的人問一個問題,技術人到了30歲之後,自己的同事、同學都晉升了管理層,而自己還在搞技術是否會面臨尷尬? 
阿朱:大家去想包括國內的一些大的公司,像百度的高級技術經理、盛大、騰訊、網易,他們的高級經理確實還在第一線去奮鬥寫代碼,但是一點也不影響他在業界的影響、威望,也不影響他的收入。所以,技術能做到一定高的層次成就感也挺大,最怕的是技術也做了一半,其它方面也不是特別強,年齡也越來越大,這樣的人職業生涯發展會遇到很多的瓶頸。 
對於這樣的瓶頸,也是剛纔我所建議的,就是紮紮實實把你本職工作做好。真如果要提升來說,我暫時也看不到。因爲有這樣的特點,比較有明顯的優點的人他能在畢業的五年內會脫穎而出。不管你說你的命運、職業經歷會多坎坷,會在五年內脫穎而出。如果一個人工作了十年了仍然無法脫穎而出,說明他有一些性格當中固定的缺點,這些缺點是隨着他的性格、生長已經跟他整體結合在一起了,人常說的最難改變的就是人的性格。這種性格不好改變,不好改變的情況下,確實職業發展受到了瓶頸,這種也不好改變,我現在還沒有想到更好的辦法。 
51CTO:您在帶領自己團隊的時候,是不是也會注意培養自己的團隊成員當決策人員,您比較看重他們的哪些素質? 
阿朱:我的團隊來講,有開發人員、項目人員、測試經理、文檔人員,我在我的《走出軟件作坊》那本書裏談了四套馬車的架構。但是,我們爲了維持這個架構的穩定,招人員的時候就是定向招聘的。也就是說,隨着我的項目的增多,公司需要擴充人員,比如說我們覺得開發人員人手不夠,我們會去招開發人員。我們的項目經理不夠會去招項目經理的人員,都是定向招的。這樣定向招的會帶來一個缺點,我招聘人的時候,面試的時候會看這個人的崗位能力強不強。他的開發能力非常適合於這個崗位,我把他招聘進來作爲技術人員,他工作的內容是限於這種開發、編碼,他接觸其它方面不是特別多,這給職業發展帶來了一定的問題。我沒有想到更好的問題,他一直在做編碼,他沒有機會去接觸項目,沒有機會接觸管理,他也不會獲得更真實的經驗,也不會積累一定的經歷。他能轉到經理層應該比較困難一些。 
這樣的話,如果他確實是具有這種潛質,你技術做得好,你的管理也非常有潛質,我會把這個人向開發經理,向經理的方向去培養他。但不是說每個人都適合,我只能前進到這一步。 
不管招哪個崗位的人,首先態度、價值觀、人生觀,首先你是要符合社會的標準,不要說欺騙客戶,對同事也互相排斥,爲什麼老講團隊溝通、團隊協作,現在確實很重要。首先在價值觀、態度上要過一個坎,過了這個坎再去講崗位職能。我要招一個項目經理的崗位,你對項目的管理方方面面你是否有這樣的能力,有這樣的經驗?這纔是考覈他的專項能力,如果有通用的考覈,有專項崗位的考覈兩步。 

三、阿朱談程序員創業 

51CTO:現在有很多經驗不多的初級程序員,剛工作很短的時間想進入到您所說的三五個人十來條槍的狀態去選擇創業,您認爲他們是選擇大公司好還是選擇創業好? 
阿朱:我建議創一次業挺好的,有的人是有一顆不肯安心的心。他總覺得在現在的公司有很多的這個毛病、那個毛病,他覺得不行,在這裏實現不了他的想法,大覺得他的想法比老闆的想法還要好。如果不要他去創業,他會一直停留在這種心坎層面上。即使他去了另外一家公司也會這樣想,我想他創業他會真真切切去感受社會需要什麼,一個公司應該怎麼樣去做,有一些事情不是大家想得那麼容易。 
我們老就看到,比如說開發人員去抱怨,那個人一點本事都沒有,爲什麼他比我做的職業高,覺得人家會說,給老闆拍馬屁這樣去看,其實公司不是這樣的。公司的發展中國人講格局、一種平衡、權衡。所以,公司是在解決矛盾而又不斷地保持平衡的過程當中發展,有一些事情包括老闆也沒有辦法去一刀切,或者是把這個人怎麼樣。老闆也有這樣的苦衷,公司必須要在不斷解決矛盾不斷平衡中發展,一個人去經過了創業,他纔會知道原來過去的老闆也不是那麼錯誤的一些想法,自己的平實地落入到現實當中,對他以後的發展會更快,更加地平和更好。 
51CTO:有很多創業失敗的例子,對現在正在處於創業的小團隊您有什麼建議? 
阿朱:創業小團隊我建議做的東西不要大,因爲我也接觸了很多創業團隊,有的創業團隊做的事情是類似於複製阿里巴巴。有的是要去超過Google把核心做得很高,我想在現在的技術領域來說,超越任何一個現在成功的企業不太容易,而且創業團隊最主要的是要活的。這個公司的現金流不能斷,斷的話就分散了。 
要維持現狀來說,大家最好做的是給這些大的公司先做補充性的創新,補充性的創新。比如說阿里巴巴現在在客戶吸引上的環節比較弱,客戶關懷的環節上比較弱,你有沒有什麼創新性的產品去補充。比如說現在在網絡遊戲行業,在虛擬裝備的交易或者是哪個環節比較弱,我們把這個環節補齊,而不是我要創造一款網絡遊戲,這款遊戲將會成爲最好玩的遊戲,可能會比魔獸世界更好玩,那樣的成功機率要高一些。現在看到網絡公司幾乎在100人、200人之上,他們會有專門的人員去研發成功的產品,他們成功性比較大。對於初步的團隊,投資也沒有,人員也少,想做大的事情方方面面照顧不到,有可能想法是好的,但是落實下來是平庸的。落實、執行不好,因爲資源缺乏沒有辦法做得更好。所以,我們作爲創業團隊,小就把小的特點發揮出來,做成增加去做,這樣的話會更容易成功。 
51CTO:您的《走出軟件作坊》這本書,受到了很多項目經理、開發人員和大學生的關注,作爲本書的作者您希望對讀者有哪些啓發和幫助? 
阿朱:每個人看到的全部都不一樣,包括這個在豆瓣上有很多評論,曾經排到了第三名,相對比較火熱。有的人是還沒有畢業的,他看到的覺得原來中國的公司是這樣的,因爲在業界很少有《走出軟件作坊》這樣的書。大家看到的可能Google是如何成功的,華爲是如何成功的,聯想怎麼回事、微軟怎麼回事,大家看了這樣的書。對中國IT業界,公司的生存現狀不瞭解,大學生。有的想得很壞,覺得在中國的軟件環境很爛沒有辦法工作,只能是瞎倒騰一點事成不了大事。有的人把中國的軟件環境想得太好,我們應該能做一些事業,我們應該躋身國際去做行業。其實都不然,大家都對軟件現狀有一些認識的誤差。 
我寫的《走出軟件作坊》裏面一種生存的現狀、環境比較符合中國大多數的軟件公司。包括我講的每年我也看中國IT界的調研,發現年年調研都是中國的81.3%的IT企業處於20人以下。也就是說,大量的企業全不超過20人,這就是中國的軟件行業。在這樣的公司要不不選擇中國的IT業去做別的行業,如果你選擇了中國的IT行業,也就是這樣的公司現狀。在這樣的公司現狀,你不能頹廢還得去做事,還得積極地把事情做好,確實需要一個很好的心態正確地看待現在公司的問題與機遇。所以對於大學生來說,這本書是你沒有走出社會就能看到未來的工作狀況是怎麼回事,保持一種良好的心態積極應對、面對它,而不是害怕或者是拒絕它。這是對大學生的。 
但是,這本書最受一些人羣的讚揚,這部分人羣是工作了三年。有一些人已經剛剛走上了項目經理的職位,有一些人已經做了項目經理一年了,有的人還沒有做到項目經理,但是都工作了兩三年了。他們有很多的困惑,在跟客戶做項目過程當中,有很多的坎坷,很多的事情,他們覺得怎麼樣去解決是一種更好的方法。《走出軟件作坊》這本書給大家提了很多的典型的場景,遇到了這樣的問題,我是怎麼樣解決的。但是我不太希望大家去照搬,我剛纔講了我一直是做行業信息化,如果你是做互聯網,或者是做嵌入式開發的,可能不太適合於我的經驗。但是對於項目管理的知識,它是相對比較通用的。而這些經驗、知識都可以值得大家去借鑑。有的行業你確實是借鑑對比性不太強,差異性比較大。但是看這本書的過程當中,你就能引申出你的思考,看到了我的解決方法之後,人家遇到了這樣的問題是這樣解決的,我遇到了可能會去借鑑、引申、變化,這樣的方法也有。 
我也經常看一些書,包括《財富》雜誌、《基業常青》,尤其是《基業常青》是給想做百年老店的看的書,但是對我們這些剛剛走出生存困境的來看這些書沒有辦法達到,但是我看這樣的書我們現在達不到,未來我們希望達到,希望達到的目標一直在遠方,我們希望在現在的點怎麼走一條路徑,怎麼不斷地去曲徑,而且要給大家一個氛圍,我們要去創造一個百年老店,百年老店的公司文化、公司的背景是怎麼樣的,我看書的時候會思考我們怎麼去走,如何去競發。所以,給讀者來說這正是我想的問題的答案,如果借鑑不適合的可以給他帶來更多的思考,這是很重要的。 
當然,我的書裏面《走出軟件作坊》還講了一個未來趨勢篇,這裏面講到了五篇文章,這五篇文章是我個人對業界的一些商業眼光的看法。比如說對於虛擬化公司,對於未來技術的演變,我都寫了一些經驗的分享。有的人員希望能夠達到CTO的級別,可能他現在已經是項目經理了,希望達到更高的層次,往CTO或者是技術總監位置上去競發,他必須要具備商業眼光、商業敏感性,恰好我這5篇文章是爲那類人準備的。所以,這本書面臨的層次會有將要必要或者是剛剛畢業要找工作的,我有一篇是新人入職手冊,有這樣的文章,沒有入職的還將要入職的人有很多的借鑑。對工作兩三年的人有更多工作的經驗的分享,想上升到更高級別發展的人也提供了很多思路、思想。 
51CTO:您覺得除了技術本身的提升之外,技術人員還應該做哪些方面的知識儲備? 
阿朱:根據人的性格不同,有的人對項目的管理確實不擅長,有的人對自己的管理都不是管理得特別好。有的人不善於與人溝通,有這樣、那樣的缺點。但是,不管是幹開發人員還是僅僅是測試人員,公司不管是哪個崗位,我覺得有一個點每個人都應該去把經濟學到,這個點就是商業敏感性。也就是說,我們怎麼做給客戶帶來的價值更高,我們做一些什麼樣的產品,能夠去賣得更好,推廣得更好。也就是說一個公司的成功,不是公司的關鍵性的幾個人,不是老闆成功了,然後公司成功了,這樣的公司成功不了。把寶壓在一個人或者是極個別人的身上這個公司成功不了,一個公司能成功是整體性的成功。 
所以,如果每個人都在思考,我們如何做更有競爭力的產品,如何去做更賺錢的產品,如何給企業帶來更高的價值,如果每個人都在這樣思考,企業處處都有創新,處處都有競爭力,這就是企業的整體成功。也就是說企業整體成功是一方面,另外一方面對於你個人也是有好處。你總是能提出具有賺錢的點子,不管是哪個崗位,你的這個點子都會有價值,都會收到回報因爲你能帶來金錢。這就是我要說的這個點,每個人都應該去增強這個點。 

四、網友精彩問答 

網友cool:如何跟做事保守的領導打交道?保守的領導總希望用最低的項目成本來得到最高的回報,等計劃好了,別的公司都已經開始研發了...苦惱...如何跟這類領導打交道,請前輩指點下??? 
阿朱:對於保守型的主管來說,他不希望改變,他希望按照他規劃的方法去做事。這樣有一些創造性的想法,或者是更優化的流程想法得到實施。我建議是這樣的,我也遇到過這樣的老闆,但是去嘗,我建議大家在工作中去一點點嘗試,因爲遇到了這樣的主管來說,不太能去說服他接受你的計劃,你可以嘗試去不斷地說服,可能他會去改變。但是,對於這種做事保守、謹慎的主管,他是不看到實際的成果是不會改變的。因爲他覺得你的創新性想法有風險,結果是未知不能掌握的。如果你能讓他看見了現實中的成果,他纔會去相信自己,纔會去給予你資源,讓你去往那個方向去做。一個人沒有資源的話,他解決問題就比較困難。所以,要想得到你主管的支持,必須要先證明自己是對的,怎麼證明自己是對的,所以你必須要自己去實踐一些事情。當然,有一些主管看得很嚴,你必須要這樣做,一天幾個事都看得很嚴。但是執行還是在於個人,所以,這就是在原則、基礎上的靈活,你儘量去按照不破壞整體原則的情況下,去實踐你的創新,一點一點去做。而不要去奢望我要整個所有的計劃全部要一下子實現,那樣不會有人給你那麼大的資源,一點點去做,一點點給你的主管增強信心,他會一點點把自己的權,自己的資源一點點會放給你去支持你,你要讓他看到成功的成果。 
網友netstat:對於小公司的技術總監與成熟公司的相比,更應該注意什麼? 
阿朱:更應該注意的是和老闆的關係。作爲一個小的公司,更多是人治而不是公司治,你想做事情必須擁有資源,如果你連人都沒有,權利都沒有這件事情是做不了的。也就是說必須要了解老闆到底怎麼想的,老闆想做什麼事情,老闆想往哪個方向發展,老闆的性格是什麼樣的。可能你有一個很好的想法,但是老闆的思考、思路跟你是截然不同的。你跟老闆說我的思路非常好,老闆的理解思路跟你不一樣,他聽不懂你,他覺得你說的這件事情很不靠鋪,他不會給你去做事的資源,一個人不會派給你,會把你現有的資源安排得滿滿的,你沒有資源、時間去做你想做的事情。所以你首先要理解老闆是怎麼想的,他想把公司變成什麼樣的公司,公司是由他來掌舵你只是他的副手。所以你必須取得老闆的資源、老闆的同意,而且理解了公司的發展思路,你才能在這樣的框架下做事。老闆是最關鍵性的人。我在《走出軟件作坊》這本書的時候講過一句話,你跟老闆處得久了,就相當於趙本山跟宋丹丹的小 平一樣,說蒜是什麼,說醋是什麼都清楚了,只有到了這樣的程度,你跟老闆做事才能遊刃有餘。 
網友麥兜:阿朱老師,你覺得怎樣才能培養自己的核心競爭力呢,你看準的是數據庫和中間件,那現在呢?技術方向是啥? 
阿朱:不敢說了,因爲這只是個人的一些職業曲線。我是挺看好SOA這個技術方向。SOA其實也是屬於中間件的範疇,我們做軟件,做了這麼多年,大家還是希望我們的每一個軟件靈活性比較高,能適應更多的社會發展的變化,而不僅僅是死於一塊。大家通過軟件工程、技術架構,很多層面上大家去研究、去發展,都是希望解決軟件能夠更加地敏捷、變化。而SOA的思想與架構恰恰能更加符合現在的IT發展現狀,這是我所比較關注的一方面。 
另外一方面,在3G手機和雲計算的層面上,我也是非常看好。因爲在未來大家可能不會人手一個筆記本電腦,但是人手一個手機都是很明確了。未來手機的內存、計算,包括互聯網的訪問速度也會大大增強,而且時期不會很長,很有可能發生在三到五年之內,這時間是很短的。大家每個手機都會變成像現在的筆記本一樣的計算能力,會去訪問互聯網,存儲互聯網上的數據,這是很好的前景。如果有人要去創業,選擇在這樣的環境下尋找你的創新點,成功的可能性會更大。 
網友提康德羅加:想問問阿朱,假如我的規劃能力不強,是不是可以採取摸着石頭過河的方式進行自己的工作呢? 
阿朱:如果對自己未來將要做哪個方向不太合適還沒有明確的話,我建議他把現在崗位的事情能做一些創新性的思考。我想思考有兩個方向。第一個方向在你現有的崗位上如何讓事情做得質量更高,其實是很難的。有的人我通過更加努力,工作時間更長,我把我的質量提高,這是一種老黃牛的思想。但是這種想法其實在未來是不被認可的,因爲我們需要去有頭腦地做事,你要想把你本崗位的事情質量變得更高,必須要有創新,而不是靠時間長,這成了血汗工廠了,我們不希望這樣,我們希望是有頭腦地把質量提升。第二個方面,在你現有的崗位上如何能更快地完成工作,你完成這件事情,你切有的必要勞動時間你需要三個小時能不能縮到一個小時,這全部要有創新才能做完,不是憑你辛苦才能做完的。未來你做到一個小時之後能不能做到半個小時,全部需要創新,不然的話你無法做完。 
我曾經看過一本書《Borland傳奇》,是李維寫的,他會講到在未來的5年內,軟件開發的週期,現在需要一個月的軟件開發週期,在5年之後要求一個星期完成。也就是說有3/4的時間未來是沒有的,未來的變化會越來越快,對於生產效率越來越高。沒有創新性的思維,你怎麼能完成呢?靠你的努力之後,以後不需要這樣子。 
網友netstat:可以清晰一下技術總監的職責嗎? 
阿朱:技術總監在國內定義比較混亂,有的是把研發部門的部門經理叫做技術總監,有的是根本就沒有技術總監的擡頭,在公司是研發部經理就是這樣的擡頭。有的是把CTO叫做技術總監,有很多是比較混淆的面上。但是我在《走出軟件作坊》這本書的第一章雙龍會就是講CTO和技術總監的區別的。我是這樣看待的,因爲我現在所做的很多事情都在公司的更高層面上去工作,比如說要去客戶現場的售前,包括在售後實施的高層訪問,這方面的工作會更多一些。但是研發部一些具體的管理,就會放給研發部的經理去做。也就是說,當你公司有研發副總、CTO這樣的職位的時候,你研發部的經理就會在擡頭上被稱爲技術總監。但是有的公司來說,有的是他把CTO,也就是說他把研發副總定爲技術總監,也有這樣的公司。 
我想技術總監是更偏向於研發部門的整體的協調跟技術的,我們作爲技術總監也是在編碼、技術的試驗、核心技術的瞭解,我現在比較脫離了技術層面,更多是在公司的發展層面上,把公司的產品和公司的戰略如何去結合,是我的重點。而這個產品如何被一步步寫代碼研發出來,現在不是我的重點。可能在這一點上有區分。 
爬蟲:小型軟件公司,工作室一類的軟件作坊,簽下一單不容易,很認真的做,但中途客戶要變更需求(變動很大),該怎麼辦? 
阿朱:我說一個整體性,關於這個話題我前天也跟網友們在網上聊過,告訴大家一個方案。首先是客戶有什麼樣的需求,由你的項目經理在前面去接洽,也就是說一個項目必須要有一個項目經理,而開發人員最好不要跟客戶直接接觸,什麼意思?一個客戶跟你的公司發生在軟件上的變動或者是項目上的變動,最好有一個入口人,而且是唯一的入口人。而不要說由於這個模塊是由於A程序員負責,客戶知道客戶直接給A程序員打電話,A程序員跟客戶講事情,交涉覺得有一些事情能做有一些事情不能做,這就越過了項目經理這個層面,他就無法對整個項目進行總體的協調和控制。 
所以,建議開發人員不要跟客戶進行直接的接觸,全體由項目經理進行歸口,客戶有什麼樣的需求,由項目經理去討論、確定。確定完了之後,把這些需求整理到了一個需求列表裏面,我們可以先用Excel的表格裏面,我不建議需求去說服客戶說這個不合理,那個不合理,這其實是對客戶關係、對客戶的整個項目。你越拒絕客戶,客戶會反作於你,你往往是等着客戶付款,所以會屈服於客戶的這種壓力。 
所以,不希望大家對客戶進行需求的壓制,儘量提沒有關係,但是提出來的這些需求把它放進需求列表裏面。但是,咱們過去客戶肯定還提了很多需求,我們把這些需求哪些能做,什麼是在近期內實現的,我們把它作爲我們的開發任務,先交給程序員,看完了之後覺得在短期內能實現,需要花費多少的工作量,預計什麼時間能完成。把這些需求都一點點排下來,而排這些需求的時候,先程序員排自己的工作量,因爲程序員對自己的工作能力有預期他比較真實。他會看到第一條的需求能花費0.5天完成了,他會標上工作量,然後根據他手頭的開發任務,會標一個計劃開發時間。但是可能這件事情他趕不住客戶的要求,客戶說已經把這件事情推到10天之後,我們希望這件事情在下個星期完成。 
所以,具體應該在哪天開發還得由項目經理和客戶、程序員一起把這個時間定一下。但是開發的工作量程序員自己去定,定好了具體哪天開發三者去商量一個平衡。把這個列表做出來之後,這個列表要符合一個規定,它不要超過一個預定。如果你定的開發任務都排了三個月了,其實這份開發計劃是假的。因爲在中小軟件公司,包括我們現在做的項目比較大的,客戶也是比較規範的。雖然是這樣子,我們面臨的仍然是需求在不斷地變更,項目計劃在不斷地出現異常。這是一個現實存在而且現在沒有很好的解決方法的現狀。 
我們規定,當我們的開發任務被排到了一個月之後,我們對這些需求不會做計劃的。我們先排在那裏,但是不會去規定我們要哪天完成,因爲這樣做出的計劃是假的,你應對不了變化。所以,我們能控制的也就是說三月份我們該做什麼事情,至少對三月份要做的事情我們有具體的預期,這件事情變化的可能性會少。對四月份可能要做什麼事情變化很大,我們把答應客戶的需求四月幾號我們承受,這是白答應客戶的,答應的預期是假的,我們沒有辦法控制,給客戶的承諾我們完成不了,所以我們不要做這樣的。我們就是一個月一個月來做。 
而控制實際的開發進度,會是一個星期、一個星期去控制,五天工作日做完了之後,到我們星期一,星期一的計劃我們早排好了一個月的計劃,一個星期一個星期去控制,到了新星期的開始我們會去做微調,比如說上個星期有一些工作沒有完成,或者是遇到了難點,我們把這個計劃微調一些,微調完了之後繼續按照這樣的計劃完成,五天是一個小的一個月一個月是大的控制。超過一個月的不排計劃,需求仍然在記錄,但是不排計劃,這樣一點點做到需求的管理與控制。 
網友犀牛:阿朱,我想問一下,如果你遇到一個領導,他的情況是這樣的,他認爲軟件做成什麼樣子不是關鍵的,關鍵的是他的關係把單子拿下來,誰來做他也不管,他拿下來之後,就到處找人來做,也沒有文檔,就是隨便找人來做,至於怎麼做,做成什麼樣子他也不管,他也不給做事的人權力,很多情況下和客戶交流的時候需要他出面的,他都不出面,一句話,項目拿下來,就縮到後面去。各項目節點的時間一拖再拖,他都不管,就一句話,這是你們寫程序的人的問題。領導的意思就是程序員你把問題搞定就可以了,其它的怎麼面對客戶啊,什麼的,都不管。 
阿朱:這樣的人做法是對的,首先要肯定這一點。他不管是銷售人員還是老闆,拿下單子是他的第一工作要務。這件事情怎麼去執行肯定不是他的事情。也就是說首先我們先把責任分開,到底是誰的問題,現在出的是誰的問題?首先可以告訴大家這不是老闆的問題,如果是銷售人員也不是銷售人員的問題,這個問題恰恰出在了研發部。研發部現在是缺了一個很關鍵的人,這個人就是項目經理。就是說大家全部是寫程序的,全是最具體寫代碼的人,誰來領導這個項目,誰來控制整體的全局,誰來把老闆、開發人員、實施人員、客戶、用戶全部協調在一起,把消息傳遞清晰、及時,把意見統一了。沒有這樣的人。沒有這樣的人,當然這件事情沒有人去幹,除非有人說我自願,一般公司沒有人自願說要出這個頭,我們經常會遇到一件事情。我們的軟件做的界面真不好看,是因爲沒有專職的美工,當然做得不好看。我們軟件的文檔沒有,是因爲沒有寫文檔的人。程序員是寫代碼的,他對代碼最熟悉,對文檔不熟悉,他寫出的文檔只有自己看懂,別人看不懂,這份文檔是沒有用的。這沒有意義,他既寫文檔又看文檔又寫代碼,是一體的,他覺得這樣沒有意義,但是別人看不懂他的文檔,缺點文檔的人。 
我說了這麼多的例子,你有什麼樣的問題,最終要的是沒有解決這個問題的人,我們先把這個人定出來之後,這個問題就很好地去解決了。這是誰誰誰的職責,他沒有做到可以追究。否則的話,剛纔的網友說了這麼多的問題沒有辦法追究,到底是誰的問題,說這是研發部的問題,這是研發部的問題其實是打板子沒有辦法打到誰的身上了,沒有人對這件事情負責。大家常一句話,全部在抱怨一件事情,但是沒有人對這件事情負責。作爲老闆確實是,他對公司要負責公司的經營,客戶的關係、客戶的打單他有很多的事情,壓力很大。如果他還要負責整個項目的執行、實施落地,其它的單子還要不要再拿。公司如何去發展,如何去做大呢?所以,必須要有一個專職的項目經理出來,專門負責這件事情。如果是再發生這樣的問題,就是他的問題,項目經理的問題。定人、定職責,把這個拿出來。 
發佈了20 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章