現在還值得為企業開發一套自家軟件嗎?

在現今的商業世界,軟件是企業營運中不可缺少的部份。要決定您的企業是否購買現成的軟件,還是自行開發一套軟件,這可能是一項艱鉅的決定:自行開發一套軟件相對昂貴,但現成的軟件卻缺乏彈性。但為什麼還會有企業自行開發軟件?以下是一些現成軟件和自家軟件的七種比較,應能為您帶來一點啟示。


現成軟件與自家軟件的七種比較

在現今的商業世界,軟件是企業營運中不可缺少的部份。要決定您的企業是否購買現成的軟件,還是自行開發一套軟件,這可能是一項艱鉅的決定:自行開發一套軟件相對昂貴,但現成的軟件卻缺乏彈性。但為什麼還會有企業自行開發軟件?以下是一些現成軟件和自家軟件的七種比較,應能為您帶來一點啟示:

1.適合性: 為企業開發一套軟件最重要的好處,是它由開發人員根據您的需要和要求度身定製,以便滿足您的業務需求。一般企業從軟件供應商那裡購買現成軟件之後,不久發現該軟件根本不太適合他們的業務,這種情況屢見不鮮。企業人員多為了不浪費資源,而強行使用。而使用企業自行開發的軟件,就可以在軟件開發時確保該軟件能夠適合您的業務需求


2. 可擴展性: 自家軟件比現成的軟件包更具可擴展性。在自家軟件方面,開發人員會根據企業的基礎運營、商務邏輯來作設計軟件。因此即使企業業務規模的擴大,開發人員將可隨之持續維護及擴展軟件的功能。使用現成的軟件的話,企業通常會遇到軟件的維護問題,或者是因業務範圍的改變,部份業務需求未受軟件涵蓋,結果要加購另一套現成軟件,以作補救。所以自行開發的商業軟件能夠滿足您的企業需求之餘,同時允許您的業務持續增長,而不受軟件限制


3. 安全性: 自行開發的軟件可以幫助保護您的企業免受外部威脅。針對企業軟件的黑客,大多數都是利用常用軟件中已知軟件漏洞來進行攻擊。而對於黑客來說, 自行開發的企業軟件就不是一個太有吸引力的目標,因為它需要相當多的時間來了解系統運作,而軟件開發人員亦能專為企業來制定黑客防護工作,比起現成軟件更為安全


4. 企業生產力: 能否使用適當的軟件,對工作效率可以產生極大影響。自行開發的企業軟件可以根據企業的運行模式,簡化使用操作,從而提高企業的生產力。而且開發人員可以根據軟件內的數據,專門制定您所需要的工作分析報告,工作效能就能夠以圖像、數字等方式展示,讓企業的管理團隊清楚了解公司的運作。這樣你就可以更有效率為企業制定發展方向

巿面上幾乎難有多個現成的軟件能夠簡單地將數據共享,而由於現成軟件並非為您的企業營運度身定制的,可能會導致員工因要適應軟件運作而使整體工作效率下降。若要分析工作數據,他們往往需要從不同的軟件得到資料再進行整合分析,這樣比較容易出現錯誤,無法有效地完成工作。所以自行開發的企業軟件就能有效避免這個問題,皆因它是可以專門配合您的企業營運。


5. 維護效率: 自行開發的企業軟件可以根據需要進行合適的維護。使用現成的軟件,您的企業只是使用該軟件的數千甚至上萬人中的一員,並且只有有限的開發團隊可以支援軟件修復,企業反而會受到軟件開發一方的制肘。如果他們決定不再維護軟件,您的業務將有可能馬上需要更換軟件。這對您的企業來說可能會出現額外開支之餘,更會有機會出現軟件無法正常運用的空窗期。毫無疑問,自行開發的企業軟件在這方面有很大優勢,軟件開發公司理應提供一對一的維護服務,這樣你的企業就可以確定軟件能夠有合適而及時的維護。


6. 額外成本: 自行開發的企業軟件可幫助您節省硬件購置成本。現成的軟件通常有特定硬件要求,這意味著您可能需要購買額外的硬件,以便有效在企業內運行。自行開發的企業軟件可為現有的硬件及功能制定程式,最終反而可以幫助您的企業節省金錢,因為企業不需要購買額外的硬件


7. 知識產權: 自行開發的企業軟件的知識產權能夠受企業全權擁有。使用自家軟件的話,您沒有必要與任何特定供應商合作,因為您是該產品的合法擁有者。而對於現成的軟件,您需要為每個用戶支付定期的費用,以維持使用軟件的權利。


You can mass-produce hardware; you cannot mass-produce software — you cannot mass-produce the human mind — — Michio Kaku, American theoretical physicist

總結

