Saturday, February 29, 2020

Open API 應用

今日本來計劃寫如何deal with 難搞的項目stakeholders,不過有個topic 與Open API 有關,心想不如先寫一下。

衞生防護中心近日公佈了一份599C文件,全名為根據香港法例第599C章正在接受強制檢疫人士所居住的大廈名單,是一份193頁的PDF 形式文件,總數有接近六千橦大廈。

看見這份文件,正常人首先最關心當然是自己和親友所住大廈有沒有人隔離,這也容易搜尋,但如果想再看看所住區域附近大廈的情況,就真的有點繁複。幸好網上有人很快在原始資料上加入座標位置,用Google Map 把所有大廈資料import進去,立即一目了然。

類似以上的例子其實也不少,最近在網上就有不少有心人,做了很多數據整理及不同形式展示數據的模型,令大眾更容易知道疫情發展及各個個案的群組關連性,都是想告訴大家,疫情還未結束,勤洗手、戴口罩和減少社交活動的重要性。其實這種由政府或公營機構提供平台及數據,再由社會各界用以創新使用,正是外國正研究推廣的政府2.0理念的一部份。

最近在Amazon 買了一本書,名叫「未來地圖」,當中作者Tim O′Reilly 就很推崇政府2.0這個理念,亦參與其中。政府2.0 強調的是開放互動,通過信息技術改善政府服務,政府將從較為封閉的集中管理的行政機關,演變成作為平台和創新生態賦能者,並與市場及大眾協作以產生更多以用戶為重心的服務,更多介紹可以參看這裏

當然在香港目前來看這還是比較遙遠的,就以上面599C文件為例子,衞生防護中心提供的是一份PDF 文件,從確保資料不容易被修改的角度,PDF當然是一個好選擇,但從使用角度,則大大不足,甚至可以說PDF 是直接讓本來已是數字化的數據變回不易取用的形式。如果可以用 Open API 取代,讓開發者調用接口使用這些數據,則可大大方便用來作front-end 各種數據分析及展示用途。

事實上政府本來就儲有大量數據,當中亦有不少已是公開數據,從差餉物業估價署,統計署,人口普查等都有不少可用資料,但要取得這些資料作進一步分析整理用途,則需要花大量時間抽取這些數據。有些用Excel 還好,辛苦點還可以用macro,PDF 就真的很麻煩。

如果要各個政府部門在各自domain 開發API,恐怕也是費時失事。首先是與私人機構相類似的情況,各個部門現有都是專門做各個業務/服務的人員,並不是每一個部門都有懂得做 Open API 的人員,當然也可以招聘,但我們也未必希望政府部門搶去太多市場上的人才。

個人認為較理想做法,反而是私營機構主動向政府提出開發Open API,甚至可考慮透過API management platform,正式把這些API 定義為產品而非只是提供渠道,務求善用這些數據資源,釋放更大潛能。事實上,政府內有不少數據對象為企業而非所有人,例如企業查冊、物業查冊等,Open API 可讓獲取這些數據的過程更為方便,即使API作為產品銷售,相信亦會有企業客戶願意購買使用,這對整體提升效率將會有大量幫助。

Thursday, February 27, 2020

軟件介紹 - Keep Trainer

本週介紹的軟件,並不是辦公室裏會用的,它是一個Fitness App,名叫「Keep Trainer」。做運動強身健體,協助提升思考能力,勉強來說也是提升生產力工具吧(有點牽強)


筆者是在上年十月開始使用這個App ,已經用了好一段時間,也完成了一些 program。特別推介的原因,是覺得這個App 真的做得很有心,亦對Keep Fit 保持肌肉很有幫助。

首先這個App 有大量workout exercise,官方說有400+,大部份是可以在家訓練,個別需要啞鈴或foam roller配合,每個都有video 教點做。App 會將這些exercise 整合成有用的training program,例如muscle growth 的program,每日會rotate 做Chest、Back、Abs、Legs 等,也有另外一些專做Abs 或Fat burning 的program,也有HIIT,有很多選擇,training program 本身亦有難度之分,適合不同程度人仕。

