六大关键因素将帮助软件公司实现从销售产品包到提供在线订阅和服务的转变。
3.预计和容忍出现的失败
云基础架构有利于促进很多软件的开发,包括为应用程序提供实时扩展或缩减资源的能力。然而,云架构的共享特性也带来了一些挑战,因为有些因素超出了软件开发者的控制范围,如硬件或网络故障,以及网络速度变慢等。IT架构和基于云的应用程序的设计必须适应这些潜在的故障,但即便如此,公司也需要预料并容忍出现一些失败情况。这与盒装软件产品的开发大不一样,团队在规避风险时,认识到了复杂昂贵的故障修复和系统补丁被推出的问题,所以他们得延长其测试周期。
相比之下,云模式能使维护变得更加容易,因此需要给予开发人员自由,可立即推出最小化可行产品,但同时也应配有可快速修复的机制。为了应对失败的可能性,一些软件供应商已经为云服务改组了他们的产品包,以提供一份“优雅降级”的用户体验——比如,在网络变慢的情况下,将删除所有照片或其他复杂的网页元素——而不是面临完全崩溃。其他公司已经将他们的IT架构编入了自动化脚本,即在日常运作的后台,模拟系统的随机故障,并根据所需调整参数。这样,公司可以测试那些还没有发生过但将来可能会发生故障的反应状况。
4.采用灵活的方法开发软件
公司必须承认,通过云交付软件服务和运送实际物品上市时间存在明确差异。 鉴于与销售基于云的产品相关的可访问性和普遍性的期望,软件供应商需要采用连续释放的思维定式——正如我们前面提到的,经常更新他们的应用程序,而非每隔几年才推出产品包。这一对灵活软件开发的承诺——其中需求和方案可通过自我组织和跨职能团队的共同协作得到不断发展,可以为软件供应商走向云端之路扫清很多障碍。具体来说,这些公司需要与他们的IT组织一起紧密地整合自己的研发业务——该方法俗称DevOps,将两个群体聚集到一起,共同优化产品的设计、交付、质量保证和维护流程。频繁的增量发行可以帮助公司降低软件开发的复杂性,以及发行时可能出现大故障的风险。公司也可以更好的响应用户的需求和要求。用户报告的一个故障可以被快速的处理——如此高效的处理方式可以避免其他用户在访问同一个应用程序时不会看到这个故障或受该故障的影响。我们的研究表明,灵活的软件开发团队可以将工作效率平均提高27%,并将功能发布的及时性提高30%。
5.赋予开发人员质量保证和检验的责任
当一个基于云的软件更新开发出现故障时,需要立即进行处理。公司不可能等待好几个月来发行下一个版本,因为他们可以利用软件包进行处理。他们必须在问题出现时立即解决。成功将产品包转为云服务的供应商们应该配备软件开发人员,而非仅仅只有代码测试员,以确保高品质产品和体验。通过这种方式,他们可以推出重要修补程序,同时发布新的功能和应用。该模式同样比较有效率:相对于六个月前出现的故障或两年之后再解决这个故障,开发人员解决两个星期前出现故障的效率会更高。
由于用户可在多个时区访问云应用程序,所以就不存在有最合适的时间将服务器脱机以调试代码单元,因为公司可以用软件包进行处理。所以那些正将产品包转移到云端的开发人员,应该从一开始就在软件中创建高超的诊断和跟踪能力。事实上,通过与已经成功转型的开发人员的谈话,我们得出结论:基于云的产品需要比软件包高三到四倍以上的诊断能力。
6.投资尖端技术
不言而喻,成功转型到SaaS模式也涉及到招聘高级开发人员,他们可以在所有运作和管理层面上将新的技术运用到组织中——例如,引入系统安全性或预期分析能力的不同观点。公司还必须愿意投资独特的工具和基础设施,以推动云导向产品模式的开发。比如DevOps模式,就需要一个先进的、全自动化的测试环境,在那里,开发人员可以在向用户推出新功能时,快速尝试针对各子系统的代码更改。
目前基于云的SaaS模式仍然占大部分优秀的软件开发人员产品组合的一小部分。但是随着在未来几个月或几年内SaaS用户的增多,开发人员应留意从盒子到云端的趋势。本文所描述的六大原则可以帮助开发人员成功的完成这一转变。
译自:2015年7月【美国】麦肯锡
编译:工业和信息化部国际经济技术合作中心 李玮
更多精彩内容参见“中国经济网-国际频道-国际IT行业资讯”
