神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。
编者按:在隔离期间,作者给5岁的儿子开发了一款迷宫游戏APP,通过儿子的不断反馈,作者对APP一步步进行完善。他为大家伙儿一起来分享了这样的一个过程及自己的感悟。本文来自Medium,作者Changhui Xu,原文标题“Can a 5-Year-Old Be a Good Tester?”
图片来源于 Unsplash | 摄影师 McKaela Lee on
数字原生代
你有听说过“数字原生代(digital native)”这个概念吗?
这个概念是用来指在数字时代出生并成长的一群人,比如我5岁的儿子。我的儿子从很小就知道iPad, Alexa, Google Home, Siri, Android,还有别的最新的科技。而且他在没有任何人指导的情况下,可以轻松驾驭这些产品或者软件,包括收发消息、安装和卸载新的APP。
在疫情隔离期,全家人共处一室,很多小孩子会让家长抓狂。比如我5岁的儿子就特别活跃,只有让他画画或者拼拼图的时候,家里才能安静一会儿。
有一天,我决定用以前学过的编码给孩子做一个迷宫益智游戏。我用HTML做了一款简单的迷宫APP。APP里面会呈现一个矩形的迷宫,玩家也可以按上下左右操作键来走动,然后找到出口。这款APP不像应用商店里那些游戏程序,没那么多乱七八糟的广告,很适合我儿子。后来我根据儿子的反馈将这款APP不断改进,并写了一篇心得《如何创建迷宫应用游戏》。在改进的过程中,我儿子的反馈给了我很多意想不到的启示。
启示1:安装控制按钮
一开始我让儿子在我的电脑上玩这个游戏,他很兴奋,小手在键盘上摆来摆去,很快就学会了用键盘做相关操作。但是我没法让他一直霸占电脑,所以我又在iPad上装了这个游戏,让他在平板上玩。很快他就发现了问题:平板上面没有真正的键盘,操作起来很不方便。我儿子就问:“你可以给这个游戏装一个控制按钮吗?”
很快我就意识到,大多数在平板上玩的游戏都是没办法用键盘的。我问儿子:“你希望用滑动的方式控制小人吗?”
儿子说:“不喜欢,每滑动一次只能前进一步,太慢了。”
“好,那我们就做一个控制按钮。”
然后我开始在CDN链接里找图标。过了一会儿,我儿子拿着iPad问我:“你在找这些东西吗?”
我看了一下:“对!我正在找这些Emojis!”我对儿子的反应非常惊讶,他已经知道iPad上有虚拟键盘,并且知道键盘里藏着很多生动可爱的表情包。
“谢谢你给我展示这些表情符号,它们的名字叫Emojis。”我告诉儿子。各种各样的表情符号在不同的浏览器或者系统里效果会有略微不同,但是很多表情是全世界通用的。所以说,如果我用表情符号做控制按钮,那么所有人都会觉得一目了然。我按照儿子的建议做了下面这个控制按钮。
我在迷宫中设置了控制按钮,按钮的图标来自Emojis | 图片来源于Medium
我从中学到了什么呢?
首先,我们在开发一款软件的时候要考虑到它的实用性。如果一款软件只能在带着鼠标和键盘的PC端使用,那么更喜欢用平板的用户就不会有机会接触这款软件了。所以在测试软件的时候,要把可用性纳入考虑,列一个清单,把所有出现的可用性问题一一解决。
其次,表情包是一个很好用的工具。现在各类平台都推出了自己的表情包,有时候我们大家可以用表情包表示共通的意思。想一想吧,我5岁的儿子在无人指导的情况下都知道如何使用表情包。表情包的含义全在表面,所有人看到的第一眼就知道它是啥意思。
启示2:添加撤销按钮
当我的儿子越玩越熟练,他开始挑战更难更大的迷宫,这些迷宫更难走出来,也更容易犯错误。一旦他发现了自己转错弯了,就要一步一步返回,直到到达正确的岔口。很快,他就对这种手动撤回厌倦了。
“爸爸,返回的过程麻烦了,你能不能让它快点返回呢?”
“我知道了,让我想想怎么解决。”
在听到儿子的这个请求之后,我添加了一个撤回按钮(如下图所示),一次性可以撤回五步。有了这个按钮,儿子可以更加大胆地尝试不同的路线,如果路线错了,他可以很快返回。对此他非常开心。
我在控制键中间加入了一个撤销按钮 | 图片来源于Medium
我从这件事又学会了什么呢?
一个小小的撤回按钮就可以让用户感到满足。良好的用户体验设计(UX)可以抵消他们没有通关的沮丧感受。这就是怎么回事那么多开发团队都很重视使用者真实的体验测试,并且分析反馈的结果不断改进,以维持客户的忠诚度。
在我开发的这个APP里,功能非常单一,就是走迷宫。在真正的使用者真实的体验测试中,得到的数据和反馈更加复杂,也更有意义。一个优秀的使用者真实的体验设计师会帮助设计团队了解用户和产品之间的互动关系是否顺畅,也会评估影响互动效果的各类细小元素。
错误报告1:输入错误
后来我的儿子发现,他可以自己调整迷宫的大小:他开始在“行”和“列”两栏输入各种各样的字母、符号甚至负数,但这两栏本来应该输入数字。在儿子的各类尝试下,我的APP终于不堪重负、最后奔溃了。
我5岁的儿子举着iPad向我抱怨,说迷宫游戏卡死了。
这让我想起了开发团队会遇到的经典问题:你以为用户会怎么做VS用户实际上会怎么做。我承认在这一点上是我疏忽了,我从来就没想过一个5岁的小孩会在本该输入数字的地方输入别的内容,从而把我开发的程序搞崩溃。我本来可以用滑块的方式代替手动输入数字的,只是当时没想到。
在考虑了一下之后,我觉得还是需要让儿子看到数字(而不是滑块),因为数字可以直观地反映出一个迷宫的困难程度,让他自己做选择。所以我没有添加滑块,而是增加了一些输入验证程序,防止APP再次崩溃。
我从中学到了什么?
首先,我儿子的经历是使用者真实的体验的一部分。我们都有必要了解用户和产品交互时的感受如何。在他们真正开始使用产品之前,我们永远不知道用户会以怎样的方式使用这些产品。而且,不要低估用户把程序搞崩溃的能力,一个5岁小孩就能做到这一点。
其次,我们应该控制输入的各类元素,帮助用户简化输入过程,防止输入错误。如果出现错误,我们也应该友好地告知用户出现错误,而不是让他们面对一个瘫痪的画面。
错误报告2:运行过程中的现实问题
我儿子非常痴迷数字,常常给我们“炫耀”他知道的那些天文数字:100,1000,10000000……当迷宫游戏只能输入数字而非字符之后,他决定尝试一下输入天文数字,看看会生成怎样的地图。读者大概已经猜到了,我儿子再一次把APP搞崩溃了。这个游戏的代码是我两年前写的,这个代码最多可以支持60 x 60规格的迷宫。如果超过这个规格,迷宫就会出现一行“RangeError:超过迷宫最大限度的规模