第一次開App 時候,會default 送一個數量的coins,足夠啟動一次4-week program,原則上只要有按program Keep 住做,每次做完都會有些coins,過完第一次program 應該就會儲夠開下一個program,就可以一直免費使用,也是這個原因個 App 叫做「Keep」吧。

尤其是現在疫症當前,有些專家也建議暫時不要前往Gym Room,使用這個「Keep」就可以繼續保持體格了。

Wednesday, February 26, 2020

續談「信息化」(「流程化」篇)

上週的Blog 談了「信息化」中最初階的「無紙化」,本週續談另一個重要過程「流程化」,相對是複雜一點但也可歸類為初階範疇。

上篇提到「信息化」可以理解為把數據轉移到數字信息處理的一個過程,「無紙化」用電子表格是第一步在收集需求的時候已經成為電子數據,「流程化」則協助將數據轉送到不同系統上應用,情況就像是空氣進入肺部,經由血液送到不同器官上使用。

在資訊科技的發展歷史洪流,今時今日我們所使用的系統一般都是按其domain 而建立的。每個系統有其特定用途,以方便維護及升級時不影響其它系統,少有一個系統可全面完成所有工作,最多只會是一個portal作為front-end UI,背後建立接口到後台各大系統上。有趣的是,操作的人也與系統建立密不可分的關係,稍具一定規模的機構內,少有人可以單獨完成所有任務。在這樣的背景,多數系統也會有屬於自己的數據,而他們當中會有共用的數據,「流程化」則有系統地協助進行打通系統通道的任務。

一般我們會需要使用流程,是在機構內一些特定的工作中,互相之間有其關連性及依賴性,即某一個流程節點是基於另一個節點的output,亦作為下一步的input。例如一個申請入會的流程,牽涉的節點可能包括:
填寫資料 -》提交証明文件 -》提交申請 -》內部審批 -》通過申請/拒絕申請
當中填寫資料可能是一個前台Web 或App的電子表格,申請的資料會暫時紀錄在一個流程平台,連接到不同審批rule engine 系統做內部審批,通過或拒絕申請則經由notification server 發送 SMS/Email 通知申請人,最後成功申請的個人資料則儲存紀錄在CRM平台的客戶資料模塊上。

在以上例子中,可以看到客戶申請入會的資料需要流轉到不同系統,如果每次進入一個系統都要輸入一些重覆的資料,肯定費時也容易出錯。透過「流程化」,我們可以做到系統信息在有系統之間互通,亦可以在流程當中加入邏輯控制。例如特定情況走某些或不走某些流程節點,這樣做更有助standardize 整個流程會出現的各種情況,就不需要靠人腦去死記,也大大減低出錯機會。另外,流程一般也會配上當前狀態及Action Party(即當前需要跟進的團隊),這樣流程的狀態就更一目了然了。

本週需求分析系列將會更詳細寫如何有效收集流程需求。

Monday, February 24, 2020

關於Open API的想法

近年各行各業也大推Open API,香港各大銀行在金管局牽頭下也陸續推出,提供更多service 供外部開發者使用。筆者很贊成Open API的想法,唯對目前的實施方法和成果並不太樂觀。

傳統銀行業的內部系統通常以業務作為單位,存款貸款理財投資各有獨立系統支持,本身就算內部各系統互通訊息都需要獨立建接口,Interface 也隨個別系統而定,少有統一制式,多數也只是做到多渠道共享同一接口,或用ESB將接口盡量統一。

以這樣的背景推進Open API,可以預期的是能夠開放的API將受限於產品平台現有能支援的接口,結果很大機會是在現有網銀及APP外新增多一個渠道。另外由於每個接口需要重新思考access control及authentication,又要照顧performance,初期只支持一些查詢功能,或提供static information,實際用途不大,成本效益就更低了。