自行開發的企業軟件與現成的軟件相比,表面上可能較為昂貴,但長遠考量如員工的工作需時、硬件添置、甚至開發企業停止維護軟件的風險,自行開發的企業軟件無疑是企業比較合適的選擇。值得注意的是,在可擴展性上,軟件的開發、維護可因應企業的發展,而分階段進行。總體而言,自行開發的企業軟件更能夠幫助您的業務持續發展,奠定良好的企業基礎。

我們 ONEs Software 是一家香港的軟件開發公司,致力於通過我們專業的技術,為企業設計出最合適的軟件。如果您有興趣,歡迎與我們聯繫一起探討,為您的企業成長注入新的源動力。 

更多資訊可以留意 ONES Publication 定期發佈的文章,亦可以聯絡我們,我們的網址是: https://ones.software

ONES Publication
We share what we have learned about app and web development. Find us in ones.software. Email: hello@ones.software

到了2019,企業還需要哪種手機應用程式?

時至今天,手機應用開發逐漸衍生出不同的類型,客戶能夠按照自己不同的需要、資源、開發時間等等,去選擇適合該企業手機應用的開發類型。以下就讓我介紹一下各種應用程式的開發類型,好使大家能夠找出合適的應用程式。


由2008年 iOS App Store 開張至今,十多年間手機應用程式的數量,不論是Android 還是 iOS 的平臺上,都已經達致200 萬個以上。今天,都市人每日都透過手機上網去做各種各樣的事,網上理財、Facebook IG、打機拍片、買賣交易。有些人可以忘記帶錢包出街,但不能不帶手機出街。所以對於大小企業來說,不論對外的客戶還是對內的員工,手機應用程式還是一種不可或缺的重要媒介。

Your mobile device has quickly become the easiest portal into your digital self. — — Phil Nickinson, Editor of Android Central

手機應用的開發也風靡一時,在2012年前後,開發到一個便利易用的手機應用程式,近乎等同掘到第一桶金。時至今天,手機應用開發逐漸衍生出不同的類型,客戶能夠按照自己不同的需要、資源、開發時間等等,去選擇適合該企業手機應用的開發類型。以下就讓我介紹一下各種應用程式的開發類型,好使大家能夠找出合適的應用程式。


原生應用(Native App)

原生應用(Native App),意指用該手機系統原生的程式去編寫應用程式。由最早期 iOS 的 ObjectiveCSwift,或者 Android 的 Java 到 Kotlin ,都是最直接的開發方法。而理論上,原生應用理應可以最有效地利用到手機的所有性能,而達至最佳的手機用戶體驗。

原生應用可以緊隨著手機系統的升級而改變,所以它能夠比其他類型的應用程式,更能盡用手機本身的功能。例如這幾年相當流行的機器學習(Machine Learning),還是擴增實境(Augmented Reality/AR),這些功能都是原生應用可以第一時間使用得到。

但相反地,原生應用的弊處在於開發成本較大。在 iOS / Android 各據市場一方,有時甚至要顧及 Windows 用家的時候,除非在特殊的要求下,否則基本上是必須同時支援兩個平臺以上的用家。在多個平臺都要分別開發的情況下,開發的成本與時間翻兩倍亦屬平常。

原生應用程式的例子有:Camera+, iCalender


混合應用(Hybrid App)→ 跨平臺應用(Cross-platform App)

當原生應用其時間和開發成本上的問題越趨明顯,市場自然有相對的解決方案應運而生,而這就是混合應用(Hybrid App)

混合應用的基本概念是在手機裏面放置一個網頁瀏覽器,透過這個瀏覽器就可以去開啓一個模擬手機應用的網站。因爲瀏覽器在手機來説是共通的,所以把主要能夠共用的程式,都以網頁的形式呈現。而網頁未能實現的功能,就用該平臺的原生程序去編寫。以同時推出 Android、iOS 兩個平臺的應用程式為例,混合應用能以大概1.5倍的開發成本和時間,就能做到原生應用兩倍的效果

在2015年,使用 AngularJS + Cordova 作爲根基的 Ionic 曾經瘋魔一時,以 Ionic 編寫的應用程式大量湧現。然而當時混合應用的核心問題,在於用戶介面表現的效能。當時的 Android、iOS 的瀏覽器性能上都非常有限,在用戶體驗上,混合應用會較原生應用差得多。有經驗的手機用家,也許一眼就能看出哪個應用程式是否混合應用。企業形象亦有機會因為其混合應用程式的用戶體驗較其他遜色,而有所減損。

為了減省開發成本,而又不放棄用戶體驗各個手機應用程式公司不斷摸索,其中跨平臺應用(Cross-platform App)可說是混合應用的後繼者。和混合應用的最大不同之處,在於它們針對用戶介面體驗上進行的改善,不再使用網頁和瀏覽器,而是提供一套共同的用戶介面開發框架,給開發人員去編寫出原生的用戶介面,這樣大大改善了混合應用在用戶體驗上的不足。Facebook 的 React native, Microsoft 的 Xamarin,Google 的 Flutter 或者 Vue Native,這些都是跨平臺應用的開發框架。

