我们重点介绍了 Microsoft Clarity,它是一款由真正了解像 Switas 这样的公司所面临挑战的产品开发人员,以实际应用场景为导向打造的产品。诸如“愤怒点击”和 JavaScript 错误跟踪等功能,在识别用户痛点和技术问题方面发挥了至关重要的作用,从而能够进行有针对性的改进,直接提升用户体验和转化率。
功能标志(也称功能开关)是应用程序代码中的一个条件语句,用于在运行时确定特定功能是否对给定用户或请求处于活动状态。与依赖部署代码版本来决定功能是否存在不同,功能存在于代码中,但通过配置来启用或禁用。这使得部署与发布解耦:代码可以持续发布到生产环境,而其包含的功能则保持不可见,直到有人决定将其公开。
对于实验而言,功能开关是服务器端测试的底层机制。将用户分配到某个功能开关变体,其功能与将用户分配到实验组完全相同。由于决策发生在应用程序而非浏览器中,因此该变体可以影响应用程序控制的任何内容:定价逻辑、搜索排名、推荐算法、电子邮件触发器、结账规则以及任何客户端测试工具都无法触及的后端行为。此外,它还消除了客户端操作产生的视觉闪烁,并且不受广告拦截器和脚本拦截浏览器设置的影响。
标志位用途各异,值得区分,因为它们的生命周期截然不同。发布标志位用于隐藏未完成的工作,并在功能完全发布后移除。实验标志位用于控制变体分配,并在测试结束后移除。操作标志位(有时也称为终止开关)允许在功能导致生产环境问题时立即禁用该功能,并且可以无限期地保留。权限标志位根据客户级别或合同限制功能,并且实际上是永久性的。如果将这四种标志位视为同一事物,组织最终就会积累数百个过时的条件语句,而没有人敢移除它们。
这种累积是主要风险。每个标志都是一个分支,随着标志的累积,可能的代码路径数量呈倍数增长。测试每一种组合变得不可能,标志之间意想不到的交互会导致难以重现的缺陷,代码也变得越来越难以理解。规范的团队会将移除标志视为完成定义的一部分,维护一个包含每个标志的负责人和失效日期的清单,并定期审核那些几个月都保持不变的标志。
功能开关还支持无需实验即可降低风险的发布策略。渐进式发布会先向 1% 的流量开放功能,然后是 5%,再是 20%,并在每个阶段监控错误率和业务指标。环形部署会先向内部用户开放,然后是 Beta 测试用户群,最后是所有用户。金丝雀发布会将新版本与旧版本并行运行,并在继续推进之前比较运行指标。所有这些都基于同一项功能的不同变体:无需部署代码即可更改哪些用户可以看到哪些功能。
标记机制还提供了一种可控的区域和细分市场推广机制,这对于跨多个市场运营的组织至关重要。变更可以先在单个国家/地区推出,监控是否存在与语言、支付方式、税务显示或监管要求相关的市场特定问题,并在验证有效后推广到其他市场。这比全球发布要安全得多,并且能够提供证据,证明改进是否能跨市场推广——而这一点通常被想当然地认为有效,却很少经过测试。工具方面的问题则取决于规模:小型团队可以使用配置文件和简单的管理界面来管理标记,而跨多个服务运行大量并发标记的组织通常需要一个专门的管理平台,提供目标规则、审计日志以及跨后端和前端的一致评估,因为不同层级评估的不一致会导致用户只能看到部分功能。
引入标志通常是开展严肃实验实践的先决条件,尤其对于那些位于应用层而非表示层的功能而言更是如此。 产品开发 工作中,标志基础设施通常与交付管道同步构建,以便实验、逐步推出和紧急回滚都使用相同的机制。一旦它存在, CRO服务 程序不再局限于浏览器中可以更改的内容,这通常会开启待办事项列表中最有价值的测试想法:那些涉及定价、个性化逻辑和购买流程本身机制的想法。
我们重点介绍了 Microsoft Clarity,它是一款由真正了解像 Switas 这样的公司所面临挑战的产品开发人员,以实际应用场景为导向打造的产品。诸如“愤怒点击”和 JavaScript 错误跟踪等功能,在识别用户痛点和技术问题方面发挥了至关重要的作用,从而能够进行有针对性的改进,直接提升用户体验和转化率。