入职轮盘:每天删除我们的员工账户
内容提要
本文探讨了自动化测试在软件开发中的重要性,尤其是在复杂功能和遗留代码的情况下。尽管开发新功能有时比测试更容易,但推迟测试可能导致技术债务。作者分享了Graphite团队通过每天随机删除员工账户进行“狗食测试”,以发现产品入门过程中的问题。这种方法提高了用户同理心并发现了多个bug。
延伸解读
自动化测试的盲区与狗食测试的互补
文章指出,自动化测试对复杂功能和遗留代码至关重要,但并非万能。Graphite团队发现,产品入门流程因涉及OAuth循环、异步加载等难以自动化测试,且传统狗食测试因只体验一次而效果有限。他们通过每天随机删除员工账户,强制团队反复经历入门流程,从而发现自动化测试遗漏的未知问题。这表明,狗食测试与自动化测试并非替代关系,而是互补,共同提升产品质量。
删除员工账户:一种高成本但有效的狗食测试
Graphite团队每天上午9点随机删除一名工程师的Graphite账户,包括令牌、过滤器和上传的GIF等。尽管这会给员工带来不便,但平均每人每月仅被删除一次,却能有效暴露入门流程中的尖锐问题。这种方法在关键且难以测试的环节创造了持续的用户同理心,并已发现数十个bug。文章强调,这种做法的成本在于员工需要重建账户,但收益是提前发现并修复问题。
适用性与局限性:并非所有产品都适用
文章承认,删除员工账户的方法并非完美。员工重建账户时仍在现有组织内,会跳过新组织首次设置时的长时间同步等环节。此外,并非所有产品都适合这种激进做法,例如Instagram或Google Docs,因为账户中可能积累大量用户创建的内容。但对于Datadog、Vercel、Hex、Superhuman等用户数据在账户删除后仍能保留的服务,每月删除员工账户是可行的。
战略性地承担技术债务与测试的平衡
文章提到,开发新功能有时比测试更容易,团队可能因业务紧迫性而跳过自动化测试,这相当于战略性地承担技术债务。这种债务允许快速验证想法,但需后续偿还。然而,推迟测试是滑坡,需谨慎权衡。Graphite团队在持续投资自动化测试的同时,采用狗食测试作为补充,以捕捉自动化测试无法发现的未知问题,并培养团队的产品见解。
Q&A
自动化测试在软件开发中有什么重要性?
自动化测试在软件开发中至关重要,尤其是在复杂功能和遗留代码的情况下,可以避免回归问题并提高代码质量。
Graphite团队是如何进行产品入门测试的?
Graphite团队通过每天随机删除一名工程师的账户进行测试,以发现产品入门过程中的问题。
推迟测试可能导致什么后果?
推迟测试可能导致技术债务的积累,从而增加未来修复问题的难度和成本。
删除员工账户的做法有什么好处?
删除员工账户可以提高用户同理心,帮助团队发现并修复多个bug,从而改善用户体验。
这种“狗食测试”方法的局限性是什么?
这种方法的局限性在于,删除的员工账户仍然可以重建账户,可能无法完全模拟真实用户的体验。
为什么有些产品不能频繁删除员工账户?
一些产品如Instagram和Google Docs不能频繁删除员工账户,因为这些账户可能包含大量重要的用户创建内容。