新趋势 + 新实践,让软件开发不再“流浪”
2019.03.12今天许多开发者都会觉得开发出来的功能特性,就像流浪进入外太空的火箭飞船一样,不知道它是否为客户创造了价值。
至少这是我们在调查了 500 名 IT 和软件专业人士关于他们的实践、工具和挑战时所发现的。93% 的专业人士比其他任何人都更重视客户满意度,但其中 60% 也表示满意度几乎无法衡量。
正是讲究效率和可衡量的方式来交付高质量软件,让这种紧张程度一次次地被放大。而现代软件开发实践会对开发新功能对客户所带来的体验,与团队发布新功能所需时间的优先级一样高。
我们从研究中看到的好消息是,这些现代软件团队正将注意力从传统的围绕着目标的速度、效率转移到有利于提高客户满意度和高质量代码的目标上。这也是我们倾向于认为衡量成功的最佳方法。
为了解决这些目标,我们发现软件团队正在利用下面这些主要的软件开发实践,并会在 2019 年继续这样做。
新趋势 + 新实践
微服务:优于整体结构
平均而言,软件和 IT 团队将代码从开发到面向客户的生产过程中要使用 4.3 个工具。这是很多工具!
大规模整体的代码库会让持续交付变得非常困难和耗时。整体系统因为集成不同的服务和功能可能导致难以识别的错误,这样不但限制了团队,开发人员通常还不会密切了解彼此的工作,并且扩展的构建和测试时间可能会使部署速度变慢。
但是,我们的研究表明,71% 使用微服务结构的软件和 IT 团队说,功能测试或部署都更容易了。这是因为当团队利用平台即服务时,其中一些重要的部署功能会直接进入平台。基于微服务的架构允许小型自治团队独立开发、部署和扩展其服务。
CI/CD:手动测试已经过时了,自动化测试才是趋势
众所周知,我们生活在一个消费者期望他们使用的技术不断更新的时代,如果不是,他们将取代它。
遗憾的是,团队无法“早期和经常”发布的主要原因之一是手动测试:自动测试覆盖率不足,额外的手动流程以及缺乏构建/部署管道自动化,62% 团队仍然采用手动测试。
采用持续集成和持续交付,团队要不断实践,从源代码到生产自动快速地发布高质量软件。CI/CD 正迅速成为满足不断增长的客户期望的关键点:47% 的团队通过 CI/ CD 解决方案更快地发布变更,并更快地收集客户反馈。另有 57% 的受访者表示采用 CI/CD 解决方案可以减少错误或系统中断。
提供部署和发布状态实时信息的工具能帮助团队持续发布客户满意的功能特性。
Feature Flagging:降低风险、提高客户幸福感
团队面临的另一个难题是以安全、增量和可衡量的方式发布新功能:75% 的软件和 IT 团队表示,他们在发布时遇到了错误、缺陷或延迟问题。这真让人惊讶。
但是,采用 “功能发布控制”(Feature Flagging)的团队很庆幸他们这样做了:63% 的人可以更顺利地进行功能测试或交付更高质量的软件。这很大程度上是因为大多数团队传统上是向所有用户,一次性地发布新功能。
“功能发布控制” 让团队向客户的子集(例如 25%)推出新功能,这样做就将问题和错误的风险分散了,评估客户反馈之后再将其推广到整个客户群。采用“功能发布控制” 强化了客户满意度的重要性。
结果驱动型开发:客户成果先于团队成果
几乎所有软件开发团队都希望提交创造客户满意度的功能,但缺乏跟进该目标成功的方法。这个难题反映了按产出,而不是成果(即客户价值)来衡量工作的弊端。
“结果驱动的开发” 将焦点从特性交付的速率和速度转移到其创建的客户价值。希望采用以结果为导向实践的团队应该考虑能提供实时构建和部署信息的软件工具,分析客户使用的数据,以及内置功能发布控制。
有了这 4 个新实践,您不会再觉得自己是在将产品推向外太空去流浪(当然,除非您是真正的太空工程师),你能够更自信地交付高质量的代码,并为客户提供价值。