1. 程式人生 > >軟體人生之這些年做專案帶新人的經驗總結

軟體人生之這些年做專案帶新人的經驗總結

http://www.cnblogs.com/jirigala/archive/2009/10/13/1575920.HTML

上班時間寫個人部落格隨筆的確會有些感覺到愧疚,專案組裡的兄弟們都在努力幹活,我卻在娛樂,寫寫部落格、休閒,拿公司的錢寫自己的文章,的確是有些不好,以後還是少在上班時間寫部落格了,上班時間好好幹活,拿公司的錢應該給公司幹活才好,公司畢竟不是給我發工資讓我來寫部落格的。

   這些年前後帶過很多新人,仔細算下來估計有近100個以上了,每年大概帶10人左右,把帶新人的感受寫下來供大家參考借鑑,由於我從來沒有在一流牛B軟體公司呆過,只能說是中下游的草民軟體公司的帶人經驗了,總的來說,還算是規範的專業軟體公司了雖然與世界知名的軟體公司無法攀比。



01.不要指望成長過快、迅速見效
   首先不要指望新人成長太快、不要總是跟自己現在的能力比,我們畢竟是寫程式有10年8年了,他們還剛畢業、剛進入這個行業,有很多應該知道的常識都不知道,當然也不知道天高地厚,想想我們自己10年前是什麼水平?每個人的提高成長都需要漫長的、彎曲的折騰著前進的漫長路程,拔苗助長是未必都能見效的、大躍進理論上是可行的實際是殘酷的,腳踏實地一步一個腳印才是真,再說了,牛人還會來我們公司打工嘛?早被牛公司盯上錄用了。

02.嘴巴講沒用、要真刀真槍實際例子
  不要以為給他們把事情都講明白了、詳細要求都提好了,他們就可以做出來了,他們不是老員工、不是高階程式設計師,要在紙上給他們畫清楚頁面詳細效果,每項注意事項都記錄好,不光這些弄好了就可以了,還要給他們找個實實在在的參考的例子程式複製貼上,他們會更容易上手完成工作任務,說白了你自己做比他們還快,但是他們總需要一個成長的過程。不可能是一步就博士畢業了,還得從幼兒園、小學、初中一步步進步,他們畢竟是實習生、新員工。


03.要靠培訓、規範、公司的規章制度來約束
  不要指望那些簡單的道理他們都懂,你要把他們當成傻瓜,給他們仔細的上基礎技術知識培訓、例如管理方面的常識,然後讓他們每個人都講解一遍,確認他們真的懂了,公司的行政管理上的規章制度、薪資制度等都最好培訓一下,我們部門是每個人把公司的規章制度打印出來讀一遍,然後簽字,表明他們都已經瞭解了這些,當然我們更以技術上的培訓為主。

04.每天安排明確的工作任務、完成的工作任務及時檢查驗收
   時間是寶貴的,活了一天就是少了一天生命,而且是很多人浪費一天,那對公司來說更是殘忍的事情,每天都需要佈置明確的工作任務,每次佈置任務後,你不要指望最樂觀的效果,要指望最糟糕的情況,就是你自己動手做絕對比他麼快5倍以上,但是還是要讓他們自己折騰折騰,給他們及時檢查程式、修改程式,然後讓他們做紀錄,給他們講解為什麼要這麼寫才對。

  工作任務越細膩越好,你總不能給一個新來的,3個月,做一個進銷存,那是不實際的,或者1個月做一個OA出來,若真的這麼好管理,那公司養你幹啥,早讓新人來替換你的工作崗位了,新任更聽話、成本更低。
  沒有檢查驗收通過的工作,都可以視為0,因為很可能全盤被推倒,或者幫的是倒忙,開發人員往往說開發了90%了,接著還有10%的工作,但是後來發現,這個10%才是真正的90%,因為後面花了9倍的工作時間,才真正把這項任務完成,所以我從來不相信開發人員報的進度,我只會當個參考值,真正檢查驗收過的,才是真正的進度。

