2001/07/29

系統開發延續性的重要
分類:系統


不可否認的軟體開發的程式設計師流動率很高,我想這個是全世界作系統程式開發人員供需不平衡所致,而台灣很多軟體公司因為一個高手離職,往往導致開發的時程受到很大的影響。

要如何解決這個問題呢?大部分想到的就是做好系統分析的文件,補足在開發過程修改的紀錄,而公家機關的做法往往是要求列印原始程式碼,但是我認為這個只是消極的做法,我想一個維護系統的公司倒閉,要較另一家公司接手,也是曠日費時。

最近看到微軟在宣傳新的平台,仔細地看清楚文件,原來這些都是兩年前的訂下的規格,目前只是重新包裝出來行銷而已(當然微軟也放棄掉很多自己訂的規格),而這兩年的期間我相信參與新平台的系統開發人員一定也是一直有更替,他們是如何延續當時的理想的呢?

我想有一個遠大的目標是不夠的,強制找出所有的系統模組的規則,並且認真的去討論內容,而且是讓每一個開發人員都了解為什麼要這樣做?不斷地演進我想這一句話說的容易但是做起來很難,光光開出一個規格一個模組就很難能讓所有的開發人員的意見相左了,還要去挖出對每一個模組要求的效率及通訊規格的一制性。

一個大的模組可能是一個人開發,但是大的模組裡面又有小的模組,比較難的是要求小模組之間的應用的正確性,人往往會有惰性,總覺得只要把要求的模組開發完成就好了,不管模組內部未來發展及維護的問題,我想即使是一個人開發,也是要依照上面的原則去思考系統的架構的。

而一個系統總是有歷史的軌跡的,面對一個新接手系統的人,一定要想辦法完全了解所有模組,為什麼要這樣子作?什麼模組是因為以前的電腦處理速度問題所做的最佳化?什麼模組是因為客戶專業性的重要需求所做的處理,我們往往會用現在的眼光去判斷以前的系統多麼不何時宜,系統架構多麼不好維護,但是總是沒有看到一個舊系統如何滿足客戶的需求及功能強大的優點。

系統開發不是水平分工的行業,如果光是靠資料庫就可以達成,或是靠建立一個網站就可以做好的話,這樣的進入門檻很低,也很容易在競爭的環境下被淘汰。所以,延續一個系統的強韌及不斷地開發是軟體開發人員先要了解的課題。

2001/07/15

系統分析、程式設計與品質測試
分類:職場


最近,公司又在徵人了,原以為在不景氣的環境下找到適合的人才非常容易的,但是,事實上並非如此,好像比一年前更難找到合適的人。

在與程式設計師面談的時候,問問他們未來的生涯規劃的時候,他們總會說做做兩年的Coding工作,然後想往系統分析的工作領域前進,意思就好像是程式設計是比較低階的工作,系統分析是比較高級的工作。

事實上在業界並非是如此的,如果公司的規模大到一定的規模,可能會區分出來系統分析與程式設計不同的角色,有時候甚至連系統測試的部門都會出現,但是這幾種工作並沒有貴賤之分,簡單地來講,甚至薪資都是差不多的呢?有時系統分析師的薪水搞不好是最低的。

我想會形成這種錯誤的觀念應該是教科書上面的流程所教育的刻板印象,大家把系統分析想成了所有系統的決定權就在那一瞬間決定了,還有所有的模組分類都要在那一個動作做好,老實講,這是天方夜譚,其實系統分析師的工作定義應該是與客戶需求的接軌而已,有時候甚至對於客戶的成本控制都不在他手上,如果可以分析出所有的需求,然後客戶也同意如此的規劃,系統分析師就算達成他的任務了。

而品質測試工程師有時候會覺得無奈,總覺得有很多的責任要他們來扛,而他們所能控制修改系統的能力又幾乎沒有,我想這個也是對於工作角色定義不清楚所致,簡單的來講,測試工程師對於整個系統的演化結果及客戶的結構環境要有很深的認識,有些程式設計師總覺得測試人員實在是非常龜毛到不合理的地步,我相信有很多是測試人員對測試的方向,客戶需求扭曲的認知,這一點如果光靠系統分析師來定義並不是好的,應該由這三種角色的人共同討論定義的。

所有組織的角色扮演並沒有很明確的定義,如果您更了解您的工作環境及團隊是怎樣的,我想最好還是說清楚講明白。