挨踢部落故事匯(21):半路接手項目有多難?教你做個接盤俠高手!
原創【51CTO.com原創稿件】被無數爛尾項目折磨的哈韓浪子,一直從事JavaEE開發,踩過的坑無數,承接別人的項目也有幾個。新人或者剛入職的程序猿,都會面臨一個問題,如何快速接手熟悉項目?本期挨踢故事匯哈韓浪子教你做個快樂的接盤俠高手。
哈韓浪子·JavaEE開發
半路接手項目被吐槽
作為一個程序員,喜歡瀏覽知乎這樣的知識分享平臺來拓寬視野。發現經常有人在提這樣類似的問題,例如如何快速接手熟悉一個項目(從代碼角度)?新手如何快速上手項目?
透過題目,哈韓浪子能感受到提問者那渴望求知的眼神,他看了問題底下的評論,大家都沒有給出方法,而是變成了吐槽。
吐槽選登:
A:要么忍要么滾+10086,心理一萬個草泥馬還得面帶微笑。
B:剛畢業就進了這樣一個項目,現在盤算著吃飽經驗滾球了。
C:太多了。。。專業擦屁股戶 ,再熬到年底,準備跑路了。愛誰擦誰擦吧。
D:我以前也可慫,領導給我安排工作,我好多次都默默接受了。昨天真的是爆發了,憑什么我好說話所以次次都是欺負我?真的是兔子急了還咬人的感覺,沖到領導辦公室辯論,平時領導覺得我不怎么爭論,昨天真是辯論賽水平,有理有據。
領導:考慮到你的能力,我們特意給你了一個標桿項目讓你去做維護,你一點都不知道感恩。
程序猿:項目交接文檔缺失,項目業務代碼混亂,項目一直沒有確定邊界,導致現在需求膨脹。這個項目也是標桿?
領導:這些都不是問題,你看你要是把這些問題都處理好,不就正好體現出你的能力了啊,你看這是一個多好的鍛煉機會啊。
程序猿:你瞎說,據我所知你在例會上可不是這么說的(一般都是項目組領導參加,程序員沒資格參加)。你說的是處理好這個項目是應該的,處理不好就是能力差。
領導正色道:我就是給你一坨屎你也要開心的吃下去,不然你可以走啊,會寫代碼的滿大街都是。
。。。。。。
看到大家這樣的吐槽,哈韓浪子感到很難過。因為他也曾經經歷過這樣一段時期,那時候他還是個愣頭青,領導說啥就是啥。但是后來發現柿子還得捏軟的,況且就算他退讓了領導也不喜歡,一直都是干的多拿的少,就算最后離職還把他的年終獎坑了。
如何接手遺留項目
人生就是在經歷中成長,所以哈韓浪子要分享一下接手項目的經驗,做一個快樂的接盤俠。那么我們應該如何接手遺留項目呢?
1、接手前的準備
接手前,先要了解一下這個項目目前的狀況,可以咨詢主管這個項目的領導,當然如果這個領導忽悠你,跟你說這個項目是標桿,或者說這個項目怎么怎么的好,那么你就要多思考一下是不是一個坑了。這個時候你就需要領導提供項目的bug修改單或者是需求變更單,這樣大致能客觀的展現出項目存在的問題。如果bug單里修改的東西很多,或者需求變更頻繁,那么就不建議再接手這個項目了,不然最后難受的是自己,你把爛尾項目處理好了,是應該的,處理不好就是你能力差,其他同事也是站著說話不腰疼的去擠兌你。如果項目的bug單和需求變更單不是很頻繁,這個項目還是可以接手的。
2、接手后的第一件事情
立即著手使用項目,把項目的流程先跑通,然后了解項目的設計目的,因為這些內容就好比是一個燈塔,能在大方向上給你指明道路,并幫你將代碼片段串聯起來,把一個功能點的代碼從數據層,service層,到controller層理出來,做到能快速定位相關位置,還有每一層之間與項目相關的配置文件的熟悉,例如有定時任務配置文件,加解密配置文件等,從而形成一個整體。我們要記住越是復雜的項目,其目的和設計占的比重越是重要。
3、把項目拆解,編寫自己的項目文檔。
項目難,往往是因為不了解,看著一大堆東西,心理上首先就有壓力。一定要頂著壓力往前走,把項目分模塊的去了解,通過代碼去理解業務,一個系統一定有使用頻繁的模塊和非使用非頻繁模塊,這個可以通過給客戶的使用手冊里去了解。如果項目缺失具體的設計說明書,那么就需要看相關功能代碼是怎么寫的,通過了解代碼和使用項目來了解業務流程。
同時要學會編寫文檔,主要是讓自己好理解這個項目。因為你接手了這個項目,那么意味著項目再出什么情況都的由你自己承擔。哪怕出現的問題是由于項目設計,或者開發期產生的,也得由你承擔。因為編寫文字不像說話,耗費的時間會多一些,在打字的過程中,我們會花費心思去組織語言和思考,這會讓我們發現更多項目上的問題。
4、進入維護狀態
當我們了解了項目的業務和相關的代碼,就算正式接手了項目,可以開始處理項目中的實際問題,同時我們要養成每天下班把生產日志拿來看一下,看看項目中是否存在潛在的問題,比如內存開銷過大,死鎖等問題。
- 看日志主要看error日志,確定所呈現的bug是緊急還是非緊急的。緊急的,立即就要著手去修復。同時要寫郵件抄送給相關領導。(不然你把問題處理好了,領導也認為你沒有工作量)
- 查看服務器的CPU,內存等開銷。這個不必天天進行。
- 寫一些SQL腳本,來檢測數據庫表里是否出現了數據重復,垃圾數據。主要防出現SQL注入等問題。
【寫在最后】
唯有經歷過以上所有步驟,我們才能成為一個專業的項目接盤俠,然后開心快樂的成長,對于之前負責項目里給你留的坑也好,bug也罷,我們應該當然選擇原諒他!
如果你也愿意分享你的故事,請加51CTO開發者QQ交流群 312724475聯系群主小官,期待你精彩的故事!
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】