文/葉宏謨

一個國家的權力如果掌握在少數人手上,必然會發生很多對其他多數人不公不義的事。這個國家的資源也一定不能獲得最好的運用。一個企業的資料如果掌握在少數人手上,這個企業的員工必定無法作出最佳決策,也一定沒有好的執行效率。所以,不論是國家的權力或企業的資料,民主化(Democratization)都是重要的,國家民主化就是公民直選,企業資料民主化就是公民開發(Citizen Development),或用戶自主開發(End User Development, EUD),或自軟體(Self-Software)開發。軟體元件能讓企業用戶自主開發應用程式,隨時隨地獲得工作所需資訊,主管可作出正確的決策,員工可發揮很高的效率。
一、用戶自主開發
企業日常的產銷作業資料,ERP 系統都能提供,但對企業主管而言,他需要從各種角度分析資料,而且這種資料分析的需求通常是突發性的(Ad Hoc),如果企業只有資訊部的工程師會寫程式從 ERP 系統提取資料,企業主管就必須跟他們溝通需求,等他們開規格、寫程式、單元測試(Unit Testing)、系統整合測試(System Integration Testing, SIT),再交付主管測試、使用,可能已經錯過主管作決策的時機,更何況主管在測試程式時,很可能會發現那不是他要的。
用戶自主開發(EUD)讓使用者開發自己想要的應用程式,是企業資料民主化的手段。使用者組裝軟體元件(如 SOA 服務元件)就能開發程式,重要的是知道自己要什麼(What),而不是如何(How)開發。使用者不需具備任何的資訊技術,不懂資料庫也沒關係,因為 SOA 服務元件就像積木般,可以組裝出自己需要的應用程式。自己開發應用程式給自己使用的開發者,就是「公民開發者」(Citizen Developer)[註 1]。
[ 加入 CIO Taiwan 官方 LINE、Facebook 與 LinkedIn,與全球 CIO 同步獲取精華見解 ]
用戶自主開發(EUD)並不是說企業中的每一個員工都能開發應用程式,而是說企業部門中有人可以自行開發,不需要外包應用程式給外面的軟體公司,或已經很忙的資訊部門同仁。企業主管、主管的助理、或主管部門中任何有一點程式基礎的員工都可以是應用程式的開發者,是佈署在企業內部的「前線部署工程師」(Forward Deployed Engineer, FDE),因為他們很容易知道主管要什麼。重點是利用 SOA 服務元件開發應用程式根本碰不到資料庫,對開發程式的使用者來說,資料庫是不存在的,是所謂「無資料庫」(No Database)的開發方法。如果有模板(Template),寫程式從申論題變成填空題;如果有 AI,寫程式就變成用自然語言和 AI 對話,任何人都做得到。現在幾乎所有大學各科系都有程式設計課程,筆者在台灣大學開設以 SOA 服務元件開發應用程式的通識課程,所有科系學生都可以來選修,將來還會開以自然語言叫 AI 開發程式的更加通識的課程。
SOA 服務元件可被任何程式語言叫用,筆者所開的通識課程使用 MIT 的 AI2 語言,分成設計介面(Designer)和組裝積木(Blocks)二部分。MIT 的 AI2 是 K-12 程式語言,也就是從幼稚園到高中都可以學會的程式語言。組裝 SOA 服務元件開發企業級的應用程式如同堆積木般,人人都會做,公民開發者當然也會。以前上課時筆者的任務之一是幫學生找到專題需要的 SOA 服務元件,現在這個任務已經被 AI 取代了;另一個任務是教學生如何寫程式,現在這個任務也被 AI 取代了。唯一沒被 AI 取代的是多年的社會經驗、待人接物的方法、同理心、以及活在世上的價值觀。
二、AI 可協助用戶自主開發各種應用程式
開發應用程式既然是組裝積木,當然就需要知道有哪些積木可用,所以使用者必須會看 SOA 服務元件的文件(Service Doc)。根據自己的需求從上萬個元件找到可以使用的元件有如大海撈針,這就要靠 AI 了。AI 閱讀文件的速度比人類快上千百倍,使用者只要用自然語言詢問 AI,AI 可以瞬間從 SOA 服務元件的文件找到可以叫用的服務元件,使用者只要複製貼上服務元件的關鍵字就可完成程式。AI 甚至可以讓企業主管「即問即答」[註 3],不但能找到服務元件,也能自主寫程式呼叫服務元件,生成能滿足主管資訊需求的報表或圖形,變成主管的公民開發者。
SOA 服務元件建立在組織和管理的本質之上,所以任何規模、任何產業的企業都能適用。管理是一門科學,不論科技和工具如何進步,管理的本質都是一樣的,有一定的道理,是自然而然的,是本來就存在的,只是被冠上各種名稱而已。正如不論醫學如何進步,人體的本質都是一樣的。SOA 服務元件的內容以一般通用的製造業和買賣業命名,但,名可名,非常名,不論是什麼產業什麼組織都可以對應到 NEO 的 SOA 服務元件。例如學校是營運主體(公司)、學生是客戶、老師是員工等等;再例如宮廟是營運主體(公司)、信眾是客戶、廟公和乩童是員工等等。各產業只是應用程式操作介面上的用詞不同而已,SOA 服務元件是通用的。只要教會 AI 認識各產業的用詞,AI 就能開發各種組織的應用程式。
[ 瀏覽葉宏謨所有文章 ]
若是行業比較特殊,則可利用 NEO 的延伸 SOA 服務元件。NEO 的每個延伸服務 API,除了包含各種組織、員工、品項、交易對象等基本欄位外,還有各種其他欄位。例如「萬用 API」和「支援 API」的延伸資料表,除了基本欄位還有100個通用欄位;數十個「額外 API」的延伸資料表,都有16個文字欄位、8個日期欄位、8個整數欄位、和8個小數欄位;還有,員工、客戶、廠商、件號、材料表、製程、資源等多種「輔助 API」,也有文字、日期、整數、小數等延伸欄位。至於延伸單據則有「萬用單」和「支援單」,可自行定義各種需要的單據。延伸單據有狀態欄位,除了新增、查詢、修改、刪除等服務外還有確認、取消確認、結案等服務。延伸資料表沒有狀態欄位,也只有新增、查詢、修改、刪除等服務。延伸資料表和延伸單據不但能用來客製組織需要的各種應用程式,也可以用來開發、經營非組織的個人APP 平台,例如個人健康管理 APP 平台或個人投資理財 APP 平台等。
三、企業需要能快速開發應用程式的 AI 助理
時基競爭(TBC, Time-Based Competition)的觀念出現在1980年代,至今仍然屹立不搖。對企業而言,時間是最重要的競爭因素。企業管理,不論是作決策(Strategic)、調度資源(Tactical)、或執行日常作業(Operational),都需要資料,所以,如何以最快的速度得到所需資料是極為重要的。越高階使用者的資料需求越不確定,若外包所需應用程式給軟體公司,則必須經過顧問(系統分析師)訪談使用者需求、系統設計師開規格、程式設計師寫程式、和交付程式的過程。溝通是最難的,使用者拿到的資料很可能不是他要的,就算是溝通沒問題,資料的時效性也已經過了。
軟體元件化讓應用程式的開發只剩下前端商務流程(Business Process, BP)和用戶介面(UI)的設計,邏輯和資料都已內嵌在 SOA 服務元件中。BP/UI 可以套用各種設計樣式(Design Patterns),填表即可。企業若實施用戶自主開發(EUD),當經營環境有變,使用者需要立即取得某些資料時,可以請 AI 助理馬上寫個程式,組裝現成的 SOA 服務元件即可快速完成程式取得資料。
AI 不但可以根據使用者以自然語言說出的需求找到 SOA 服務元件,也能自動組裝元件生成應用程式。早年在台北中華商場的店家,顧客可以選擇電腦元件,然後到附近逛逛,再回來取電腦完成品。可以自動寫應用程式的 AI,就像可以自動組裝電腦的機器人,可根據使用者的需求,找出元件並組裝成產品。經過了幾十年,把電腦元件換成軟體元件,把中華商場的店家換成 FDE 或「自軟體」開發者 [註 2],有特殊需求的企業用戶和 FDE 或自軟體開發者溝通後,去喝杯咖啡,可能就有軟體可以使用了。
結論
EUD 不但不會減少軟體公司的業務,反而會增加。EUD 讓企業主管可以快速取得資訊系統的資料,這會讓主管產生更進一步的資料需求。例如可隨時查到客戶訂單出貨狀況之後,主管可能會想知道尚未出貨的訂單做到哪一站,於是導入製造執行系統(MES);之後又因生產線回報資料的速度太慢,企業又導入可自動感測資料的裝置(IoT)。這些都需要軟體公司的產品和異質系統資料整合服務,所以軟體公司的業務會因為 EUD 而增加。
水電師傅難找,小毛病 DIY 就能很快解決家裡的水電問題。用戶自主開發(EUD)讓企業主管可以 DIY 應用程式,或透過自己熟識的 FDE 或自軟體開發者,立即滿足主管的資訊需求,不必花時間等待程式設計師為主管開發應用程式。
參考文獻
[註 1] 葉宏謨,低碼程式與公民開發者,CDO 專欄,CIO Taiwan,2022年6月20日。
[註 2] 葉宏謨,自媒體與自軟體,CIO Taiwan,2026年6月7日。
[註 3] 葉宏謨,即問即答 AI 企業助理,CIO Taiwan,2025年10月29日。
(本文授權非營利轉載,請註明出處:CIO Taiwan)













