2001/01/14

撰寫規格文件的重點
分類:管理


一個好的系統除了要有良好的架構之外,他的價值有一大部分是不斷的維護系統而符合需求,貼進客戶的實際需要,這個中間修改的過程除了人的因素之外還有設備的更新,作業平台的轉變所造成的種種變因,所以留下規格文件供未來的人來參考改進非常的重要。

文件撰寫的重點並不是要寫的通順或是像寫小說文章一樣來湊字數,所有的開發文件林林總總,我們這一次討論的重點放在軟體系統規格的部分,由於程式設計師總是覺得寫程式看程式碼就好了,但是如果過了一年之後,你回去看你的程式碼你還會有印象嗎?更何況是別人要看你的程式碼了,其實規格文件的重點只有幾項,就是系統平台、程式碼架構、傳輸協定、檔案(資料庫)架構、模組流程等五大項,有了這些文件,往後的人員只要花個幾分鐘看一下,就可以很容易的維護別人的程式及系統了。

系統平台:其實是最好描述的,只要說明作業系統是Windows95/98或者是Linux、AS/400等等,然後使用的開發工具是VB/ASP或者是Visual C++,BCB 等等,最好要把版本號碼或是一些比較特殊的程式庫也要列上去。

程式碼架構:這一項通常會被大部分的人所遺漏,很多人是靠開發工具所提供的整合環境來分類,固然是很好,但是每個人應用的專案檔案(*.DSW,*.DSP,*.IDE 等等)並不會相同,也就是說你好不容易整理好的專案檔,也寫了一大堆說明文件,但是只是給你自己用而已,這部分最好還是要寫辦法製成文件分享給所有的人。

傳輸協定:無論是區域網路、網際網路的協定,或是單機自己內部傳遞資料一定有傳輸的協定,最普通的當然是TCP/IP了,而現在WEB Server或是EMail Server 的普及很多系統都應用網路七層協定的更高層來傳遞資料,這些都應該說明清楚,如果系統出來問題才知道如何查詢,而Windows系統內的訊息傳輸,也算是傳輸協定的一種,而兩個模組之間的Function傳遞也是,如果是重要且獨立的元件模組,應該要特別的強調才是。

檔案(資料庫)架構:除了關聯式資料庫比較容易寫出規格之外我們經常應用到的設定檔(Config),例如*.INI的檔案,還有為了系統效能或是儲存資料、交換資料所儲存的資料檔案,應該都要有格式的說明,以及生成時間版本號碼的資訊,有了這一個規格表,即時是程式碼不見了,我們都可以很容易的重寫出部分的模組,而不用經常得去猜去破解一些資料檔的格式。

模組流程:是最早最早結構化資料分析的時候必須具備的流程圖,但是在物件導向的程式開發,我們經常會把流程圖隨著物件化而簡化,但是也僅僅是改良罷了,他的精神就是輸入與輸出的前後順序一定要清楚的表達出來,雖然現在的程式系統應用了很多訊息是觸發的事件來處理或是多執行緒的程式處理,一個良好的流程圖也可以表現出一個系統的邏輯性,有助於找出系統需要改進的地方,與如何維護的方向。

做文件並不是主管或者是某一些人的責任,應該是所有的程式設計師應該培養要定期製作的能力,除了可以有良好的溝通方法之外,也可以重新檢視一下自己的系統架構,把自己的能力向上提昇。

2000/12/23

研發團隊合作必須了解需求
分類:職場


團隊合作在各種組織上來講都一定是必要的,在開發軟體系統上更是重要,以前我總覺得只要重頭到尾完成開發的動作就可以了,把自己想成專家,但是經常開發出賣不出去的系統。

通常一個大系統很容易拆成很多很多的模組,一般很容易分配寫程式碼(Coding)的工作,分配好工作之後大家也都很容易的整合起來去找出缺點(Bug),這些就是一般程式設計師定義所謂的團隊合作的方式,但是一個正確的產品並不是只要有良好的架構就可以的,他還要符合客戶使用的『需求』,而這個『需求』往往是程式設計師在團隊合作下被遺忘整合的事情。

需求對於一個系統或者一項產品像是靈魂一般,我們往往在系統分析的階段模組化後就被遺忘掉了,如果看看以往成功的產品的例子,可以發現程式設計師的解讀會完全的不同:

1.隨身聽只是縮小化的床頭音響,我們只要把床頭音響的模組縮小即可。

2.汽車的自動排擋功能,只是在排檔的過程加入離合器模組即可

3.太空梭只是把火箭與飛機的功能合在一起就好了。

4.數位攝影機只不過是數位相機加大的記憶體容量。

5.這個系統只要用現成的元件兜一兜就完成了。

這些工程師對於一個產品的價值往往評估的非常地低,這樣的判斷並沒有錯,他們忽略掉了一個成功的系統擁有很多方便的特性,有些系統花了幾萬行的程式碼在做出符合效率的Cache效能,有些系統在操作介面上下了很大的功夫,只要簡單的操作就秀出客戶要看的內容,這一些並不是理所當然的,是『需求』使然的。

擁有好的創意產品,即使沒有使用最新最快的技術,只要是符合需求,價格可以提高的非常多,這個才是成功之鑰。

2000/12/03

閘道系統的應用
分類:創新


閘道系統的應用在我們日常的生活無所不在,但是我們經常不知道,例如電話電信公司、電話機、傳真機、對講機、EMail伺服器、呼叫器甚至是我們現在常用的ICQ,都一定要有相關的閘道系統及產業的配合,而這種產業一定只要遵循相關的通訊規格就可以與別人溝通。

如果仔細想想一個網站也是一個很好的閘道器,入門網站也是某一種形式的閘道器,他們需要把內容的資訊流轉化成為營收,無論是利用廣告的收入或是收取上架費用導入流量的方式,都是閘道系統必須去轉換的核心價值所在,也是最基本的功能。

這是我想到一個閘道應用系統要開發必須注意的事項:

1.通訊協定的排列組合

充分的了解所有電信通訊或者是網際網路的應用特性,千萬不要自己創造一種新的格式,還記得SONY Beta錄影帶慘痛的經驗嗎?各種通訊協定如果可以找出最佳的應用方法,並且變成非常普遍為大家所應用的話,就是很好的閘道系統。

2.現階段的相關產業能夠變成通路

要創造一個新的通路非常困難,行動電話在台灣的通路是一個難得的異數,未來不太可能有相同的機會出現,我們在街頭巷尾看到的便利商店,或者是一個地方固定都有的水電行,甚至幫中小企業安裝電話總機線路的公司,都是現有的通路,一定要找出他們能夠容易上手安裝及應用的地方,因為只有這樣才能推廣的出去。

3.安裝及操作介面要容易使用

買電話機回家插上電及電話線就可以使用了,這個是一個閘道系統的重要目標,使用ICQ可能需要學習一下,但是他也提供了邊做邊學的功能,這個是目前所有閘道系統在推廣非常重要的一點,也是要給大多數人應用的機會點,但是如果你的系統是比較少數人要使用,價位也比較昂貴的,當然是可以不用考慮的。

4.一定要轉換產業價值

如果分析現階段所有的企業需求,大家會發現內容的開發以及被瀏覽的產業價值應該不會超過5%,其他還有資訊流、金流、物流的價值應該是佔非常多的比例,尤其是資訊流就應該佔有30%的比例,而現有日常生活的閘道系統應該還有很多創新的機會才是。