筆者認為要推行Open API,機構內部亦需要很大程度提升現有各大平台的API 管理及服務範圍,甚至應更進一步推進升級為以Web Services形式提供服務,以更便於與外部開發者共享同一套API。

以Amazon 為例 (當然這是最好的例子),今天我們都知道Amazon 內部系統通訊全部都經由Web Services進行,這全是基於Amazon 在很多年前開始推行的改變。無論任何一個業務組,其轄下功能和資料都必須提供Web Services共享,業務之間只能通過Web Services交流,不得經由其它途徑,不容許共享內存,更不容許後門程式。各業務組亦需要負責為功能寫documentation,目標就是日後能直接將服務公開,而服務亦終於在2006年以Amazon Web Services (AWS)為名推出市場,當中不少服務容許介面操作同時亦容許API調用,對開發人員極為方便。

回望今天銀行業以及很多的大型機構,內部系統按業務需要而採購,系統多以照顧業務本身運作流程而設,本身並不太考慮對外對接,因此業務需求亦多以滿足介面操作為先,只有在需要時考慮提供調用接口,要提供 Open API 就更為不便。

要像Amazon 般全面更換成Web Services的話,牽涉到可能要重寫大部份系統,成本基本上沒可能做得到合理,較為合理的方法反而是建立API management layer,以不大幅影響後台產品系統架構為前提,盡量開發更多接口,集中管理。以這種思路發展,API management 亦可自成獨立系統,除處理像ESB的功能,亦管理authentication,處理分流等。API management platform也可以有lifecycle management,容許backward compatible,在多渠道多產品的環境就更為適合了。

面向未來,在 Bank 4.0 的背景,銀行應更為走向發展作為基建,提供更方便的途徑供各行各業及個人使用,Open API 絕對是在走對的一步。

Thursday, February 20, 2020

辦公室軟件介紹 - 即時通訊軟件

鑑於近日疫情持續,不少公司也推行Home Office,或至少要求員工減少見面機會,對於繼續進行項目會議確是一大挑戰。

從數年前開始,筆者習慣了項目會議一定要盡量見面開,尤其是一些 difficult conversation。另一個原因是在很多情況下,公司基礎infra 不夠好,開個teleconf 要逐個打電話的話,打電話也可能用了十分鐘,效率極低,就不如要大家都到會議室了。

當然也有例外的情況,如果公司的infrastructure做得好,有conference bridge 用,就會用bridge 取代,這個可以減少要book 房的dependency。更重要的分別是,用conference bridge 大家仍是盡自己責任去參與會議,逐個打電話則像是主席的責任要拉大家去開會,這個分別很小,但在項目管理上是一個頗大的差別。

關於 conference bridge,個人特別推介的是Microsoft 的 「Skype for Business」(最近被整合為「Teams」)。軟件本身支持文字通訊,語音通話,視頻通話,進行會議時則可以多人對話,可以用PC/App軟件接入,沒有安裝軟件的話用web URL亦可,亦支援多國家用電話撥號接入,極之方便。而用desktop軟件接入的話又可以分享desktop,會議要投影PPT就很有用,當然亦因為它作為Microsoft 產品,與Microsoft 的Outlook 行事曆和通訊錄無縫連接,約會議直接可以Create 一個Skype Conference,絕對是辦公室會議軟件的首選。個別version 甚至支援用軟件撥號(這個本來就是Skype的功能),有需要時連跨國長途電話也能撥號了。

當然去得到如此有用,價錢也應該頗貴吧,目前除了在幾家跨國巨企見到有購置之外,本土公司基本上未見到有使用,確實有點可惜。

最近在疫情之下,發現有些本來要收費的軟件竟然免費提供使用。最近流行使用的是「騰訊會議」,這個軟件也有不少Skype for Business 的功能,包括容許隨需建立會議,軟件接入,撥號接入,有安裝微信的話用小程序進入亦可,內地則支援撥號接入,可以算是light-weight 版的Skype for Business。最大的分別應該是沒有連結Outlook 行事曆吧,但這個相對來說就並不太重要了。

