delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

19 Aug 2006

蠢人是如何解决问题的?

以下场景纯属虚构,请勿对号入座。

技术:现在您的计算机名叫「COMPUTER-X5V89KP」,您需要我帮您做点什么吗?
客户:我需要让我这台计算机的计算机名叫「电脑」。
技术:很抱歉,这样做不太好,我建议您把计算机命名为「COMPUTER-X5V89KP」,这是因为您的计算机名中只能出现字母、数字和连字号(-),并且连字号不能出现在第一个字符的位置,否则可能会给您的使用带来困难……
客户(不耐烦,打断):电脑是你的还是我的?我就要让它叫「电脑」!
技术:好吧。

在我看来,这个场景中的这位技术人员简直就是十足的庸才,因为他只是一个了解一点技术,却没能帮助用户解决其技术问题的人。

我们来分析一下这位客户的需求,他的需求很简单,即以一个便于为自己识别的方式去看到这台计算机。但是,简单地这样做并不能满足用户的全部需求,因为这个名字同时还需要与网络上的其他计算机交互,这些计算机可能并不支持包含中文的计算机名,相反,这样的名字可能会给这些计算机带来各式各样的问题,因为这种做法为RFC所明令禁止。

一般来说,我们可以把客户分为两种:懂技术的和不懂技术的(我个人习惯上把半懂的也归于此类)。我们会发现,实际上和前一种客户讲技术细节,他们会觉得这令人厌烦,而和后一种客户谈论技术细节,多半又是对牛弹琴。因此,作为服务的提供者,最重要的任务是必须能够从用户提出的需求中找到如何正确地达到用户所要求的目标。计算机自然是用户的财产,但是我认为一个设计良好的UI,必须满足下面几个条件:

  1. 明确地告诉用户可以做什么,并为用户提供简单明晰的配置方式。使用这种配置方式的用户不需要有任何技术背景即可完成配置工作。
  2. 向用户提供「专业」的配置能力,即,用户可以通过配置「高级选项」和「默认以高级方式进行配置」来选择软件的功能。
  3. 在任何情况下,都不应允许用户执行影响互操作性的任何操作。如果必须提供一个输入框(而不是选项),就必须提供一个对应的转换机制,以便将用户需求转为不影响互操作性的形式。