05.新人是不穩定的,進步最快、最聰明的新人往往是最早離開公司的
   新人隨時可能會走,他們身在本公司總會覺得另一個公司前途更好,工作環境更理想,薪水待遇會更高,或者已經學到足夠的本事了想闖闖看,看看外面的世界是不是更精彩,他不會知道天下的烏鴉都是黑色的,不來回折騰幾個公司消磨幾年時間,總會覺得有夢想中的理想工作。最聰明能幹的新人,一般是最早會辭職跳槽的,我們一般希望走中庸之路,這些員工一般才是最穩定一些,甚至是最不聰明的員工是最穩定的,以為他想跳槽也跳不了,由於新人的不穩定性,所以不能把核心的工作安排給新人做,他做了一半拍拍屁股走人了,你說找誰擦屁股呢?

06.新人實際工作需要.NET他們會覺得Java更有前途,工作需要C\S,會覺得B\S更有前途
   你讓他們用SQLServer他們會覺得Oracle更有前途,讓他們用Oracle它們會覺得MYSQL更牛B,你讓他們寫.NET程式他們會覺得學Java更有前途,你讓他們做B/S他們會好奇C/S系統,他們會覺得你沒在做的那個技術含量更高,更有前途,你想讓他們搞東他們會想搞西,甚至想研究Linux系統才是牛B的、收入才會高,好奇心強,定力不足,沒有穩定的立場。
   新人、甚至是公司的老員工,對公司的開發平臺都沒興趣,敷衍了事的比較多,反而對其他公司的產品、平臺更有興趣,對國外的開源更有興趣,但是學了,也沒能力改進公司的開發平臺,學會了,理解了,與能用,能改進,能整合還是有很大的差距。

07.新人容易受環境的影響
   新人怎麼帶,他們就會變成什麼樣的,自己稀裡糊塗,跟著你的新人也會稀裡糊塗,你努力拼搏,新人也會被薰陶,一個公司的文化氣氛是什麼樣的,新人也會被改變成那樣的,這就是所謂的入鄉隨俗吧,有些公司5:30一下班,工作任務有天大的重要事情還沒解決都走人的,新人也會覺得5:30了下班是天經地義,整個公司都可以上網聊天看新聞,新人也會覺得這樣是天經地義,一般第一個工作影響人的很多方面,若第一個公司很厲害,一般這個人未來的幾年也會蠻厲害的。

08.公司需要有個穩定、高效、快速開發平臺、文件庫等
   若什麼事情都能依賴新人做好,那真的軟體公司,想什麼時候開就什麼時候開了,招聘20-30個新人,學過IT知識的,那就每個人安排合理的工作崗位就可以開軟體公司了?沒那麼簡單,一般軟體公司走上正軌的道路,一般會燒1000萬左右的學費,這也是正規軟體公司的門票錢,燒了這些錢了,老闆也就明白軟體公司怎麼開了,這不是我講的,我一個朋友跟我講的,我仔細想想,也的確是有道理,我的好幾個老闆,燒的學費,可比這個數目多多了。
  公司的開發平臺,相關文件等,當然還有其它的,都是靠錢燒出來的,這一般不是短時間能積累出來的,就算快速堆積在一起了也很坍塌的。

09.一個人一般帶3-5個人是比較實際的,不大可能一次性帶幾十號人
   人的精力是有限的,往往日常工作中還需要處理很多事情,自己手頭上的事情需要做好,同時需要分配佈置任務、分析系統、與客戶打交道、與其他部門、領導打交道,還要進行日常的管理工作,再額外帶幾個人,已經是很累了,還要保障帶的效率要高,能做出成績來,一次性帶幾十個人,是不太實際的,除非你專心做培訓,其他事情都不幹,還有希望的。

