發行人的話
要成就得先掌握基礎堆疊成果 - IT 紮根非一朝一夕
2016 4月 82
前往目錄
為做好品管,叡揚以 Open Source工具為底,整理及梳理作業程序建構了絕佳的持續整合管理平台,並建構了多年來夢寐以求的變更管理分析工具

3月20 日 下午參加雲門的活動,這是過去未曾有過的體驗,位於淡水的劇場是雲門遭逢大火後,在自己與各方努力下新蓋的劇場,在劇場內可以透過碩大的玻璃帷幕看到外頭蒼翠的林木,場內跟場外連成寬闊視野的美好感受。我並非有藝術氣息會主動去親近藝術的人,這次跟著太太一起欣賞「白水」公演前的排練,以往觀賞雲門舞集是美好的視覺與藝術感受,但參與了雲門這次的排練,深刻明白雲門要求完美演出的精神以及對細節的講究與付出,對雲門及林懷民老師有更深層感受與敬佩。

感受雲門與林懷民的不平凡

用心地教穩穩地「紮」

排演在午後 3 點,雲門的團員們陸續進場並各自認真的暖身拉筋,不一會兒林懷民老師來到舞台前,說明這是雲門的一項新嘗試,是內部的練習,並非是正式演出(非常清楚的定位),接著林老師叫一位團員來練習,看到老師用心地指導每一個細微的動作,包括走位、手、足、眼睛等姿勢與角度以及連續動作的如何貫穿,其中常聽到的就是〝紮〞這個字,老師要求學員用力地將腳步〝紮〞下去,同時也指引團員:「重心移過去,身體姿勢自然帶著過去。」 就這樣陸續對好幾位團員用心的觀察、矯正,並不時以俐落動作示範。過去我認為林老師是一位勇敢為藝術付出並執著奮鬥 40年的了不起的大師,今天在這場排練體驗中更對林老師為細節與完美的講究與親身投入更加感佩,雲門的成功,絕非偶然。
欣賞練習過程,林老師的一些話也讓我感受到很多情境與我們在帶領公司或專案團隊的管理思維有相似之處。

叡揚「紮」根 30 年軟體路

一、軟體系統變更影響分析工具

叡揚團隊每年開發或維護的產品與專案高達上百個,不管開發或維護都是相當困難的一件事,任一需求變更會影響哪些程式,改了某支程式或某個資料庫欄位也需知道會牽動哪些程式,一旦改不完整,就會產生改A錯B的問題。就像前幾天聽到一位筋骨閃到的朋友說,從來沒想過筋骨閃到這麼痛苦,全身不對勁,感覺到人體的許多筋骨都是串聯在一起,但閃到的當下不知如何梳理筋骨才會順暢;系統的變乃是常態,如果沒在上線前充分做好品管,所產生的結果必然不亞於筋骨善閃到的痛,要做好品管就得要有能力做好變更影響分析(Impact Analysis),否則很難確保品質。
為了解決系統變更影響分析,叡揚由根本做起,歷經多年以 Open Source 工具為底,加以整理及梳理作業程序建構了絕佳的持續整合管理平台(Continuous Integration),然後在平台上建構多年來夢寐以求的變更管理分析工具,如上圖。

持續整合品質管理平台

Continuous Integration Platform

可進行軟體開發過程中, 版控(Version Control)、自動建立(Auto Build) 與 自動化測試與程式品質(Auto Testing and Code Quality)這樣的平台是任何開發或維運資訊系統的組織都需要,所以在開放源碼社群(Open Source Software Community)世界中,這群協力開發系統的熱血技術大師們很自然就會投入版控、自動建立等基礎建設,只要稍用心力便可以在社群中找到很多資源,並整合出很好的平台。叡揚最早在開發軟體時只用版控,再藉由 CMMI 導入以強化軟體工程能力之過程中,我們知道需要建構一個更強而有力的管理環境, 整合各種工具來做下列事情:

每天將所有程式碼整合起來(Daily Build)做單元、整合與回歸測試(Unit/Integration Testing)。

做程式碼掃描發掘可能的資安漏洞(Source Code Scanning)