另一個最近經常聽人使用的則是「Zoom」,聽說有不少教師也在用來授課,「Zoom」在分享desktop 上的功能較為完善,目前也是免費使用的。「Zoom」也有提供手機版本,不過如果要看desktop而不是PPT的話,手機應該會看得頗辛苦吧。

希望在疫情過後這些軟件仍然保留一段時間提供免費服務,如果收費不太高的話,應該會有不少公司選用吧。

Wednesday, February 19, 2020

淺談「信息化」(「無紙化」篇)

「信息化」轉型這個不是什麼新詞彙,在資訊科技界也談了不知多少年了,現在基本上甚至已被「數字化」取代,但坦白的說,今時今日我們仍然還在這個旅程之上,不少行業仍然處於「信息化」的起步階段。

「信息化」可以簡略理解為把數據轉移到數字信息處理的一個過程,自從人類歷史出現第一台計算機,第一個數據庫,我們初次踏上了「信息化」的旅程。業務上的數據,包括客戶,產品,交易,對賬,規則,流程,各式資料都可以錄入到數據庫中,然後數據可以用來分析,造成有用的資訊,數據可以流通,經流程化可以在各個流程節點應用。

而今時今日較新的技術,包括人工智能、機器學習、大數據、雲計算、物聯網,更多現實生活中的事物都可以實時自動化轉變成數據儲存,圖像、影像、聲音、free format文字,同樣可以流通,分析,幫助我們改善生活,我們開始從「信息化」過渡走入「數字化」。

在這麼多的新技術出現的背景下,理論上資訊應更加透明,我們亦應能更依賴數據作出決策,但在現實生活,我們看到或感受到的卻是另一回事,基礎技術是發展得很快,但應用卻是大幅落後,個別行業更可以說是停留了在原始社會的階段。

對這些仍然留在原始社會的機構(包括政府)來說,「無紙化」和「流程化」應是踏入「信息化」的初階第一步,下面先說「無紙化」。

早些年筆者每次到康文署申請活動,都有一個很不快的經歷,就是申請活動必須要填紙張表格,尤其是當一次申請不成功要重新申請時,又要把整張表格重新再填,而我知道康文署內部也有系統紀錄申請,即是說,填表格時辛苦,把資料輸入系統更辛苦。

其實要將表格電子化,可以說得上已經是最低的要求了,網頁填表沒有甚麼很貴的技術含量,從項目角度來說也可以說是入門級,即使現在已經有OCR技術,準確度也很高,但也總還要有人去做 sample check,把這些都計算成本後,就真想不到有甚麼理由不去電子化。

不過康文署也只是其中一個較常見的例子,其它政府部門或大型機構也有不少這些情況,要讓香港走向智慧城市,其實每個機構,每個部門,每個崗位都應盡責任,檢視自己管轄範圍內的各項流程,而第一步就是做到無紙化,由源頭的原始數據開始就使用軟件收集。領導層級的責任,則是加入KPI, 每年量度剩餘仍需要用紙的流程,務求逐年減少,最終減至零使用。

這個其實也是應用「小改變 大改善」法則,當愈來愈多的資料「信息化」,信息更易分析流通,整體效率自然有望提升,但要真正見得到成果,需要第二步「流程化」配合,另一篇blog 將會進一步談。

Monday, February 17, 2020

關於雲端運算 (Cloud Computing) 的想法

自小就聽「書到用時方恨少」一句說話,基建也是一樣,到真正有需要時,就會發現基建有多重要,也可看到現有基建有多不濟(巴菲特:水退就知誰在裸泳)。

就以口罩為例,自從疫情開始,世界各地也出現口罩搶購潮,香港也毫不例外,甚至出現更不理性的狀況。