不過,這些開發框架雖然都聲稱自己是原生應用的開發工具,而它們在用戶體驗/性能上也和原生應用相當相近。但跨平臺應用往往需要至少幾個月的時間,才能支援最新的手機功能,始終不如原生應用來得快。企業如需要追求應用程式能夠使用最新手機功能的話,就要留意應否採用跨平臺應用的開發模式。

即使如此,跨平臺應用依然能達到現在超過 9成以上用戶的需求。大家經常接觸到的手機應用程式,包括 Instagram, Evernote, UBER, Twitter, Netflix 等等,都是屬於跨平臺應用,可見跨平臺應用已是今天開發模式的主流。


網頁應用(Web App)→ 漸進式網絡應用程式 PWA(Progressive Web Application /PWA)

網頁應用(Web App)講白了就是單純的一個網頁,不過這種網頁多用所謂單頁應用 (Single page Applications/SPA)的框架來建立。隨著這幾年手機上的瀏覽器發展越來越進步,網頁應用已能夠給予用戶相當接近手機應用的感覺。

在效能層面上,現在的瀏覽器下網頁應用的效能已經比幾年前進步不少,但當然還是遜色於上文提到的兩者。以功能方面來看,網頁應用也有很多未能做到的功能,例如讀取 QR Code、藍牙裝置信息等等,亦無法利用如 Apple Store/Play Store 的付費功能。但如果企業的應用程式只是如購物網般以文字、圖片等簡單數據為主的話,網頁應用絕對是一個不錯的選擇。

基於網頁應用的優勢,iOS 和 Android 亦作出相應的性能強化,於是 就有漸進式網絡應用程式(Progressive Web App/PWA)的出現。當你使用 iOS 的 Safari 或者是 Android 的 Chrome 去瀏覽網頁時,用戶可以選擇添加該網頁到手機桌面上,這樣網頁就會以一個類似手機應用的模樣出現。對於一般用戶而言,PWA 看上去和其他手機應用程式沒有分別。而這些應用程式還可以用到很多原生應用程式才有的功能,如推送信息、讀取坐標、相機拍照、運用手機指南針等等。

網頁應用/ PWA 還有一個相當突出的優點,就是不用透過 App store 下載就能直接使用。現在用戶拒絕下載手機程式的原因有很多,譬如上網流量有限、電話容量不足、手機已經安裝過多應用程式等等。而網頁應用/ PWA 就是省卻這些用戶的顧慮,用戶可以簡單到只要掃描一下QR Code,又或者在 Google 搜索一下就可以開始使用。這種快捷的體驗,對宣傳新產品來説,是相當有效。

最重要的是,網頁應用的開發成本和時間是各種開發模式之中最短的,用最低的成本,就可以支援近乎所有的手機平臺,甚至電腦桌面都能同步使用,很適合一些如網絡購物、預約房間等等不需要用到手機很多功能的服務使用。不妨嘗試用手機去Starbucks 的網頁 https://app.starbucks.com, 來試一試 PWA 的威力。

PowerApps

除了面對大衆的應用程式外,現在很多公司都積極尋求給予内部員工使用的應用程式,例如員工申報開支、請假等等,以方便公司内部管理和運作,而Microsoft 的PowerApps正正就符合這些功能。

PowerApps 其實是附屬 Microsoft Office 365 的應用程式,員工只需要上 Apple store/Play store 下載 PowerApps 並登入,PowerApps 就能提供一個比較簡單的用戶界面,管理人員可以在 PowerApps 上放置各種小型應用程式,員工可以透過這些應用程式去處理日常公司事項。PowerApps 也會和 Office 365 的 OneDrive / SharePoint / Power BI 等等有互相的聯動,以構成一個一體化的系統,管理人員則能透過 PowerApps 所產生的各類報告以得知公司的運作。

固然,PowerApps 的開發成本是普通應用程式的 20% 而已,但其主要成本反而來自 Microsoft Office 365 定期的訂閱收費,皆因每個使用 PowerApps 的用戶,都要有其 Office 365 的賬號才能使用,成本自然不菲。但如果閣下的企業本身已經使用 Office 365 的服務,而又想利用一些應用程式去方便公司日常運作的話,PowerApps 還是一個不錯的選擇。


遊戲開發引擎

Unity和虛幻引擎(Unreal engine),這些開發引擎都是專門開發遊戲用的。它們所支持的平臺不局限於手機應用,甚至可以於 PlayStation / Switch / Steam 等遊戲平臺實現。現在常見的跨平臺遊戲很多都是以這類型開發的,這類型的應用強項在於 3D 的表現和遊戲運算,不論遊戲開發,還是一般手機應用程式亦能使用到。如 MinecraftPUBG 這些膾炙人口的遊戲,都是用 Unity / 虛幻引擎來開發的。


總結


ONEs software: https://ones.software/hk/bookings-one/