2014年7月23日 星期三

政府機關敏捷案例:荷蘭鹿特丹港HaMIS系統

徐柏峰
資料來源:鹿特丹港官網
        歐洲第1大港-鹿特丹(Port of Rotterdam),用敏捷方法開發出的HaMIS港務管理系統,獲得TÜViT的5顆星品質認證。

1. 專案背景

        位於萊茵河口的荷蘭鹿特丹港,從13世紀就開始發展,向來有歐洲門戶(Gate to Europe)的美譽。港區腹地超過100平方公里,貨物吞吐量達4.4億噸,每年造訪的海輪(Sea-going Ships)超過34,000艘、河輪(Inland Vessels)超過1萬艘,造就了鹿特丹穩坐歐洲第一大港的地位。
歐洲3大港吞吐量
資料來源:Port of Rotterdam, Port Statistics 2013
     
        鹿特丹港的最大特點,就是儲、運、銷一體化的流程。來自各地的貨物,在港區加值加工後,可以方便地透過陸、海、河、空等多種運輸路線,分銷到歐洲各地。根據荷蘭官方的統計,如果把交通業、工業和零售業全部算起來,在鹿特丹港就業的人數超過92千人,經濟規模超過120億歐元,而且有逐年增加的趨勢。[1] 近年來,鹿特丹港擴建新港Maasvlakte的計畫進入第2期,打算利用1000公頃延伸空間,容納運載貨櫃、原油、礦石和煤炭的新一代的超級貨輪(Mega Ship)。為了保持鹿特丹港在全世界的競爭優勢,當局除了每年投入5億歐元,進行建設基礎設施以外,也邀請阿曼港當局(Port of Oman)對鹿特丹進行投資,並在巴西的新港設立辦事處,透過港口之間的合縱連橫,創造彼此的商機。

2. 導入過程

        經營港口就像是租賃業,對鹿特丹港來說,每年收益主要來源有二:一是船東支付的入港費(Harbor Dues)、二是港區基礎設施的出租費。要因應蒸蒸日上的業務量,需要跟得上時代的數位化流程。對此,鹿特丹港當局的資訊長Lourens Visser,提出了一系列改造鹿特丹港資訊計畫,當中最重要的,就是要開發出一套符合鹿特丹港營運流程的「港口管控資訊系統」(Harbor Master Management and Information System, HaMIS)[2]
        鹿特丹港既有的資訊系統已經用了19年,功能早就不敷使用。在新系統中,需要讓港務同仁有效率地執行船隻交通管理、規劃、危險物品偵測、意外事件回應和派遣巡邏船隻等日常業務。[3] Lourens Visser參考市面上的20多個套裝軟體後發現,鹿特丹港的業務流程非常複雜,沒有現成的軟體可以應付,就算委外開發,廠商短期內也搞不懂港務的領域知識:「我們無法讓IBMCapgemini聽懂需求,因此專案註定會失敗。」面臨這樣的難題,Lourens Visser決定,用敏捷方法開發鹿特丹港專屬的HaMIS系統,他的做法是:[4]

  • 採用Scrum Framework

        一開始,HaMIS專案先導入IBM的「統一軟體開發流程」(Ration United Process, RUP),後來因為RUP的流程比較複雜,決定改用Scrum Framework[5]
  •  成立跨職能的團隊

        從鹿特丹港的資訊部門中,挑出35個人編成跨職能的開發團隊,再根據開發範圍不同,編成3個小隊,各有各的需求窗口(Product Owner, PO),但共用同一組程式庫(Code Base)
  •  採用集中辦公機制

        由於團隊成員本來就是自家人,對於港務工作已經有相當程度的了解。為了提升溝通品質,開發團隊和業務部門在同一個地方辦公(Co-Located),團隊開發過程中只要遇到問題,隨時可以找到相關的同事討論。
  •  持續執行程式審驗

        為了確保軟體品質,委託荷蘭知名的資訊顧問公司Software Improvement Group(簡稱SIG),負責審驗程式碼的工作。在開發期間,團隊每周五把程式碼送往SIG檢查,審驗成果在下周二就會送回來,方便團隊在每個星期三進行討論和規劃。
  •  追求符合品質標準

        除了成果審驗以外,HaMIS專案也向德國的第3方測試認證機構 TüVIT申請軟體品質認證,並委託SIG協助建立使用情境,並確保專案產出的文件和執行的成果,符合TüVIT的檢驗標準。[6]
  • 鼓勵團隊追求創新

        專案難免會遇到技術瓶頸,必須不斷創新,才能突破障礙,而實際投入開發工作的開發人員,就是技術創新的原動力。因此,HaMIS專案每季舉辦1ShipIt Day活動。允許開發同仁,在ShipIt Day24小時當中,放下手邊的工作,自由決定要開發什麼程式,這個鼓勵創新的ShipIt Day,遊戲規則只有簡單的3句話:[7]

