不要永遠套用以往的成功經驗分類:管理
開發軟體系統的最怕的就是技術不斷地更新,工程師的專長不一,使用的開發工具習慣不同,形成後續開發的負擔。
一個系統要可長可久,除了隨著時代進步之外,核心技術也要隨時的檢討改變,不要進入了使用的最新的技術工具,寫出一大堆流水帳的程式碼,以MFC的Wizard Application為例子,原本的用意是讓程式設計師很快的可以跨入寫應用程式的領域,可是我發現有很多程式設計師因應客戶的需求加強一個功能,就新增一個按鈕,然後把舊的程式碼剪貼過來修改,就交差了。
這樣固然可以達成任務,可是卻苦了後來維護程式碼的人,如果選定用物件導向式的語言來開發,表示你可以利用繼承、封裝與多形等等優點,而各種語言的特性要把客戶的需求先抽象化之後,分析可以歸類的元件物件之後,再行具體化的開發。
所以說,你把寫程式當成寫日記或者是寫流水帳的話,你永遠沒有辦法出日記精選或者是做公司帳款財物的分析工作。
而這個分析的工作是每一個寫程式的人必須要去思考的,分析的過程可以參考以前的系統,也可以參考以前成功的經驗,但是,就僅僅是參考而已。
有了一兩個系統專案的開發經驗,到底可不可以把成功的經驗完全的移植,答案永遠是否定的,我們聽到太多說,以前我就是這樣做的,客戶使用的情況非常滿意,而且後續的改版也非常的快速。這就是我非常害怕的心態,如果考慮當時的環境與現在的環境,有太多太多的不同的,例如:客戶群不同、使用電腦的使用習慣不同、系統的大小不同、系統服務的層級不同、使用的開發工具不同、頻寬不同......可以舉的項目實在太多,而最另人沮喪的答案,時間永遠都是不同的。
成功的經驗雖然重要,但是創造另一個成功才是真正重要的事情,試著接納別人的想法,你會發現你所寫出來的程式彈性很大,也很容易改善,不會被別人隨便講一講需求更改,你又要花一兩天去把之前的程式碼修改一番,這樣的系統才經得起考驗的。