六大關鍵因素將幫助軟件公司實現從銷售產品包到提供在線訂閱和服務的轉變。
云計算正向高管們的戰略討論中心靠攏。雖然有關云計算安全性和決策權的擔憂依然存在,但其更快的處理速度、更好的網絡連接,伴隨著移動設備和大數據等技術進步的普及,越來越受到所有行業公司的青睞——開始購買他們的軟件服務(SaaS),而非購買放在盒子里的軟件。在SaaS模式下,公司可以直接從異地的中央服務器訪問關鍵應用程序;因為云中的數據量是有彈性的,因此公司可以快速擴大或刪減各種應用,并且他們只需購買所需的服務。此外,系統可自動更新,公司的應用程序無須花費更多的錢進行繁瑣的維護。
其結果是,一些軟件供應商正在為他們部分或全部產品尋找基于云的交付模式。據國際數據公司(IDC)預計,基于云的SaaS產品的全球市場份額將以每年20%的幅度增長,那2018年市值將超過1千億馬克(原德國貨幣)。
一、云的潛力
軟件供應商已經運用了某種SaaS交付模式,制定改善用戶體驗、降低交付和支持成本、進入新市場的戰略,尋求創造新產品的機會。例如,被稱為“創意云”的Adobe,目前將出版和設計工具放在一套基于云的應用程序中。用戶可支付月費從Adobe系統的中央服務器來訪問Ilustrator和Photoshop等應用程序,并利用在線功能,如社交網站來接觸專業人士,獲取內容或進行人才搜索。
但對許多優秀的軟件開發人員來說,SaaS仍然只是起到“馬后炮”的作用。最近IDC的另一項報告推測,全球前100強軟件公司的收入只有8%來自SaaS模式,70%大公司的SaaS收入甚至不到5%。其原因可能是因為從盒裝軟件到基于云的應用程序和服務的轉變帶來了重大挑戰:現有的應用框架足以支持基于云的交付產品嗎?代碼庫需要進行重構(遞增重構代碼的控制技術)或徹底重建嗎?軟件供應商是否有合適的產品開發,經營和分銷模型,以用于基于云的交付模式?有沒有具備SaaS所需專業知識的合適人選?
為了回答這些及其他問題,首席技術官、首席信息官、軟件開發負責人和應用開發負責人應該好好考慮幾個主要的技術問題,然后將重點放在六大戰略原則上,以成功的轉向基于云的交付模式。這六大原則側重于針對云端的新產品開發和老產品的配置過程,各公司需要管理用戶關系的方式、產品開發團隊工作的步調、公司對失敗的容忍度,以及公司愿意投資到新技術和能力的程度。根據我們的經驗,在互聯網正日益成為軟件交付核心機制的市場環境中,遵循這些原則的公司將具有更強的競爭優勢。
二、六大云端原則
許多因素導致了軟件供應商對SaaS的低采用率,但也許最大的障礙來源于現有應用程序的設計:因為在軟件包開發時,通常不考慮云環境,所以必須解決許多軟件的重建問題。通過與高級軟件開發負責人的談話,透露了公司在軟件和系統可以改變之前必須處理的幾個關鍵技術問題。這些討論也表明,軟件供應商需遵循六大核心戰略原則。
1.強調最小化可行產品,而非“大爆炸”式發布
軟件開發團隊可能需要花費兩年時間打造全新的和完整版本的產品包——可以完全兼容以前版本的云軟件產品或應用程序,并包含所有用戶想要的功能。此外,額外的設計可以用于擴展軟件的效用。與之前按照傳統時間線每兩年發布“大爆炸”的產品相反,公司應該采取云交付模式允許的靈活優勢。他們應安排好向用戶推出最小化可行產品(MVPs)——軟件的“精簡”版本的時間,該版本主要開發用于測試和不斷改進軟件性能。這些最小化可行產品幾個月內就可推出,而無須等上好幾年。開發團隊可以從用戶那里獲取有用的反饋信息——主要關于這些基于云的產品是否工作正常,同時他們也可以相應地調整關鍵元素。公司可以不斷地檢驗他們對產品功能的假設,并確定其是否能夠提供廣受歡迎的核心用戶體驗。
2.將用戶視為日常開發團隊的一份子
建立的第一原則就是,在軟件開發團隊打造云服務新產品或重置老產品時,他們需要盡早并經常與用戶進行溝通。云模式使得公司可以更容易地將終端用戶集中在一起,并以不同的方式與用戶群體進行互動。軟件開發人員可以集中地為大家運行應用程序,但是他們可以為特定的終端用戶開啟或關閉各種功能,并收集他們的反饋,以盡量滿足需求。
云模式還能使團隊以受控的方式推出新的軟件功能——比如說,先在2%的用戶中測試這些功能,然后是5%,如果一切順利的話,一直到實現全面推出。用戶可以實時提供反饋——只要或在應用及功能還存在之前即可。在產品還處于MVP階段時,軟件開發人員和產品經理可以要求用戶通過博客將他們的需求按先后順序排列出來,然后一起協同設計全功能版本,這可以在許多情況下形成品牌忠誠度。隨著軟件開發團隊收集到更多的用戶信息,他們可以評估使用模式,并完善某些軟件特性和功能的A/B測試,以確定哪些需要保留,哪些需要刪除。
3.預計和容忍出現的失敗
云基礎架構有利于促進很多軟件的開發,包括為應用程序提供實時擴展或縮減資源的能力。然而,云架構的共享特性也帶來了一些挑戰,因為有些因素超出了軟件開發者的控制范圍,如硬件或網絡故障,以及網絡速度變慢等。IT架構和基于云的應用程序的設計必須適應這些潛在的故障,但即便如此,公司也需要預料并容忍出現一些失敗情況。這與盒裝軟件產品的開發大不一樣,團隊在規避風險時,認識到了復雜昂貴的故障修復和系統補丁被推出的問題,所以他們得延長其測試周期。
相比之下,云模式能使維護變得更加容易,因此需要給予開發人員自由,可立即推出最小化可行產品,但同時也應配有可快速修復的機制。為了應對失敗的可能性,一些軟件供應商已經為云服務改組了他們的產品包,以提供一份“優雅降級”的用戶體驗——比如,在網絡變慢的情況下,將刪除所有照片或其他復雜的網頁元素——而不是面臨完全崩潰。其他公司已經將他們的IT架構編入了自動化腳本,即在日常運作的后臺,模擬系統的隨機故障,并根據所需調整參數。這樣,公司可以測試那些還沒有發生過但將來可能會發生故障的反應狀況。
4.采用靈活的方法開發軟件
公司必須承認,通過云交付軟件服務和運送實際物品上市時間存在明確差異。 鑒于與銷售基于云的產品相關的可訪問性和普遍性的期望,軟件供應商需要采用連續釋放的思維定式——正如我們前面提到的,經常更新他們的應用程序,而非每隔幾年才推出產品包。這一對靈活軟件開發的承諾——其中需求和方案可通過自我組織和跨職能團隊的共同協作得到不斷發展,可以為軟件供應商走向云端之路掃清很多障礙。具體來說,這些公司需要與他們的IT組織一起緊密地整合自己的研發業務——該方法俗稱DevOps,將兩個群體聚集到一起,共同優化產品的設計、交付、質量保證和維護流程。頻繁的增量發行可以幫助公司降低軟件開發的復雜性,以及發行時可能出現大故障的風險。公司也可以更好的響應用戶的需求和要求。用戶報告的一個故障可以被快速的處理——如此高效的處理方式可以避免其他用戶在訪問同一個應用程序時不會看到這個故障或受該故障的影響。我們的研究表明,靈活的軟件開發團隊可以將工作效率平均提高27%,并將功能發布的及時性提高30%。
5.賦予開發人員質量保證和檢驗的責任
當一個基于云的軟件更新開發出現故障時,需要立即進行處理。公司不可能等待好幾個月來發行下一個版本,因為他們可以利用軟件包進行處理。他們必須在問題出現時立即解決。成功將產品包轉為云服務的供應商們應該配備軟件開發人員,而非僅僅只有代碼測試員,以確保高品質產品和體驗。通過這種方式,他們可以推出重要修補程序,同時發布新的功能和應用。該模式同樣比較有效率:相對于六個月前出現的故障或兩年之后再解決這個故障,開發人員解決兩個星期前出現故障的效率會更高。
由于用戶可在多個時區訪問云應用程序,所以就不存在有最合適的時間將服務器脫機以調試代碼單元,因為公司可以用軟件包進行處理。所以那些正將產品包轉移到云端的開發人員,應該從一開始就在軟件中創建高超的診斷和跟蹤能力。事實上,通過與已經成功轉型的開發人員的談話,我們得出結論:基于云的產品需要比軟件包高三到四倍以上的診斷能力。
6.投資尖端技術
不言而喻,成功轉型到SaaS模式也涉及到招聘高級開發人員,他們可以在所有運作和管理層面上將新的技術運用到組織中——例如,引入系統安全性或預期分析能力的不同觀點。公司還必須愿意投資獨特的工具和基礎設施,以推動云導向產品模式的開發。比如DevOps模式,就需要一個先進的、全自動化的測試環境,在那里,開發人員可以在向用戶推出新功能時,快速嘗試針對各子系統的代碼更改。
目前基于云的SaaS模式仍然占大部分優秀的軟件開發人員產品組合的一小部分。但是隨著在未來幾個月或幾年內SaaS用戶的增多,開發人員應留意從盒子到云端的趨勢。本文所描述的六大原則可以幫助開發人員成功的完成這一轉變。