案例講解一:如何兩周救活一個瀕死項目


一、當時現狀
1、項目情況
項目已經開發了半年,投入了公司大部分的人力,有專門的測試員。項目部負責人本身的管控力度還不夠,然后這個項目其實是已經失控了,但是他肯定不會去跟老板說已經失控了,所以那就按計划去投入上線吧。
上線的結果就是整個系統運行都非常的慢,簡單說就是你點一個鏈接要等好幾秒鍾這個列表才顯示出來。然后程序員是那種責任心不夠強的,也不願意真真正正的去解決問題。
這個項目是一個全渠道營銷平台的項目,需要跟外部的好幾個系統做對接,整個項目有差不多10個子系統吧,算得上還是比較復雜的。

2、具體情況
1)人員配置
1個測試經理(兼項目經理,也就是對客戶的第一責任人)
3個經驗豐富一些的主力程序員
4個普通程序員,普通程序員里邊有一個不錯的小伙子,做事是比較用心的,但是做的很郁悶
微商城是找外包做的

2)所用語言
java、php、.Net

 

二、整改過程
1、詳細了解這個項目的本質的東西在哪里
我通過詳細的和項目經理溝通完了以后,初步了解到就是功能大致上是有的,只是運行起來很別扭,而且運行起來非常慢。

接着和團隊里邊的高級程序員做了詳細的溝通和了解,同時讓他們跟我講代碼。在這個過程中,我基本上就知道這三個人都是那種混的,反正他有水平,你公司也不可能把它開掉,,但是他們都不是那種會真正花心思去解決問題的思路,反正就是你老板讓我做什么我就做什么,你不叫我就不做。

和每一個普通程序員也都做了交流,然后我就發現了,這個普通程序員里面有一個非常不錯的小伙子。

還有一點要說一下,就是當時我過去的時候我正好找到了一個我以前帶過的小弟,小伙子給我的印象非常深,他的整個技術水平還有他做事認真的這個態度都是我非常欣賞的,所以我在上一次和他共事之后就一直關注着他,和他這幾年來一直保持着很好的聯系。 進這家公司的時候,當時我就決定要挖他過來。有了他,我知道我是可以處理掉任何技術上的難點。 我來負責把控大局,做好項目的管控,技術的東西交給他去負責出方案,最后我來把關,那么我們是能夠配合解決掉難題的。

最后分析出來的結果是:
1)這個項目可以救活過來,因為功能其實都已經做得差不多了,只是說由於這些功能之間相對比較孤立,使得整個系統最后跑起來的時候有問題,想要解決這些問題需要整改的代碼量其實並不大
2)項目經理也就是測試經理還是比較負責任的,但是那幾個主力程序員不行,沒有責任心,這個是這個項目能夠出現現在這個情況的最大的病根,然后因為我這邊帶了一個能干的人過來,所以這個問題也能解決。同時在普通程序員里面那個比較不錯的小伙子,可以提拔上來。有了這兩個人那么整個人力配置這一塊基本上就OK了
3)系統架構這一塊話呢,需要做一個重構,從原來的那種各個子系統相互孤立方式變成用業務組件的方式去抽象,把核心的業務功能合並到一個個業務組件里
有了以上分析,那么我就知道,依賴當前資源能夠救活這個項目,然后我評估出來的話呢,大概是兩周就可以重構完成。

2、具體實施過程
首先是和客戶解釋說再給我們一點點時間,讓他們不要把我們給放棄掉了。

接着引入禪道,全面地對整個的項目開發管理過程做精細的管控,把每一個詳細的工作任務全部都給細化了,每天我要干的事情就是去監控這些任務是不是按時完成了,同時我來做代碼review。 核心的事情交給我說的那兩個小伙子去做,原來的主力程序員直接邊緣化,其他的普通程序員給他們打氣說我們一定能夠完成這個事情。 當每個人看到他每天做的事情都能夠得到我的肯定以后,整個團隊的風氣就不一樣了,然后就很順利的按計划兩周完成了重構。

重構完成以后上線,這個時候整個系統的一個響應已經比以前有了很大的提升,基本上來說是屬於可以用了。當然不可能說兩周就把一個項目完全搞定,接下來的更重要就是后邊的一個持續的優化,每周做一次迭代,每周更新一個版本,讓客戶看到我們在不斷的進步,不斷增強客戶的信心。


然后就沒啥了,后面其實就是不斷持續改進的一個過程了。

 

三、經驗總結

以下幾點:

1、解決任何問題,必須先搞清楚出問題的本質原因在哪里

2、對於技術上有一定復雜度的項目,資深程序員不作為往往是主因

3、不懂技術的項目經理,被人品不好的程序員欺壓很難避免

4、本項目是一個已經開發基本完成的項目,基本功能已實現,只是存在性能、bug問題,優化的代碼量不大

5、根據業務做組件化抽象是大型項目必須要做的,做好業務抽象后,處理bug的代碼修改量會大大減少,一定謹記重構的原則:先重構,再修改bug,千萬不要兩個同時做

6、一定要敢於相信人品好,有責任心的程序員,即使他看起來經驗還不足,只要給於足夠指導,能頂大梁

7、管理出效率是真理,通過軟件管理工具,項目經理做好工作任務細分和進度管控,核心程序員解決技術難點,基層程序員只需要按工具上的任務單做事,各司其責,效率和品質會得到質的提升

8、每一個迭代周期都絕不允許任何延誤,即使少量預定工作未能完成,只要不影響大局,也要按時發版,整個團隊必須養成按計划發版的習慣

  

下圖是這個項目的系統架構:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM