專刊內文

當前位置:首頁>專刊分享>內文

瀏覽次數 : 8116



 

雲端可以幫你寫程式嗎?

訊光科技

雲端的興起

隨著雲端運算的興起,雲端服務是目前資訊服務產業最夯的話題之一,根據市調機構 IDC 預測,2015年雲端產業市場將達729億美元,而SaaS就扮演著關鍵角色,屆時SaaS服務將占雲端產業的75%產值;另一市調機構 Forrester Research 的研究資料顯示,SaaS的概念會廣為不同規模的公司所採用,市場規模將由2011年的212億美元成長至2016年的928億美元;此外,Gartner 於2011年的調查也顯示,全球43%的CIO認為在2015年前,所屬企業就會有過半的應用程式將採用SaaS方式提供,可預想SaaS服務未來在全球發展的火熱程度。

下圖是雲端架構示意圖:




而國內根據資策會的資料顯示,目前的三種雲端服務中,PaaS 將是未來五年內成長最快速的服務,其年複合成長率高達65.5%,但目前台灣市場的 PaaS 服務提供者仍算少數,主要以微軟的Azure以及Google的Google App Engine為主, PaaS可部分取代傳統企業IT部門的角色,將應用程式整合、Web Services、SOA等技術轉移到服務供應商的雲端服務中心處理,可支援雲端應用的不同功能並提供整合的API外,也可讓應用程式的部署更簡便,有效降低開發及管理成本。

目前很多開發者可以透過SaaS的服務在PaaS平台上來進行程式開發與佈署,這種趨勢已日漸增長,像是Salesforce Platform平台上可以開發應用程式以及手機App等,Koding平台也能夠開發出nodejs程式,因此仍有許多商機等待業者來發掘與開發,在國內也有類似的廠商,除了訊光EEPCloud平台之外,還有英特內的同樣以表單建立與工作流程為主的DreamMaker以及中冠以元件拖拉並使用XML組裝設計畫面的易組(EZO),各自具有不同的特色與應用。

傳統工作模式的挑戰

現階段的資服業者,依據營業類型我們可以簡單區分為產品導向及專案導向兩種型態,產品導向業者主要以開發產品及銷售產品為主,其中又以套裝軟體為多數,例如微軟的Office、趨勢科技的PC-Cillin,以及國內各ERP或套裝軟體業者等等,目前許多產品導向業者也逐漸走向雲端化發展,紛紛推出雲端產品來因應市場需求。而專案導向主要是針對客戶需求來進行客製的開發,專案導向往往強調快速有效率的工作模式,因此需要更快、更便利的開發工具來協助專案開發流程,以達到最短時間內產出最高品質的成果為目的。

不論是產品導向或是專案導向,資服業者都必須隨著技術更新與時代改變,來面臨更大的挑戰,就以下幾個方向來思考問題:

1.Framework重要性與依賴度:Framework的目的是為了增加Reuse程度, 產品導向業者需要Framework將研發與一般開發人員分開,研發人員負責開發Framework的共用底層與常用元件,一般開發人員負責產品個別需求來開發;專案導向業者也是一樣, 必須有一個標準Framework避免每次專案都從頭開始,可增加Reuse程度提升產值,通常產品導向對於Framework的依賴度較高,專案導向相對依賴度較低一點。

2.面對SaaS的強大競爭:不論是產品導向或專案導向業者都面臨同業以SaaS面對市場的競爭,擁有SaaS可以讓產品導向業者提供客戶免費試用或租賃服務,以此提高客戶使用與購買意願;而專案導向業者可利用SaaS平台與客戶互動,如:雛形展示或隨時提供中間版本供客戶測試,以此增加規格準確度與客戶滿意度。

3.人才培訓與留才困難:根據1111人力銀行的統計調查,企業平均需要60天以上來訓練職場新人,才能夠有基本的工作產出,要達到能夠量化工作常常需要半年以上,尤其是產品導向業者將超出上述平均值。因此培訓新人確實帶來企業不少困擾,許多企業找不到可用的人才,有經驗的人才更是一位難求;培訓人才如此而留才就更為困難,根據行政院勞工委員會統計,程式開發人員的年流動率平均為15%,如果只針對資服業者並扣除資深人員較為穩定,前2年的新人流動率將會超過35%,這種人才高流動率現象對於企業來說造成不少衝擊。

4.過程管理困難:程式開發工作過於自由沒有規範,彼此間能力與開發風格相差過大在過程管理上常造成困難。近年來為數不少的業者導入CMMI來強化管理與提升流程品質,但對於整體績效與成本降低並沒有顯著提升。許多團隊也會導入開發週期管理(ALM)的工具來管理流程與專案進度,大多為了要配合團隊工作習性與公司文化,有些ALM工具並沒有與開發工具自動化整合,容易增加開發者的負擔與學習成本。

5.人力資源調度與成本:資服業還是有淡旺季微小差異,經常在旺季時人力資源不足,而在專案空窗期或淡季時人力過剩,對資服業而言最大的成本就是人事成本,是誰說社會新鮮人22K薪資?根據1111人力資源調查顯示,第1年新手程式開發人員薪資平均為32K,每年的薪資平均成長率都超過10%,企業除了給予勞健保、勞退、三節獎金、福利外,尚須支付基礎設備與辦公室租金、管理費用等等,對於資服業者來說確實很難有可觀的獲利。

專案導向業者與PaaS

隨著企業國際化與兩岸間發展關係密切,資服產業也隨著一起奔走在兩岸及全球據點,系統分析的團隊與設計團隊不一定在同一地點,或以外包的方式來進行專案開發,在軟體專案管理上易造成溝通困難,過程中的規格常因溝通不良產生誤差,因此需要更多的機制與方法來進行時程與開發管理,拜於科技之賜,通訊軟體越來越發達,但溝通差距始終存在著,從系統需求到系統分析,再經系統設計到程式設計,最後的成果南轅北轍不在少數。

整體來說有兩個關鍵誤差,一個是客戶的需求說明不清楚,另一個是系統分析與開發團隊的合作默契。要解決這兩個問題,前者在軟體工程上多數人採用雛型設計法,快速開發出客戶想像中的系統讓客戶體驗是否符合需求來縮短誤差;後者如果合作經驗不足只能讓系統設計文件寫得更為清楚與完整,且還需要交給有經驗的開發團隊。

如果能有一個雲端的開發平台(PaaS),讓系統分析的工作直接在雲端就可以進行SA分析,匯出系統架構圖、資料流程圖、資料表關聯圖,並定義好資料結構等等,然後再由雲端的工具自動產生後端服務、前端輸入輸出的頁面或報表等,這樣就可以一氣呵成,快速將系統雛型交給客戶審核並將需求固定下來;如果需要變動,也是由SA的團隊來直接修改,雖然SA的工作增加了,但是過程中無須程式開發團隊,可以減少人力的付出,最後再將這個成果自動輸出成文件,才讓程式開發團隊進行量化,甚至可以將這些規格自動產生程式碼,程式開發人員只需少許的程式撰寫即可完成,除了可以更貼近客戶需要,也可以大幅降低人力成本。

過程中,因為所有的作業流程,從SA到程式設計都是在雲端上進行,對於客戶或專案經理而言,可以立即看到進度並隨時進行測試與驗證的工作,在程式開發階段也是一樣,透過雲端可以直接根據SA所開發雛型向下設計,減少溝通上的誤差;雲端上還可以區分版本來管理,開發人員使用開發區,完成後發佈到測試區讓SA來進行測試,如果沒有問題,再由SA來發佈到正式區給客戶測試或使用,更重要的是,客戶與SA或程式開發團隊可以在不同地方或時間分別進行,無須在相同工作地點,這是雲端所帶來的革命性優勢。

另一個問題就是人力資源的問題,多數業者不可能因為臨時接到專案任務再去應徵及訓練人力,透過雲端開發工具,就可以培養部分兼職或SOHO的外包人力,平時資源足夠時無需支付固定成本,當內部人力資源不足時再透過已培養好的外包團隊來外包處理即可。

不但如此,也因為從SA、SD、程式開發與事後改善、維護,都透過雲端PaaS來處理,PaaS會自動記錄所有開發者的登入、登出時間及每個模組的工作時間與統計資料,方便專案經理來統計整體的人力開發成本與績效管理,這幾乎是所有專案管理者都需要的基本需求。


產品導向業者與PaaS

產品導向的業者,首重須要有一個Framework來處理產品本身最基本的底層功能,好讓產品開發時可以量化設計,而多數的雲端平台PaaS都會有一個現成的Framework可以使用,當然因為產品型態與行業別的差異,不一定現成的Framework都一概適用,但還是可以從Framework當中找到可以使用的元件與基礎架構,有些雲端平台允許自行修改或加強Framework功能,有的是制式規格,無論哪一種,以雲端平台來設計產品都將是資服業者向前跨出的必經之路。

現階段市場上的產品,慢慢地會被要求雲端服務化(SaaS),可以試用、租賃、隨時可擴充,甚至可提供客製化服務等,這些需求並不是將目前的產品放在雲端服務器上,讓客戶透過瀏覽器來使用就稱為SaaS了,是必須在產品設計時,透過PaaS架構寫成SaaS的特性,才能滿足客戶對SaaS的要求。如果業者使用雲端平台來設計產品,除了開發出來本身就已滿足SaaS的服務特性之外,還能透過這個雲端平台來進行客戶差異化的設計,因為愈來越多的客戶使用套裝產品(Package)時,都希望有客製化的服務來滿足他的個別需求,如果業者不是用雲端平台所開發,對於個別客製化的版本控管與事後維護將造成一大困擾。

再者,產品導向只要有客製化的服務,修改幅度稍微大一點,就會面臨與專案業者相同的問題,規格變更發包與開發控管、團隊溝通、測試管理、版本管理、發佈管理及人力資源是否充足等問題,這些都可以透過雲端平台來提升管理機制與降低開發成本。

以O2O的思維來談開發模式

O2O原用在虛擬商店(Online)帶動實體商店(Offline)消費行為,由於消費者行為隨著時代不斷改變,過去的實體商店零售隨著網路的興起逐漸朝向虛擬商店,近年來隨著Online to Offline的概念興起進而影響到整體市場氛圍,從阿里巴巴成功的案例可以看到雙11節活動僅開始的38分鐘就創造了百億銷售額,就可以得知O2O的魅力所在。



有別與坊間的O2O商業模式,我們將Online to Offline的概念應用在軟體開發平台中,隨著雲端技術的興起,軟體開發工作也開始有顯著的變化,我們將O2O稱為「Online開發平台」和「Offline開發平台」間的互動,目前市場的Online開發平台比Offline開發平台相對稀少,市面上的Online平台,例如有結合社群的Koding線上程式開發平台,以及提供CRM應用的Salesforce Platform等。而目前市面上絕大部分的軟體工具多屬於Offline平台,就像Visual Studio、Eclipse、NetBeans等,這兩者間最大的差異在於「上網開發」,使用Online開發平台必須在有網路的狀況下才可使用,但好處可以不必安裝任何軟體即可開發使用。

一般來說開發平台不是Online就是Offline,但這裡說的O2O就是可以將Online的設計成果轉到Offline中並可以編譯與持續開發,反之也可以將Offline開發成果再度移往Online平台中持續運作,如下圖中訊光的EEPCloud就是這種O2O的開發架構,這幾年經過雲端潮流的洗禮,企業及資服業者開始思考如何把開發工作移向雲端,而雲端開發平台正是實體開發與虛擬開發的重要中介平台。


改變從現在起

無庸置疑地雲端科技正在蓬勃發展,但就目前市場當中,能夠利用雲端服務(SaaS)從中獲利者卻鮮有聽聞,這也是讓國內資服業者裹足不前的重要原因,一方面局限於研發的能力與資源不足,經常手上接的案子或產品都已接應不暇,還要將資源投入在一個未知的獲利模式的產品或市場確實是一大困擾與憂慮。

一個新興市場的成熟,除了科技的發展程度之外,更重要的是使用者(客戶)觀念的改變,根據iThome 2014年對國內CIO調查結果顯示,企業採用雲端運算的意願增加到51.1%,當然最重要的雲端服務(SaaS)才佔IT預算的3.37%而已,但已經反應企業對雲端服務意願已經明顯的提升,市場的需求就是資服業者的發展方向指標,隨著逐年以兩位數成長的SaaS市場,相信不得不讓業者重新思考這個重大議題。

「改變從現在起」除了市場因素外,資服業者最關心的莫過於是雲端平台與工具對於帶來了什麼好處?改善了那些問題?導入雲端開發平台,可以為業者帶來下列優勢:

實現一個真正SaaS架構:透過雲端開發平台所開發的軟體系統,本身就是SaaS的服務,讓業者可以透過雲端來管理帳號、空間、開發者、及版本發佈與權限調整,讓客戶更方便實現試用或月租;對於專案的開發亦可讓客戶與專案管理者及開發團隊更為互動,讓整體進度更透明化,並能在同一個平台上測試與及時修正問題。