10.新人往往停留在表面,無法深入到細節,不喜歡做重複的勞動,喜新厭舊,雖然做東西快,質量上不來
    新人往往會做幾個頁面了,重複的勞動就不喜歡做了,但是做出來的軟體裡,會有很多Bug、會有很多書寫不規範、思路不嚴謹、程式漏洞、執行效能問題、效率問題、程式碼的質量問題等等,你提醒他們多了,自己煩,新人比你還反感這些,這也算是讓人頭痛的事情。
    新人很容易蜻蜓點水,瞭解了表面很淺顯的內容,就以為自己很懂了,不原意乾重復的勞動,更不願深入進去,當然更不會為某件事情,某項工作負責到底的,一般是會中途放棄或者經常換來換去,前幾年很容易啥也幹不出來,也能騙幾年的工資。

11.新人喜歡學習,但是不喜歡工作,往往學一大堆與工作無關的知識
   
新人往往都喜歡學習,工作時間學習、休息時間學習、週末學習、晚上學習、中午學習,但是都不知道在學啥?學了是不是有用?其實學習就是為了解決日常工作中的疑難問題、為了解決客戶的需求,需要引導這些人,圍繞著實際工作需要展開學習,有目的有計劃地學習。別說新人了,連有些老人也都喜歡學習。
  我曾經有個臺灣老闆,說得很有意思,你買書公司是不會給你報銷的,那是你對自己的投資,你學厲害了,公司不是還要加薪嗎?你上班時間不允許學習,先工作為主,公司不是花錢讓你來學習的,是讓你來工作的,學習是你個人提高的事情,跟公司的工作,暫時撤不上關係,公司以滿足客戶的需求為主。
  我一般除了學習英語外,技術都不喜歡學習了,工作上需要什麼,我就學什麼,跟工作無關的,求我也不學習了,我寧可休息,看看電影,甚至是靜養也可以,學那麼多幹啥?我學了那麼多,你給錢啊?平時的工作壓力已經很多了,若沒事幹當然要學習了。

12.新人總會覺得在公司學不到技術
  做IT軟體,其實是工地上的民工一樣的性質,也是工人而已,其實沒啥本質的區別,再說了,我們沒能掌握多少核心的技術,作業系統不是我們國內的、資料庫不是我們國內的、開發環境、編譯器不是國內的,版本管理器不是,連像樣的第三方控制元件也都是國外開發的。
  你說我們能學到什麼核心技術?估計連javascript、瀏覽器、html 也都跟我們沒多大關係,我們都是在用別人發明的東西,我們自己是沒多少發明創造,用別人的工具平臺、跟別人屁股後面學點兒如何應用的小伎倆、小技巧,再翻譯一下國外的應用文章,就是蠻厲害了,可能這麼想就悲觀了一些,連很多HTML編輯器也都是國外的吧?
  大部分人,都是建立資料庫、新增、刪除、修改、查詢、搞幾個介面,把資料倒騰來搗騰去而已,能有多少技術含量?其實更多的是業務知識,更多的是看誰倒騰資料倒騰等更有道理、思路更嚴謹、更瞭解客戶的需求更方便操作、頁面更美觀而已。

