如果你曾经做过程序员,即使只做了很少的一段时间,你毫无疑问的会发现这样一种令人无奈的现实情况….


       你在兴奋的为你的客户实现一个新功能。这个功能在业务逻辑上超级的复杂,但页面上却是非常的简单。这需要做大量的工作。

       在付出了巨大努力后,你刚好在用户要求的最后期限前完成了任务。开发出的新功能在业务逻辑上无懈可击,但界面没有来得急收拾,显得有些粗糙。这没什么,因为这是最容易处理的部分,也是最不容易出错的部分。

       你拿着做好的系统去跟客户演示。他们立即开始在UI上挑毛病:“这一列没有对齐”,“这个名称应该用粗体”,等等。就在他们还有真正的试用实际功能前(你的软件真正体现价值的部分),你可以看出,他们对你的劳动成果已经失去激情了。

       最终,所有的功能都运行良好,除了界面上一点瑕疵。你知道这是一个巨大的成功,所有功能都符合要求,但客户并不是很兴奋,你不由得感觉像是被泼了一盆冷水。

       那么,产生这样的感觉是正常的吗?也许。但这也不意外。大多数有经验的程序员都知道,从客户的视角看一个软件产品的质量和完美程度,用户界面承载着巨大的不相称的份量。这是事实,其中一个原因要归咎于叫做光环效应(Halo Effect)的现象。

       简言之,光环效应指一种内在的认知倾向,它会让我们相信,如果一个事物给我们的初始印象很好,那它余下的部分也都会很好。例如,大量的研究显示,对于一些外表好看的人,人们更容易对他们产生一些正面积极的印象(例如聪明,有创造力等等),即使人们对他们除了外表外知之甚少(或完全不知)。

       还有另外一个来自Solomon Asch的著名的实验:想象有两个人在竞争一个职位,你对这两个人的了解只有一些描述。A人是….

       聪明,好学,沉着,不苟言笑,悲观,无大志

       …而B人是…

       无大志,悲观,不苟言笑,沉着,好学,聪明

       凭第一感觉,你会雇用谁?你的直觉很可能会把你引向A,但如果你仔细看,A和B其实是完全一样的,只是描述他们的词的顺序相反。为什么我们会对它们产生不同的认知?

       是这样的,在阅读了一、两个特征描述后,我们已经开始对这个人形成了一个大致印象。后续的描述,如果跟之前的特征一致,它们会加深我们的初始印象,如果跟之前的有冲突,那我们会忽略它(或至少认为它们不具重要性)。换句话说,我们的大脑喜欢统一连贯,忽视不一致不和谐的东西。

       回到我们软件开发的世界,现在我们更清楚了为什么用户界面上不重要的瑕疵(例如拼写错误)会严重的影响客户的我们开发的软件的整体质量甚至价值的印象,从某种程度上看,客户的认识过于草率,或很不公平,但人的大脑就是这样看问题的。

       本质上,用户界面就是我们的软件应用的物理外表,正因为如此,用户就会用它来形成对我们的整个应用软件的初始印象。一旦这种印象形成,很难重新塑造。如果用户界面是有组织的,干净的,让人愉悦的,用户就会自然的认为它背后的系统也是如此;反之亦然。

       所以,不要只关注于后端服务而特意的不重视前端界面——尤其是在与客户接触的早期、你们还没有建立互信的基础的时候——虽然UI是很容易实现的一部分。这没有对齐的列虽然只需要15秒就能纠正,但从用户的眼中的软件质量标准看,它是和整个系统水平是密切相关的!