活化人力資源與降低成本:透過雲端開發平台,可以讓業者更容易外包與分工,或透過開發平台的人力資源找到兼職工作者或允許開發者在家裡上班的工作模式(可省下辦公室租金與費用),資服業最大的成本來自於「人」,如果能夠降低固定的人力成本,轉化部分成本至外包的變動成本上,將是業者獲利的重要關鍵之一。外包與兼職模式雖行之有年,但困難點仍在於合作默契、溝通、時效、開發環境或平台不統一等等,透過雲端開發平台,除了合作默契之外,幾乎很多問題都能迎刃而解。

良好的過程管理:一個軟體專案或產品的控管是非常複雜的,畢竟是在管理:需求、規格、架構、程式碼、Bug及人員的一連串工作,雲端開發平台除了從需求分析到系統設計然後到最後程式碼產生,過程中都會有版本的管理與工時的紀錄。版本管理是以Checkout與Checkin來控管一致性及比對版本差異;工時紀錄可以了解每位工作成員的工作時間統計與工作內容,這樣不管是外包或是自己公司的團隊,都可非常精確掌握成本與時程,並對往後的開發時程估算將會更為精進。

同業結盟共創商機:資服業者的人力資源往往有限,彼此的專業與行業別知識也不盡相同,如果可以透過雲端服務的開發平台,以彼此接受的計費方式來相互分享不同的開發案例或產品,讓彼此的人力資源與產品可以共享,甚至在同業間可以找到不同的業務互補,就可以降低業者經營成本,並透過業務合作來擴展更大的商機。



EEPCloud將改變您的未來

雲端開發平台最基本的概念,就是只要有「網路」無論何時何處,都可以恣意地在線上進行開發與設計工作,開發者在平台上使用多少時間、更改多少程式內容都會被記錄下來,主管可以根據紀錄的LOG資訊轉換成工時數據並追蹤專案進度,讓專案或產品的開發與虛擬人力團隊能更有效的管理,且整個平台由主機代管業者管理,不需煩惱設備與資料庫佈署問題與軟體授權成本,不論是採用公有雲或是私有雲的虛擬架構都可以解決以上問題,雖無法達到盡善盡美,但對於人力資源管理與成本管理等問題可獲得一大紓解。

EEPCloud就是根據這些概念發展而出的雲端平台,讓開發者只要有網路,透過雲端服務主機即可進行所有的開發工作。EEPCloud運作時,主機可以是業者自行建立的私有雲(開發中心),也可以是EEPCloud大家共用的公有雲,無論哪一種,都可以提供業者客戶試用帳號與月租的服務機制。EEPCloud的雲端服務如果安裝在私有雲中,能連接到業者現有的資料庫並以Web或Mobile介面來呈現UI頁面;如果客戶有報表或工作流程的需求,可以利用EEPCloud來開發Web報表與流程簽核系統,包括了簡易的發佈功能,可以佈署系統到指定的測試區或正式區,讓客戶可以立即使用。

對管理者而言,可透過EEPCloud來規劃團隊的分工,以EEPCloud內建的「版本管理」,方便對版本進行管控、追溯及比對工作,也不必再要求開發者提供系統文件,因為EEPCloud能隨時從後端自動列出,EEPCloud更可提供開發者詳細的工時統計,給管理者進行各個開發工作的效益評估。


結語

EEPCloud在整個雲端產業中,扮演關鍵的PaaS角色,可以大幅降低要轉型到SaaS的中小型資服業者或SOHO族的技術門檻,也降低了SaaS業者的營運與管理成本,對於目前競爭的IaaS廠商而言,EEPCloud可以提升IaaS產業的附加價值,讓企業不只是將資源存放於雲端而已,更可以透過EEPCloud實現更多的SaaS應用,此外也可以因EEPCloud快速成長的SaaS產業來提升整體雲端產值。

EEPCloud中所開發的任何成果不僅限於在雲端平台上使用,也可以將此成果直接下載到本地的開發環境中,並在Visual Studio開發平台中通過編譯,讓雲端平台無法滿足需求時,可以下載到本地以傳統的方式持續開發,並發佈到任何一個實體環境中。除此之外,也可以將Visual Studio 裡所寫的程式再度搬回雲端平台上(以上兩種方式都需安裝EEP.net實體開發平台)。2015年EEPCloud也將提供雲端SA規劃服務,讓系統分析團隊可直接在EEPCloud繪製系統規格後輸出系統分析文件,再交給系統與程式設計團隊直接開發,這樣就可以讓系統分析、設計、開發、測試、佈署等作業前後貫通,在雲端上完成所有的軟體開發工作,落實資服產業者可100%透過雲端服務解決所有問題的完美境界。