我正在开发一种易于使用和设置的产品,竞争主要需要很长的设置时间,在某些情况下甚至需要为每个客户定制解决方案。我们的应用程序的一部分现在正在根据客户请求进行扩展,看起来我们需要使其非常灵活,以便每个客户都可以对其行为方式进行大量控制。问题是我不想让系统过于可配置,因为我相信这会使学习和使用变得更加复杂。我还担心它会为有人为自己搞砸事情打开大门,有点像给他们一把枪,尽管我实际上并没有为他们指指点点。
有没有其他人面临过将权力交到用户手中的类似困境?你是怎么解决的?结果是什么?
我正在开发一种易于使用和设置的产品,竞争主要需要很长的设置时间,在某些情况下甚至需要为每个客户定制解决方案。我们的应用程序的一部分现在正在根据客户请求进行扩展,看起来我们需要使其非常灵活,以便每个客户都可以对其行为方式进行大量控制。问题是我不想让系统过于可配置,因为我相信这会使学习和使用变得更加复杂。我还担心它会为有人为自己搞砸事情打开大门,有点像给他们一把枪,尽管我实际上并没有为他们指指点点。
有没有其他人面临过将权力交到用户手中的类似困境?你是怎么解决的?结果是什么?
我通常不喜欢认为所有用户都是愚蠢的,但有一条规则仍然可以应用:
如果你给他们机会,他们会打破它
现在由你决定是否赋予他们做潜在愚蠢事情的能力。或者更好的是,开发它以便当他们做他们所做的愚蠢的巫术时,它可以优雅地从错误状态中恢复或恢复。
我强烈推荐你阅读 Joel 的Controlling Your Environment Makes You Happy,它可以被描述为关于用户界面设计的一篇论文,但它实际上是关于可用性的,并且融入了健康的心理学。
我指的部分是Choices:
每次您提供一个选项时,您都是在要求用户做出决定。
这是我非常同意的。许多开发人员、产品经理等采取简单的方法,他们没有弄清楚用户真正需要什么,而是给他们一个选择。您可以在 Clearcase 或 PVCS 等企业过时软件中看到这一点,其中有很多选项——其中 90% 是你永远不会改变的——这表明设计师试图为所有人提供所有东西,而不是做一两件特别的事情出色地。
相反,它只是做了很多糟糕的事情。
保持简单,遵循惯例,不要用无意义和不必要的选择压倒用户,并使软件表现得像普通用户所期望的那样。仅此一项就可以使您与许多其他产品区分开来。
我个人喜欢 TurboTax 模型(http://turbotax.intuit.com/)。在创建纳税申报表时,我会得到一个简单的、像五岁一样告诉我的向导,它会引导我逐步完成整个过程,但我可以随时跳出该过程并使用更高级的功能,稍后返回该过程。
让您的用户在 80% 的时间里都可以轻松、简单、整洁地做他们将要做的事情,但要让他们有能力故意超越常规。
您的问题的有趣时机。在美国,这是所得税周。填写 ol' 1040 和相关的子表单应该让我们对用户所忍受的有所同情。
我学到的教训是:
只问与用户域相关的问题;避免与软件系统有关的问题;如果您可以得出答案或提出最可能的答案,请这样做。
将相关问题放在一起(只要它们通常由同一个人使用最有可能在同一地点和时间获得的数据输入,这是这些目的的相关定义)。
使其支持增量输入。输入他们拥有的数据应该很容易,并在其余数据可用时推迟完成。
显示状态有效性和完整性。清楚地表明他们离拥有可验证的数据还有多远。
使其可中断。确保可以中断流程、离开应用程序、返回并从中断的地方继续。
是的,编程更难。接受它。
至少有两种方法可以构建好的软件产品:
专注于一组狭窄的功能,并很好地实现该功能。
将您的系统设计为可定制的(理想情况下,通过脚本编写)。如果您正确地完成了基本系统,则很容易在定制层之上提供基本的、没有选项的、只做我想要的功能。
不幸的是,还有很多方法可以创建一个糟糕的软件产品。
您的问题意味着您可以提供灵活的解决方案或使其万无一失。
我不会那样说的。对我来说,这是一个用户期望的问题,首先的问题是:如何在不破坏应用程序的情况下满足所有重要的用户期望(即使它们相互冲突)?
例如,具有菜单、面包屑导航、站点地图和搜索的 Web 应用程序提供了五种不同的方式来查找您正在寻找的内容以及如何去那里。这样,大多数用户可以快速轻松地找到他们期望的功能,因此对大量文档的需求实际上可能会减少。
因此,答案可能是提供几种不同的精心选择的方法来解决一项特定任务,同时每种方法都可以独立进行简化以避免用户错误。
当使用sensible defaults时,我取得了巨大的成功,并且作为用户最快乐。换句话说,让最常见的用例变得简单(甚至更好,免费),但让用户能够在情况需要时跳出该用例。
答案在于您的最终用户是谁。我曾经编写被专业体育教练使用的软件。虽然这些人确实擅长他们所做的事情,但他们几乎不精通计算机使用,因此我们的可配置性保持在最低限度(至少就 GUI 中可以完成的事情而言)。
另一方面,如果您正在与高级用户打交道,那么添加选项通常不是一件坏事,只要它们不是侵入性的。
这完全取决于谁会得到它们。
阅读 Jeff Atwood 的《培训您的用户》 。这是一篇很棒的文章,有一些非常有用的链接。
我喜欢 Firefox 的做法。基本选项可以在选项菜单中访问,其余的都在 about:config 下。因此,如果您需要,您将拥有一个简单的界面和令人难以置信的灵活性。