大约几个星期前,同事找我帮忙看看一个关于类似于TODO/Action的手机UI如何设计。看到他们的正在工作的界面之后,我完全没有感觉:在TODO List界面上,零星的放着abc, def, dfsg之类的随意字符;顺着链接点进去,里面放着的是完全无法建立情感联系的blabla文字。我完全无法想象如何在这种场景下进行UI设计——软件本身只是生硬冰冷的工具,用户贡献的数据才是血肉之源。数据被粗心的对待时,作为开发人员你与用户之间基本失去联系。这种状况下我们如何能最起码保证设计是贴心的?

之前在自己开发的个人项目中也有不少需要用到人名的情况。当然不会采用类似于ABC之类的随意字符,但仍然采用了类似于张三丰、任盈盈之类的名字。发布之前用户都笑了:这是什么啊。把名字换成类似于李键、赵文斌(如有雷同纯属巧合)之类的名字之后,用户开始更为慎重的对待这个系统。

设计师在这方面做得很好。他们会很耐心的抽象出一些典型的用户(Personare),取个典型名字,放到真实的业务场景中,所用的词汇和数据看起来几乎跟真的一样。而程序员则在这方面疏于修炼——大多数仍然满足于仅仅将功能完成。一些更为惫赖的公司则索性把开发阶段的产品截图放到自己的产品介绍中,随处充斥着客户姓名是张三、一张机票100.00元、留下了一段内容是abcd123的留言等等截图。用户在看到这样的粗糙的车间半成品的时候,他们如何能够想象这个软件能够与自己真正的业务过程集成呢?

软件是给人使用的。从软件构建到软件递交到用户手中的时间应当越短越好。真实数据——作为最直觉、用户应该最关心的部分,却经常被开发人员忽视,而这部分是开发人员最直观了解用户如何使用系统的途径。如果你无法想象真实的数据,很大程度上意味着你根本不了解你的用户。

PS. 在准备给学生的作业中,我专门查找了国家农产品的价格数据库,以及最近的购物小票,以期给学生更为真实的开发体验。构建计算机思维与自然界的联系,构造更有用的软件,从身边的数据开始,应该是最简单的切入点吧。