顯示廣告
隱藏 ✕
※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2016-12-21 04:18:44
看板 Soft_Job
作者 f19870421 (魚兒)
標題 Re: [討論] 缺文件少註解,沒人清楚的系統如何維護?
時間 Mon Dec 19 15:27:22 2016


※ 引述《eori (浮光掠影)》之銘言:
: 進來公司一個多月,被指派說要去修改一個系統。 該系統已經用了10年以上,文件寥寥
: 可數,代碼改得亂七八糟,註解只有幾行。我這個職位兩年內換了五個人,其他同事只知
: 道大概,問細節就說去看code。老闆一直認為這個系統很簡單,搞不懂為什麼沒人懂。請
: 問大家有沒有相似經驗,後來又是怎麼解決,可以給我當作參考,謝謝。


這種情形大概不會少遇到,除了自己公司開發的換了很多手的以外,也有那種外包給別的

公司做後來沒有再繼續維護後就放在那擺爛的系統。接到這種案子心情真的是會蠻差的,

去問別人都會叫你去看Code,去年我也接到幾個(公司維護擺爛說他不會,事實上他可能

真的不會,因為他上次跟流程人員說 Win10 不相容 .Net Framework 沒辦法安裝,搞到

流程來找我求助...這又是另一個故事了)



總之接到這種案子怎麼辦?

我的經驗是:

1. 先判斷是不是你非做不可?

   別人都可以不做,都可以說不會,那為什麼我就必須會必須做?每個人職位不同都有

   自己該做的工作,你本來的工作做不完,被推一個坑,延誤到你自己的時程,誰會幫

   你?如果修不好還要被嗆被酸,有夠倒楣。如果是別人隨便推到你身上而不是必要的

   那你先把自己的事做完再來看要不要幫忙,建議是不要節外生枝,說很忙沒空,之後

   再說就好。去年我就是這樣嗆維護的,本來就他的事,我身上三個開發案還叫我去幫

   他看,他自己在那跟客戶吹牛他什麼都會,還在try-catch裡寫遞迴這種東西我哪敢

   碰。



2. 如果非做不可:

   如果老闆已經發下命令要你做,先爭取時間。第一這個東西本來不是我寫的,你要我

   研究一定要時間(不管是要維護還是直接重作);第二你現在要我做這個,那我本來的

   專案進度怎麼辦?我沒辦法兼顧,看是你要協調別人來幫我還是先暫停其他案子,不

   然我沒辦法做。


   再來實作方面,Trace Code一定是必要的,但幫助可能不大。舉我的例子來說,去年

   我得到PM同意暫停手上案子後,去協助維護改以前的工具,跟你一樣文檔沒有註解沒

   有。結果維護真的是來亂的,跟我講說看 Code 就會了什麼也不講。我問他你說看


   Code就會,那表示Code的邏輯是對的囉?Code是對的為什麼要改?他說將來Data

   Source的格式可能會變更,我說喔那會變成什麼樣子?他說不知道。我問他那你要我

   改哪?這個工具是幹嘛的我都不知道,你說現在可以正常運行而且運行結果是對的,

   那改什麼?你說將來會改但改成什麼樣不知道,那你要我怎麼改?然後這件事就不了

   了之了。


   事實上同樣的情況也適用在你碰到的情形上,我建議你在看Code前先了解一下這個系

   統到底是幹嘛的,問題點在哪(沒有想改善的點那是要改什麼?)把你需要處理的業務

   邏輯都整理清楚。我們工程師是為了解決某個特定問題而去寫程式寫系統,而不是寫

   好系統來看我們能達到什麼解決什麼問題,這樣有點本末倒置,很可能一開始問題根

   本不存在反而多花很多功夫。現在老闆要你改,表示他覺得這個系統有問題,那就是

   Code本身可能就有問題。如果你什麼都不清楚,光從有問題的邏輯中就能推敲出正確

   的邏輯應該是怎樣,那老闆該換你當了。當你看到你覺得很奇怪的Code時,你根本無

   法確定前人為什麼這樣寫?到底是有特殊要求還是單純寫錯,或者是當時的需求已不

   適用於現在,你也會不知道從何改起。



   隨著時間過去,中間又經手過很多人修改,系統一定越來越龐大也越來越難改,如果

   你能搞清楚這個系統到底是要幹嘛的,問題點在哪,改善後要達到怎樣的效果,邏輯

   和數據該怎麼流動而終於要開始改了的時候,再來依照你Trace Code的結果決定是要

   重作還是修改前人的Code。一般而言如果我判斷重作大概幾周至一個月內能做完的話

   我就會直接重作了,反正有爭取到時間;要是系統實在過於龐大非短期單人能完成,

   那你只好硬著頭皮去改以前的Code。要是你能了解這個系統的業務邏輯,那應該也有

   助你找到比較可能出錯的地方。不過原則上來講還是建議跟老闆提看看要不要發包或

   開新專案專門重作這個系統,畢竟一個系統搞到大家都敬而遠之,也代表他的維護成

   本是相當高昂的,是不是還要這樣繼續下去,還是應該另外再做一個,這其實是可以

   討論的。



   當然如果夠油條,這些事其實能讓你殺很多時間,就像我前公司的維護一樣哈。

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.243.13
※ 文章代碼(AID): #1OLulSF4 (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1482132444.A.3C4.html
notBeing: 精確1F 12/20 18:52
viper9709: 推這篇~觀念正確2F 12/20 23:40

--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 287 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