敏捷开发流程中的质量控制:Feature Flag

本文探讨了在敏捷开发流程中如何通过Feature Flag实现质量控制,涉及其概念、使用者、工作原理和应用目标。Feature Flag作为数据驱动决策的一部分,允许团队在不干扰用户的情况下进行A/B测试、灰度发布和功能回滚。它涉及到产品开发的各个环节,包括PM、开发、测试和数据分析的角色。文章强调了Feature Flag的重要性,指出其在预防和减少bug影响、提高开发效率和数据分析方面的作用。
摘要由CSDN通过智能技术生成

现在都提倡敏捷开发,基本上已经成了现代软件开发的尤其是移动互联网app开发的标准模式。快速迭代、快速试错成了每个人开口闭口都在谈的东西,但是问题是,如何在快速迭代中保证产品质量,如何在快速试错的同时尽量避免你的“错”去影响到实际用户,以及如何知道是“对”还是“错”?实际上,这才是区分一个开发团队优秀与否的关键,如果只是求快,有大把外包公司排着队。。。

在Agile Development中如何保持质量以及如何快速测试功能是个复杂的话题,涉及到A/B test, User tracking, unit test, code review flow, CI及Analytics等等多个方面。在这里 鹅厂Turing Lab副总监 张力柯 先从一个概念的实施谈起:Feature Flag.

1)What is Feature Flag?

我们假设现在你的app已经完成核心功能,打个比方说你是一个交友软件能够用两个用户账号互相发消息了,现在你在考虑是不是要加入微信登录或者QQ登录,你不知道是不是两者都要还是只需要一个看起来比较简洁,或者是不是年轻人更喜欢QQ登录,或者要不要加个facebook登录看起来更国际范。。。这时候你很可能就需要实现Feature Flag并以此作为数据驱动的来源。

啥叫feature flag?也就是功能开关标志,顾名思义,很简单,无非是有个后台控制去开启/关闭某个功能。简单吧?然而,在开发/测试人员一天埋没在各种bug里面,一天在发布新版本上线时彻夜不眠时,是否想过其实你缺的就是个功能开关。实际上,Feature Flag在硅谷FLAGUAPS等一线互联网公司及大大小小startup的开发流程中,早已成为标配。这不仅仅只是为了开关某个功能,而是要在敏捷开发/快速试错/数据驱动决策这整个流程中不可缺少的一环。

首先来说数据驱动,这个词语已经流传了很多年,各家公司都号称自己是data driven. 那么到底是不是,很简单,看他们的产品和代码是否支持A/B Test. 如何看?很简单:一个新功能,能否只对Android用户开放而不对iOS用户开放?能否收集两天数据后别换版本,直接后台控制对iOS开放而对Android用户关闭?当然,这一般还会对用户群比例作出限制,这是另外一个细节,在这里先就不谈,大家应该对A/B test的概念不陌生。技术实施上可以复杂可以简单,但是区分一个团队是否是做到了data driven(或者拍脑袋driven),就要看A/B test是否普及。在国外FLAGUAPS等公司,A/B测试是任何新功能发布(哪怕改一个按钮位置)必须加入的环节。当然,这也可能是资本主义的糟粕。。。

至于Feature Flag,一个软件是由各种功能组合起来,那么对于每一个功能,理论上是应该能够随时开启或关闭的。这里又涉及到一个core flow的问题,就是一个软件的核心最基本的流程是可以没有关闭选项的,打个比方说微信的功能入口,对“看一看”这些功能在初上线的时候,是应该能后台控制关闭或开启,并能针对不同用户/设备/地域等进行控制,但对于聊天这个选项,是可以没有关闭选项的(这就看设计者的要求了,原理上唯一不能关闭的就是进入app,其它都该能够有开关选项)。

2) Who should be using feature flag?

必须强调一点,Feature Flag这个概念并非程序员专用,这实际上是个产品开发设

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值