第1章 为什么要提高软件的易学性和易用性

在汽车被发明并应用之后的最初一段时间里,除了比一般的交通工具快一些之外,实在看不出它还有什么优点。很多的汽车在发动时需要使用摇把,经常把人的胳膊打伤。不仅如此,它还经常会出现各种各样的故障,以至于在成为司机之前,你一定要学会如何修理汽车,否则你一定开不了多远。不过尽管如此,人们还是非常想拥有一辆汽车。毕竟,相比于它给人们所带来的前所未有的好处,那些使用中的不方便之处都是可以忍受的。

而在21 世纪的今天,汽车的情况就完全不同了。一般人在经过几十个小时的学习之后都可以正常驾驶。除此之外,除了提供最基本的“快速地把人或货物从一个地点运送到另一个地点”的功能外,今天的汽车还提供了很多可以使人们更加舒适和安全地驾驶的特性,例如自动落下车窗安全锁、自动提示安全带未系好、环境光变暗时自动开启照明灯、自动换档、方向盘转向时的液压助力、照明距离根据车速自动调整,等等。很多这些新的特性已经成了当今汽车的一个必需的配置,因为如果不具备这些特性,消费者是根本不会购买的。

照相机的发展和汽车类似。早期的相机只有非常专业的人才会使用,因为你需要掌握有关摄影方面的专业知识。例如,你必须根据环境光线来设定正确的曝光时间和光圈大小,并且你还需要调整好焦距,否则照出来的照片要么过暗,要么过亮,要么模糊不清。然而在今天,照相机的使用非常容易和简单,你只需把镜头对准被摄物体,确保能够在取景框或液晶显示屏上看到它,然后按下快门即可。照相机会自动设置曝光时间、光圈大小、感光度等参数并自动对焦。有些相机提供了人脸识别甚至笑脸识别功能,能够优先对人脸进行聚焦。还有些相机提供了防抖功能,就算是你的拍照水平不高、在按下快门的时候手抖了一下,相机也能保证画面不会发虚或模糊。

实际上,汽车和照相机的例子映射出了一个普遍性的所有产品在各个不同时期的发展规律。那就是,在一种产品从最初产生直到快速成长的这段时期内,由于其提供了前所未有的新功能,能够真正地解决人们的一些问题或需求,因此功能是产品发展的重点,这表现为所有的厂家都在想方设法增加功能或增强功能。在用户方面,购买产品的人主要是一些早期接受者,它们对于新产品具有很大的热情,愿意付出很大的精力来学习如何使用产品,并能够忍受产品中的一些缺陷。而到了产品的成熟期,很多的生产厂家都掌握了相关的技术,它们都能生产出具有相似功能的产品。相应地,购买产品的用户也已经从最初的早期接受者变为了大众群体,因而此时产品竞争的焦点不再是功能,而是如何使得人们可以更加容易和方便地使用产品,以便能够使得更多的人乐于购买和使用。

计算机产品的发展经历了同样的过程。在计算机被发明后的最初的一段时间内,它的主要用途是用于复杂和耗时的科研计算,因此计算机主要被用于国防和科研机构。在一般人的印象中,那个时期使用计算机的人都穿着白大褂,坐在专门的计算机房中来操作电脑,给人一种神秘莫测的感觉。

随着技术的发展,计算机开始逐渐应用于一些对于信息处理和数据保存有着大量需求的商用环境,例如各种大型的金融机构、政府机构等。不过即使到了这个时期,它的应用也很少,主要仍是以一些后台的运算和处理为主。

很显然,由于以上这些有限的应用环境,能够亲手使用和操作计算机的人非常少。这些人很多是专业的计算机操作员或程序员。对于他们来说,计算机是他们赖以谋生的工具,而不是一件普通的生活中的物品,他们在工作之前都经过了长时间的专门学习和培训。因此,软件是否容易学习和使用的问题显得并不是很重要。

然而,随着计算机硬件技术和网络通信技术的发展,个人计算机和互联网得到了迅猛的发展,计算机很快普及到了人们的日常生活中,各种软件也极大丰富了。不仅如此,液晶显示技术和嵌入式CPU的广泛应用也使得越来越多的电子设备看起来就像是一台小型的计算机,我们在使用这些设备时其实就是在使用其内置的软件,例如手机、电话、复印机、冰箱、洗衣机、电视机、数码相机、自动取款机等。

这些最新的发展意味着,和计算机发展初期时的情况相比,软件的用户发生了根本性的变化:计算机对于大部分人来说只是一个普通的东西或产品,人们只是把它当作一种工具来达到自己的目标。同时,现代人的生活节奏越来越快,人们越来越没有耐心和时间来系统地学习如何使用软件,人们只是想尽快达到自己的目的就足够了。

另外,随着软件产业的发展和软件开发技术的成熟,软件开发效率大大提高,人们可以很快地开发出具有丰富功能的各种软件,因而具有同样或类似功能的软件数量越来越多。想想以下这些软件:办公软件、聊天软件、电子邮件软件、开发工具软件、浏览器软件等,每种类型的软件在市场上都存在着由不同厂商提供的很多种产品。在功能差不多的情况下,人们当然选择那些易学易用、并且操作方便高效的软件了。

提高软件的易学易用性不仅仅给用户带来了好处,软件厂商同样会从中受益;这是因为易学易用的产品可以减少客户支持服务,降低产品使用出错的可能性,从而最终减少维护费用。

综上所述,软件的易学易用性将会变得越来越重要,它对于人们选择和购买软件的影响越来越大,应当成为软件设计中的重要问题了。