盒装软件向云应用程序和服务转变的六个关键

云计算
在SaaS模式下,公司可以直接从异地的中央服务器访问关键应用程序;因为云中的数据量是有弹性的,因此公司可以快速扩大或删减各种应用,并且他们只需购买所需的服务。此外,系统可自动更新,公司的应用程序无须花费更多的钱进行繁琐的维护。六大关键因素将帮助软件公司实现从销售产品包到提供在线订阅和服务的转变。

六大关键因素将帮助软件公司实现从销售产品包到提供在线订阅和服务的转变。

[[146592]]

云计算正向高管们的战略讨论中心靠拢。虽然有关云计算安全性和决策权的担忧依然存在,但其更快的处理速度、更好的网络连接,伴随着移动设备和大数据等技术进步的普及,越来越受到所有行业公司的青睐——开始购买他们的软件服务(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用户的增多,开发人员应留意从盒子到云端的趋势。本文所描述的六大原则可以帮助开发人员成功的完成这一转变。

责任编辑:Ophira 来源: 云头条
相关推荐

2010-03-29 14:56:36

云计算

2011-06-24 16:50:12

应用程序CICS服务组件

2011-05-03 17:36:07

iPad谷歌苹果

2013-03-06 09:26:20

云服务云实践精准管理

2014-05-28 15:24:59

台湾Teradata大数据

2018-08-23 09:16:22

2021-07-12 07:59:06

.NET程序内存

2013-04-17 10:55:34

虚拟化

2013-03-06 10:54:03

云服务实践关键步骤

2020-01-14 10:52:35

数据中心数据网络

2017-01-20 18:01:35

Avaya

2022-04-06 21:29:44

边缘计算数据存储数据中心

2022-04-29 14:54:10

物联网应用程序设备

2014-05-20 16:29:07

Azure微软

2017-05-11 09:14:37

微软工具和服务应用程序

2012-10-29 09:40:24

云应用集成云计算管理IaaS

2009-07-02 10:14:34

EJB事务属性

2009-07-08 11:27:05

敏捷方法

2013-08-16 16:52:14

2011-07-26 09:12:23

点赞
收藏

51CTO技术栈公众号