想到的點子或主題,多多少少要和進行中的專案有關.
同仁在開工前,至少要對2個同事推銷過想法
活動結束時,不管有沒有實際成果,都要向團隊所有同仁展示


HaMIS專案團隊ShipIt Day活動方式
時間
活動內容
2周前
向同仁說明開發的想法
當天前
寫下「出貨訂單」(Shipment Orders),描述開發願景,組成團隊
當天下午2
啟動ShipIt Day活動
當天下午6~7
吃晚飯
熬夜時段
如果需要,可以繼續工作
隔天上午10
主辦人提醒各組抓取成果畫面,或把成果拍成影片
隔天下午3
停止開發,每組向同仁展示成果
隔天下午330
全體同仁投票選出ShipIt活動冠軍
隔天下午4~5
活動結束,同仁聊天喝飲料慶祝

3. 執行成效
        在Visser帶領下,鹿特丹港的HaMIS系統主要功能在20114月開始上線,開始針對港區的船隻動態,提供即時的視覺訊息。[8]

 HaMIS系統參考畫面

         201110月間,HaMIS專案得到TÜViT軟體產品認證最高的5顆星評價,成為史上第2個獲得這項殊榮的組織。到了2013年底,HaMIS又擴充了偵測船隻(Inspecting Ships)的功能,讓港務相關同仁可以在系統上,掌握危險性貨櫃(Dangerous Cargo)的位置以及載運內容。[9]
        針對這個成功的案例,Visser自己覺得,最重要的關鍵是用自己人開發(In-House),來提升業務同仁和開發人員之間的溝通學習效能,而在鹿特丹港自己發表的新聞稿(Press Release)上,當局則是把功勞歸給敏捷開發,因為這種工作方式,「讓專案有機會應用先進的知識來開發,並同時交付比較好的軟體產品。」


[1] Port of Rotterdam, Port Statistics 2013, p 17.
[2] Ben Linders, “Agile Adoption in the Public Sector: FBI and Port of Rotterdam.” See http://www.infoq.com/news/2013/02/agile-public-sector
[4] Mark Chillingworth, “CIO Lourens Visser keeps Port of Rotterdam's systems ship-shape.” See http://www.cio.co.uk/profile/lourens-visser/28-11-2012/?page=1
[5] RUPRational Software提出的反覆式軟體開發流程,把專案生命週期分為InceptionElaborationConstructionTransition4大階段。2003Rational SoftwareIBM併入旗下。
[6] TüVIT的德文名是TÜV Informationstechnik GmbH,是非常具有公信力的資訊產品、系統、流程和基礎設設的授證單位。TüVIT網址請參考https://www.tuvit.de/en/index.htm
[8] Port of Rotterdam Authority, Five Stars for Port Rotterdam, see http://www.portofrotterdam.com/en/News/pressreleases-news/Pages/stars-port-rotterdam.aspx