易用性实际上是软件的相当重要的属性, 体现的是这个程序是否好使。如果程序不好使,人们就会趋于不使用它,无论它的设计与实现是多么精致优雅。
仔细想想,当人面对一个陌生的命令行程序会怎样?他之前没有任何关于这个程序的信息;那么,按照 linux 工具的约定,或许他会使用 --help, -h, man 等命令查看一下是否有该程序的使用说明;或者直接敲入程序名称看看出来什么。如果是前者,那么用户可能希望看到具体的示例,能够立即用到他所需要的场景里;如果是后者,他可能希望通过以往的经验来判断这个程序能做什么、该怎么使用。无论哪种情况,都应该提示该程序的具体说明、用法与选项。
再想想,当人面对一个陌生的软件会怎样?或许他了解过这个软件能拿来做什么,只是不知道具体该怎么使用,怎样发挥其真正的威力。或许他会试探性地看看软件的界面元素,点击若干个选项来尝试了解如何使用(对于软件而言,一般人不会有耐心看说明书的)。最好能将最重要的菜单和选项突出出来,告诉人们如何组合这些菜单和选项来完成需要的操作。
程序或软件,其实都是一种高智力活动的产物,而普通大众要使用这种产物,其实也是需要一定理解能力的,并不像程序员心里想的:不就是那样么,有什么困难的或不明显的呢!
提高易用性的途径如下:
(1) 用户不知道如何使用时,提供容易找到的帮助文档,并展示具体的使用示例,能够让用户快速地 Get Started ;
(2) 用户使用不当产生错误时,及时给予友好实用的提示,让用户能迅速理解和转向正确方法;
(3) 提供默认选项,让用户以最少的知识就能在常规场景下很好地使用;
(4) 尽可能与人们认知和操作习惯保持一致, 避免因为认知误解导致挫败感;
(5) 处理好细节魔鬼, 避免部分用户因为不同平台导致的细节问题而受挫,进而放弃使用;
(6) 通过界面设计提供流畅的美感,也可以潜在提升软件的易用性;
(7) 提供灵活的选项,让用户可以组合出更强大的功能。
以上是我作为一个软件用户所体会到的经验。然而,我是一名软件工程师, 是不能作为参考用户的。要提升软件对于普通大众的易用性,那么观察大众是如何使用软件的,在哪些地方受挫,分析为什么受挫,这些将对理解和提高软件易用性有莫大的帮助,可能远远比单纯地从书中获取产品设计知识与经验要更为重要。