前几天,我把 PickTests 最近的开发过程发到了 Indie Hackers。
PickTests 是我正在做的一个在线能力测试网站。目前上线了 6 个测试,包括反应时间、瞄准训练、序列记忆、数字记忆、多目标追踪和斯特鲁普。
帖子后来出现在了 Indie Hackers 首页的 Build Board。评论慢慢多起来,有人问我为什么还在坚持使用原生 JavaScript,有人提到手机上的触控问题,也有人建议保存最近成绩和个人最好成绩。
其中一条评论问:
用户完成一次测试以后,为什么还会回来?
这个问题刚好问到了我一直有些发虚的地方。
PickTests 中文首页很早就写着一句话:
重复测试、比较成绩,看看自己有没有进步。
我一直觉得这句话挺符合这个网站。
用户不需要注册,也不一定要和排行榜上的人竞争。今天测一次,过段时间再回来,看看自己有没有快一点、记得多一点,这就够了。
但当时的页面其实没有把这件事做完整。
用户完成测试,看到一个结果,然后关闭网页。下次再打开,页面又从头开始。网站允许用户重复测试,但比较这件事,基本还是靠用户自己记。
成绩记录也不是看到这条评论后才想到的。
之前做结果页时,我就考虑过个人最好成绩和最近记录。只是每次准备动手,总觉得先做下一个测试更划算,于是这个功能一直往后排。
那条评论没有突然给我一个答案,只是让我又回头看了一遍首页上的那句话。
既然我已经写了“和自己比较”,页面至少应该把上一次的结果留下来。
八轮有点长,五轮也不一定适合所有人
我先动手修改的是 PickTests 里的 反应时间测试。
这类反应时间测试的流程很简单:页面等待一段随机时间,信号出现后,用户立即点击,最后得到一个以毫秒为单位的成绩。
第一个能运行的版本并不难写。
真正让我反复修改的,是一次反应速度测试到底应该进行几轮。
之前的版本设定为 8 轮。
我当时的想法是,只测一次容易受到走神、误触和设备状态的影响。多测几轮,再取平均值,结果会稳定一些。
这个理由没有错,但我自己完整跑过几次以后,也能感觉到 8 轮有点长。
只是临时点进来试一下的人,做到一半可能就不想继续了。认真完成一次以后,也未必马上愿意再来 8 轮。
我在 5 轮、8 轮和 10 轮之间来回想过,后来发现,这个问题可能本来就没有一个适合所有人的数字。
所以我没有继续选,而是把两种情况都留下来。
只想快速试一下,可以选择单轮测试;想得到相对稳定的结果,可以完成 5 轮,再看平均成绩和每一轮的结果。
这不是什么很大的功能。
只是不用再要求每个打开页面的人,都按照同一种方式完成测试。
先让页面记住一点东西
轮数调整完以后,我开始处理成绩记录。
现在重新打开页面,还能看到最近的测试结果、最快成绩和平均成绩。记录只保存在当前浏览器里,不需要注册,也不会要求填写邮箱。
我没有做账号系统。
对现在的 PickTests 来说,那样太重了。用户只是打开一个测试,点几下屏幕,看看结果,没有必要先注册、验证,再记住一个密码。
本地记录当然也有局限。
它不能跨设备同步,清除浏览器数据以后也会消失。但至少用户第二次打开页面时,不用再凭印象猜上一次测了多少。
首页上那句“和自己比较”,也不再完全依赖用户自己的记忆。
这些记录会不会真的让用户再次回来,我现在也不知道。我没有足够的数据证明,增加一个历史最好成绩,就能解决回访问题。
只是从产品本身看,如果网站说的是“和自己比较”,页面就不应该每次打开都像第一次见到用户。
第 7 个测试还没开始
做到 6 个测试以后,我原本已经开始考虑下一个页面了。
打字速度、点击速度,还有其他记忆和注意力测试,都可以继续往下做。
增加一个新测试的变化很直观。首页会多一张卡片,网站看起来更丰富,也会多一个可能被搜索到的页面。
回头修改已经上线的页面,没有这种爽感。
调整轮数、整理结果页、处理手机上的点击区域,这些事情很难写成一条显眼的更新日志。用户使用顺利时,可能根本不会注意到背后改过什么。
但我把现有的 6 个页面重新点了一遍,发现它们之间还有不少差别。
有的测试结束后立即显示结果,有的会多停留一会儿;有的结果页解释得比较完整,有的主要留下一个数字;部分页面在手机上已经比较自然,部分页面还带着桌面端的操作习惯。
单独打开一个测试时,这些问题都不算严重。
连续使用几个页面后,会感觉它们更像 6 个分别完成的小项目,还没有完全连成一个整体。
所以第 7 个测试暂时还没有开工。
接下来先继续整理已有的页面:哪些成绩值得留下,手机上还有哪些地方不顺手,不同测试的结果页能不能尽量保持一致。
什么时候开始做第 7 个,我现在还没定。
也想听听大家的看法:对于这种很轻的在线测试,什么东西会让你愿意第二次打开它?个人最好成绩、历史记录、分享结果,还是别的东西?