最初的幾日,各大商店一宣佈口罩開賣,那怕是只有一千幾百個,也吸引大批市民排隊。群眾排隊買口罩,不但對防疫沒有幫助,更加劇群眾接觸互相傳染的機會。沒多久,不少網購平台也改善過來,開發提供網上訂購,即使老年人未能學會使用,至少後生一輩不用一齊去排隊,也有助減少市民聚集。

不過網上平台也遇到不少問題,其中最大一個就是短時間內流量太多導致server 負荷過重,即使較大的平台如HKTVMall 及屈臣氏也不能幸免,更莫說一些有心人仕自建平台銷售,其server 更是癱瘓得慘不忍睹,如何解決短時間流量大幅增加,個人認為「雲端運算」是其中最好的一個辦法。

以網購平台為例,一般網購平台在建立業務時,都會按平均或高峰時間所需用量,估算購置的硬件,最簡單是 CPU 及 storage,以配合業務需要。面對疫情最大的困難是,開賣口罩的數十分鐘內(幾分鐘?),會出現突然巨額膨脹的伺服器訪問需求,導致負荷過重不能處理。當然簡單一句話,添置硬件不就解決問題?但網購平台平日的生意一般也不到這個需要,總不成為了一個星期幾十分鐘的業務而大額添置硬件,「雲端運算」正是為解決這個問題而出現。

所謂「雲端運算」,簡單來說就是把大量計算機器放在一齊,由雲端運算服務公司提供基建,整合這些機器的computing power 及storage,目標達致資源共享,隨需提供。Amazon AWS 以"Elasticity" 一字來形容這個能力。其最大的作用,在於公司可以在業務有突如其來的需要時,立即配置足夠的資源支持業務,毋須添置硬件,提升時無縫交接。

用「雲」的概念,意義是公司不需要在開展業務估算需求而購置硬件,因為原則上是可以在實則有需要時加添,費用也是按實則用量而定,這對很多start-up 公司是一大優勢,因為start-up 一開始要估算業務量也有一定困難,而且用「雲」亦減省了一次性投資(也所謂入場最低消費)。

不過用「雲」也有它的缺點,首先是價錢方面。雖然「雲」的計費一般也比較 transparent, 也是按用量而定,但實際計算下來,平均CPU 及storage 也會比自家添置貴,尤其業務相對穩定易估算的情況下,現有方案應該會較平。而且「雲」雖然不是真的放在雲上,也跟網絡供應商有實際的距離,所以也要考慮應用地點和網速,選擇server zone 時也要考慮應用地點,如果有大部份用量是local 的話也真的要想清楚是否用「雲」。

不過整體來說「雲」的優點還是比缺點多,也是長遠來說比較環保的host server 方法。按現時不少公司使用實體硬件的做法,為免經常出現瓶頸,實際上大部份的計算資源也是閒置浪費的,如果都是要用同等分量的資源去製造這些硬件,選擇「雲」則可以把閒置資源調配給其它有需要的地方,達致economies of scale, 減少浪費,網上資源由雲服務公司提供就似乎更加合理。最近更得知Amazon 已經在歐洲試行將其infrastructure 100%改用再生能源,這更加是對環保一大好消息。另外「雲」本來就包含了HA的理念,也可以支援定時備份,對數據就更有保障。

目前除了Amazon 的AWS 有先發優勢,在2006 年已經開始「雲」業務,其它巨頭也開始投入大量資源搶佔板塊,例如Google, Microsoft, 連一向做開硬件的IBM 也投入,中國方面也有Alibaba, Huawei 等加入戰團,服務除了是最直接的web hosting,其它雲端運算還包括Data analytics, AI, Machine Learning, Robotics, IoT 等,Client side 也包括virtual PC等。

可以說「雲」會是未來一段頗長日子的一大趨勢,試想像如果現時IBM, HP或Dell 的辦公室硬件服務,都將由「雲 」提供取代,這是多麼大的一個機遇。

現時AWS 和Google Cloud都有提供網上課程,讓有興趣的IT 同行免費學習其平台功能,AWS還有一年免費使用基礎服務的計劃可以試玩,絕對值得花時間去深入鑽研。