13.新人溝通能力往往會有問題、喜歡另立山頭
   做公司的專案,與學習是2回事情,做個某個專案裡的某個功能,需要注意的事情非常多,例如編碼規範、引用的公用類庫、程式處理邏輯順序、檢查項、版本控制器、基礎資料、許可權、日誌、異常管理、多語言、多版本相容等等,所以做出一個有用的東西很難,不是網上那樣真的新增、刪除、修改就可以,雖然本質上沒啥區別,但是能做出符合公司要求的東西,的確需要一些水平才可以新人比較難有這個境界的能力,所以往往喜歡拋開這些,另立一個山頭,其實這也表明他的能力還不夠,不是說有多牛B。
   其次,新人由於在一個陌生的環境裡,怕問別人,因為不問,別人不容易知道你的深淺,你一問別人,或者問多了,就是很容易讓別人知道,你有幾斤幾兩的水平,說白了就是脫了褲子給別人看了,這時候往往新人會採取沉沒態度,工作做好了,也不吱聲、做不好,也不吱聲,你不去問,他可以3個月都老老實實的呆在那裡悶頭幹,不知道都在幹些什麼,這些管理者要加強溝通、監督、指導才可以。
   其實有些問題網上找找是可以找到答案,但是你半年都不跟同事溝通,怎麼促進感情、怎麼融入團隊啊,有時候假裝問幾個問題,讓你的專案經歷對答如流,讓他牛B一下,也可以拉近你跟他的距離,當然別問太多太幼稚的問題,別人會反感,還得區分開來,你的主管是不是很忙?還是比較悠閒?偶爾問個難點兒的問題,也讓他知道一下,你的水其實很深,也不是壞事。

14.世界是屬於負責任的人、新人往往更喜歡選擇逃避
   一說領導一詞在國內快成腐敗的代名詞了,其實在很多場合只有負責的人,手上才會有權利,出了實情,這個人是有責任的,所以大多蹲監獄的,也是這些領導,很少聽說哪個機關、哪個公司的小兵蹲監獄了。
   可能有些跑題了,新人往往頂不住比較大的壓力或者不太容易融入公司的文化生活,這時候往往會選擇逃避,選擇離職跳槽,我也是從新人過來的,我也承認,我的幾次跳槽,就是有逃避的心態,只是那時候不敢承認,現在死豬不怕開水燙,承認了,你又能怎麼樣?我是最不要臉的傢伙,哈哈,現在是敢站出來承認,當初的確是逃避佔了大頭。
   走南闖北多年,發現不管是那裡,權利都掌握在對工作負責的人手裡,敬業的人手裡,當然大部分的收入好處也都被這些人擁有了,那些不負責的,沒責任的,大部分是無足輕重的打工仔,多一個少一個無所謂的。
   不能過的期望新人有多少責任、負責等等,畢竟他們都是小孩子,能力、心力也都沒成熟,他們有經常反悔的權利,有跳槽的權利,喜新厭舊的權利,畢竟他們的回報也很少的嘛,人都需要一個成長的過程,好局好散、順其自然比較好。

15.其他未整理的雜七雜八
01。SQL語句儘量不要寫得過於複雜的,他們大多沒那個能力,儘量越簡單越好。
02。系統平臺架構儘量是能讓人少犯錯誤的,隨意性不要太大。
03。程式碼儘量不要手寫,能生成的就生成,這樣又規範有可以減少審查的成本,系統的架構、原理、注意事項都要告訴他們,儘量讓他們少寫程式碼,儘量用程式碼生成器或者標準樣例程式模仿。
04。千萬別讓他們亂髮揮,那亂攤子倒時候會搞死你,你要給他們佈置好明確的任務、做好一個即時驗收一個,雖然做到這點非常困難,但是努力去做。
05。他們總會覺得加班會有加班費,這個月的工資這個月發,或者儘快能轉正,最好是下個月能拿到1萬的月薪,或者下個月就到IBM去工作,Google去工作。
06。新人做出了一點點後,會覺得很了不起了,覺得會很累了,很會把加班當回事情說,覺得自己很委屈很辛苦,經常會請假遲到,事情特多。


   本人是一個粗魯的草民,寫不出能上臺面的文章,喊不出時髦的理念,一步一個腳印,這些年實際工作上的點點滴滴總結寫寫,新人多了,不是很好管理,可以做為參考,主要是看興趣愛好及敬業精神了,其他什麼都好說了。
   沒上過碩士博士,也沒見過世面,這寫文章就是糟糕,別人都可以寫出文言文的,我只能用白話寫寫了,更貼近民眾吧,有錯別字、不妥之處,請指點,歡迎您的補充。