Monday, March 23, 2020

關於Robotics Process Automation (RPA) 的介紹和想法

傳統上,在機構內的系統要實現流程化或自動化,一般需要透過流程平台對接各個業務平台,而各業務平台亦需要提供API 接口供對接,實作做法在早前需求分析入門系列的「流程化」及「自動化」篇章亦有介紹過。

要比較有效地進行這種形式的系統對接,首先要考慮業務平台本身是否容易建立接口,這會影響項目的成本。一些系統本身設計如較合乎SOA原則,可復用的模塊較多,一般由說也較容易建API,相反另一些系統把 GUI 跟背後邏輯 closely coupled,則比較難建API,或者建立後的後續維護成本也高。

另一個考慮的因素則是系統本身是自家開發還是由外部廠商購置,這亦牽涉成本。鑑於接口可能只適合個別機構內部情況,廠商的產品一般也並不願意做太多非原廠的接口。

面對以上的情況,有些機構會改為考慮使用RPA 工具代替系統對接。RPA的原理是透過紀錄用戶在介面上的動作,然後在介面上直接重覆進行這些動作。基於GUI是業務系統本身已經提供,而且過程亦是直接紀錄用戶的動作,因此可用性不成問題,動作sequence 的可信性也高。如果小時候打機有用過「按鍵精靈」的話,對RPA 就應該不會陌生,一般來說就算不懂programming,只要有邏輯思維亦應能建起較簡單的應用。

當然,RPA的開發,包括紀錄動作、測試、除錯等,還是有一定的成本的。在機構的層面,我們並不會簡單紀錄一套動作然後只重播一套動作,更加會考慮在執行之中加入邏輯,從而能夠復用整套workflow sequence,處理多項同一類別而相類似的工序。

以目前RPA的發展,這些Robots 能夠做到的工作也是頗多的,基本上只要source data 本身是 standardize或者有既定format,RPA 能夠在當中抽取到需要的數據進行邏輯判斷,已經可以讓Robots去做這些工作。當然從成本角度,我們會先選擇重覆性高的工序改為自動化,但可以說在可見的將來,基本上不會再需要有人去處理重覆性或只需要簡單邏輯判斷的工序。

這裏也要提一下RPA 在scalability 方面的優勢,特別是在偶發性出現的大規模處理需求時,RPA 的orchestrator 有條件調用更多機械人同步處理不同的需求。基於工序流程化及重覆,即時調用的機械人按照pre-programmed 的邏輯即可完成工作,對比人工處理就有更大優勢了。

現時RPA 發展更趨向於加入學習模式,就是通常與RPA 合併在一起談論的Machine Learning、AI、Big Data 等,這當然會是科技發展的趨勢,機械人會更多的代替進行重覆性的工序,而我們則更加會轉移向需要更多精細思考,或者靈活隨機而變的工作。但正如早前在「自動化」篇章中提到,進行「自動化」除了考慮工作本身正常運作,更要考慮exceptional handling。

與此同時,在思維上也千萬別以為系統自動化後就與人無關,RPA還是需要有人負責維護管理,並且檢視成效的(正如團隊內有不同人工作,但主管也承擔著責任一般)。有這樣的思維RPA才可以持續發展,真正成為幫助人的工具而不是制造新問題的負累。

2 comments:

  1. 公司做過一個 RPA 項目,沒有AI,只想把一些人做又重複既決定 automate。經驗上要寫一個 process engine with decision 唔難,最難反而係要由一班 operators 身上 digitalize 個 SOP 出黎,無Doc,所有 knowledge 都係個人腦入面。過程上亦都令 business 反思現有做法的好壞和改進地方。

    ReplyDelete
  2. 通常要做RPA,最好還是有一個RPA CoE (人不用太多),或者起碼有專做流程standardize 的部門。由各自部門牽頭做會出現很多silo 問題,例如design參差不齊,經驗不能與其它項目共享,後續也很難維護或優化。

    ReplyDelete