人物專訪
三慧科技股份有限公司研發部經理 羅鍾靈先生
三慧科技股份有限公司是一間網際網路/中介軟體專業廠商,成立於民國81年7月,自成立以來,致力於研發異質性資料庫中界軟體。所開發的OpenPathTM產品系列,針對網際網路上資料之存取,提供快速、有效的解決方案。為達成技術永遠領先之目標,三慧科技除投入大量的研發人力外,更積極參與國內外各項合作計劃。如與經濟部、工業局、資策會等的專案開發,和國際間各大學和企業的學術交流等。一則吸收最新科技,再則貢獻三慧之技術與經驗。
除此之外,透過各地的銷售網,三慧科技之產品,已廣為國內外公民營機構所採用,並且深得好評。在遍及歐美亞各地的經銷商和台灣、日本、馬來西亞、及美國的分公司的努力下,三慧更為全球的客戶提供了完善的技術支援。其主要之服務項目有:
目前,三慧科技將重心集中在資料交換網路的研發。以技術、產品、及經驗,協助國內外各企業建置企業資訊聯網系統。另外在美國、中南美洲、歐洲、日本、東南亞各國,三慧科技的產品也都十分暢銷,廣為全球知名公司,如AT&T、Toshiba Information System Corporation等的使用。有鑑於此,我們很榮幸能夠有這個機會訪問三慧科技研發部經理羅鍾靈先生,對於身為一個programmer應有的共識與對未來資訊世界的走向提出其見解。
羅鍾靈先生於1986年在台大資訊工程學系畢業後,前往美國伊利諾大學攻讀研究所,之後回到台灣,先後曾於中華電訊公司、榮電公司、雅訊公司及台灣天石科技等處服務,現任三慧科技股份有限公司研發部經理。在其漫長的資訊生涯當中,羅先生對於Career as a programmer 有如下的看法:
一、Teamwork
在資訊生涯當中,teamwork不容置疑地是一個很重要的觀念。現今一個很重要的相關課題,便是創造一個『開放的環境』(Open Environment),使得團體裡所有的成員都可以自由地分享知識與資源,也可以自由地討論。舉一個很不好的例子,如果在一個團體中的某些成員,為了保持其在團體中的地位與重要性,就自己保留了一些設計上的細節以及其他的know-hows,這樣就會嚴重地傷害了一個團體的和諧完整,也會嚴重地阻礙了團體的發展,自然地,也傷害了他們自己。所以一個Open Environment是很重要的!
另外,很多的technical staff對於所謂Open Environment並不熟悉,因此有一些人對不情願將他們的想法表達出來,並不是因為對彼此懷有敵意或怨恨,而是因為沒有這樣的習慣,這樣也會對團體造成傷害!因此發展自然且明白地表達自己想法的習慣,客觀地傾聽與評價別人的意見,並且樂於接受別人的批評,對每一個programmer而言都是很重要的requirements。
二、Training
對於一個project是否能成功,Teamwork固然很重要,但是團體中的每一個成員的能力更是會嚴重地影響project的品質。因此為了能保持高的品質,也為了能使整個team能有效率地工作,訓練員工(Training)也是很重要的課題。
而所謂的training並不只是侷限於去『obtaining new technologies』,另外還有一類是一樣重要卻常常被疏忽的,便是要訓練員工能夠『making the best use of what one knows』。 相對於Knowing而言,Using it反而是更難的課題,一個好的Programmer應該要能夠『makes the best use of what he/she knows』。除此之外,一個好的technical leader應該扮演著可以隨時給予其他programmers適當的指導與刺激,讓他們能夠『using their knowledge to perfect the art of design and programming』。
三、Design
Design 是一種 art form, 因此一個好的 design 應該是優美、簡單、而且是具有彈性的。一個完整而嚴謹的Design要比實際的Implementation重要的多,但卻常常被忽視,在程式開發過程中經常是一個不存在的獲釋簡單而草率的步驟。但是對於開發一個複雜的大型計畫而言,Design應該是需要被獨立劃分出來的。一個好的Design應該包含所有技術的細節以及如何解決所有技術上的問題,因為在implementation或testing的時候,一個設計上的疏失往往會發上許多的時間與精力。
另外一個重要的課題便是design documentation。Design documentation可以保存design ideas,而且對於implement的過程、產品的維持與保存、以及新進人員的接手都是很重要的依據。
四、Testing
Testing也是一個重要卻經常被忽略的階段。每一個軟體產品都應該具備一個 automated, script-driven (或者其他類似的自動提供new test cases 的)test engine。如此可以透過自動程序來確認產品的系統相容性以及預防bug的產生。而Multiple processes coordination 以及user input emulation將是設計這樣一個test engine中兩大主要的難題。
談到羅先生目前的工作方向,羅先生表示,目前他的工作著重在『WEB Authering Tool』上,也就是藉由internet,將資料PUSH 到客戶端的電腦,做所謂的『DATA PUSH』。整個計畫為『DATA X』,以 JAVA 這個擁有跨平台特性的程式工具發展,可藉由 internet做鬆散式程式整合系統(Loosely Coupled Application Integration)。這裡,羅先生做了以下的說明。一般而言,程式整合分為兩種模式,Tightly Coupled 和 Loosely Coupled Application Integration:
至於DATA PUSH,也就是依客戶要求,藉網路將客戶所需的資料定期或不定期的傳送到客戶端的電腦中,可應用於股市資訊、金融交易等。目前金融機構之間的交易,大多是透過EDI(Electronic Data Interchange)標準資料交換介面。一般而言,大多是架在加值網路(value-added-network)上,也就是以專屬的網路達成彼此的資料交換。透過此方式,可確保資料交換的速度、準確與安全,但另一方面,昂貴的代價卻也是其缺點之一,光是每筆資料的交換皆需計費而言,一般的使用者(end-user)難免轉而找尋其他的資料交換方式。而目前的趨勢,是透過internet達成資料交換,優點是便宜、方便(internet is everywhere),但為確保資料交換的安全,在加密、保全與資料同步上必須花上相當的功夫去達成。
最後,羅先生提到了他對資訊界未來的展望。他認為,未來的軟體工程將走向元件化(component)。所謂的Component並不一定是一個可以獨立執行的AP,它可以只是一個物件(object),並擁有許多的函式(method)運用。所有的componets再建築在一個內部架構(infrastructure)之上,所有的components藉此架構作彼此的溝通與交流。
舉例說明,假設使用者買一套非常強大的編輯軟體,擁有除了單純的編輯外,還增添許多強大的功能,如試算表、繪圖、各式的樣式庫等。但是,往往一整個package灌下來,要耗上百來MEGA,而真正使用者會去用到的,說不定只是其中的一、兩個功能而已。如果,現在使用者只要去購買最基本編輯功能的package,再依自己的需要添購其他的component,如繪圖功能等,這樣既不會浪費資源,也不會增加使用者的負擔。這就是將程式元件化的好處。
當然,真正的元件化擁有一項更大的優點,就是資源分享。將一個component放在server端,每個使用者有需要呼叫其component時,再經由本地端電腦連到server上去叫用component的功能。現在最流行的CORBA(Common Object Request Broker Architecture)便是以元件觀念築成的架構。所謂CORBA,就是一種client-server的架構:將某種函示集或功能集包成物件形式,並將此物件與IDL所產生的程式碼共同編譯後放在server端。使用者則需一擁有此物件之proxy的程式。每當使用者必須呼叫此物件的某一函式時,此程式會透過proxy連結至server端上的物件,等待此物件在server端上處理完畢後,將結果傳回;使用者會以為此物件在自己的電腦上,其實是透過了網路以遠端執行。而更好的是,整個網路只要有一份物件在server端上就夠了;不管有多少的使用者,都可以使用同一份物件。這樣大大的增加了程式的利用性。羅先生認為,未來每一種client-server architecture 將會走向component architecture。
正如羅先生所言,如今有許多的跡象都可證明軟體工程正逐步走向所謂的『元件化』(component),這種新趨勢與新展望正是我們所需要多加瞭解與學習的,相信它將為軟體工業帶來無窮的新希望。