評量程式碼的撰寫品質(Code Quality Analysis)

變更管理分析工具

軟體開發人員最怕的就是系統變更時修改不完全,或改 A 錯 B 導致系統上線出問題。不幸的是目前系統不僅龐大、變更頻繁,如果要靠人依據文件與記憶去分析並找出變更時到底有哪些程式需要修改是非常辛苦且高風險,因此希望透過工具可以協助將系統裡千百個程式相互呼叫之關係,以及資料庫欄位之關聯性建立完整關聯圖,當修改任一程式時有哪些程式被關連到需要注意,或是當有資料庫欄位或表格被修改時又會影響哪些程式,就能清楚的看出。這是一件很難但卻很重要的事,叡揚幾年前由同仁自主啟動並延續研發,目前在Java、C#、VB、SQL 等程式與資料庫語言及ASP.NET 、MVC、Hibernate 等軟體框架已達到實用階段了。

二、 自然語言處理(NLP)與 文字探勘(Text Mining)

最近 Alphago 下圍棋戰勝韓國棋王,再次掀起人工智慧熱潮,這種機器學習(Machine Learning)的技術就如同多年前 iPhone 推出 Si r i 一樣,都是人類設法讓電腦能夠學習與認知。叡揚多年前就有個夢, 希望能夠做出中文的書後索引以及錯詞告知(Spelling Check) ,因而開啟了一段漫長的自然語言處理與文字探勘的研發過程,直到最近技術逐漸成熟, 達到實用階段。在這領域的研究將分為三個層次:


辨識文章中的文字是用何種語言(Language Detection), 將文章中的詞逐一斷詞 (Tokenization),判斷詞性並標記 (Part-of-Speech Tagging),最後判別這個詞是屬於「人-事- 時- 地- 組織等」中的哪一種。


抽取文章中的專有名詞,將文章自動分類以及自動做摘要。



用上述技術來建構語意網(Semantic Web),具語意分析能力的搜尋引擎以及自動客服回覆。

這些研究看似很難且無法立即應用,然目前在特定領域已具實用性,如:

運用在台北市1999 反映的意見做自動分文,可省掉不少分文的人力且提高分文的準確率,提升市民服務品質的具體效益,目前也將此技術用於公文的自動分文。

網路社群、電子媒體傳播與聚眾能力快且強,所以針對新聞輿情、社群媒體、客訴內容做情緒分析,提前因應防範問題的擴大就顯得更為重要。

三、企業協同社群平台結合即時通訊

在網路上不管是社交的 FB 或 Uber 都是藉由軟體平台整合既有資源的商業模式,並創造出新的共享經濟模式,或提供誘因促成協作解題的InnoCentive 平台等所產生的巨大效力,也帶動企業投入建構內部協作平台,讓企業內本具多樣性角色的人由不同角度激盪解題,促成創新並累積過程中的對話足跡。

叡揚於 2003年開始以服務導向架構(Service-Oriented Architecture,SOA)開發的 VitalsESP 是最具體的呈現,13 年來只要有更好的想法可增加產品功效的功能或模組,研發團隊就會設法抽筋換骨重構系統, 如:2008年加入 SLATE(Social、Link、Author、Tag、Extension )等 Enterprise 2.0 的功能,後又以Solr 取代之前Lucene 搜尋引擎並結合企業內嚴謹的權限控管,2015 年加入呼叫@mention 等功能,目前我們更進一步開發跟 Line 使用方法一樣的企業內使用的即時通訊(Enterprise Instant Messaging)並跟 Vitals ESP 間以 API做整合,如此一來將更大大提高企業協同社群功效,透過行動裝置可順手將談完的訊息留存、分類、搜尋再利用,讓社群創意發揮同時可完成組織知識資產的留存與管控:

由根紮起,掌握技術讓我們可以具備將這些核心技術延伸並組合的彈性,過程中也讓人員養成技術與掌握這些技術的能力,只是這些都不是一朝一夕,需長年投入,是十年磨一劍的功夫,過程雖長且苦,但卻也值得,因為這樣我們擁有掌控未來發展的能力。