为什么有的软件那么难用

软件用来满足用户的某种需求。我使用京东购物,用微信聊天,用Keep来辅助健身。

它们之间有明显的区别,我不会用京东和客服聊天消磨时光,也不会在Keep上找蛋白粉,也许我偶尔会在微信里买点东西,但当我有明确的购物需求时还是会直接打开京东。

这样做的原因是,京东擅长让用户购买到心仪的商品,微信擅长维系用户的社会关系,而Keep则是一名免费的私人健身教练。他们在一个领域内做得优秀。

这种优秀是从何而来?购物、社交和健身,每一个简单的需求背后不只是单一的行为。用户想购买的商品众多,不同类型的商品需要不同的流程来服务。购买电子产品需要提示用户是否选择额外的保修服务,而购买境外商品则需要用户填写报关信息。仅仅改变单一的变量就引起流程性的区别。用户行为的复杂性不只是改变一两个变量那样简单。因此软件提供许多流程来服务用户。

想一想,你之前是否明显意识到买手机和买书是两个不同的流程?无论买什么你都可以用相同的方式找到想要的商品:搜索名称,浏览分类列表,或是查看订单记录。软件不会要求你一开始就明确告知你要使用哪种流程,这不是用户的责任。软件需要在恰当的时候引导用户提供一些有点特别的信息,从而顺利满足用户的实际需求。

假如将软件系统比作楼房,而用户要来这座楼房中拜访朋友。优秀的软件系统就像是现代化的摩天大楼。用户在电梯间可以选择不同的电梯,不管用户选择的是观景电梯,快速电梯或者是自动扶梯,他都可以顺利的到达朋友的房间。而糟糕的软件系统就像一座座独立的房屋,它们层层叠叠交错在一起,房屋之间用管道、绳索和梯子连接。每个房间都有许多不同的门,虽然门上写了精心设计的提示语,但用户总是在做选择。虽然到达朋友家有许多条路,但只要你走错一道门就可能要多花上半天的时间才能到达。当然,也许你会在路上碰见另一个你多年未见的老朋友,甚至和他推杯过盏。但那时,你早已忘记自己开始来这的目的。

糟糕的应用只是在堆砌功能,它的确能满足用户的种种需求。但用户需要非常聪明,并且思维清晰,明确知道自己的目的。在刚刚进入的时候就要做出正确的选择,告诉软件系统自己要做什么。这时软件会将用户带入一个房间,让用户在里面指出自己要拜访哪位朋友。接着又被带到到下一个房间登记信息,最后在财务室交完钱。这时软件会告诉用户:恭喜你!你成功预约了你的朋友,现在你可以去会客厅等他,或者从身后的门离开。虽然拜访朋友都要经历这几步,但是途径的每个房间都不尽相同。它们虽然有着相似的功能,但是房间内的装潢各异。而且有的房间是推拉门,有的是旋转门,有的是自动门。如果你问:为什么不能用同样的房间呢?毕竟它们的功能差不多。软件设计者会说:当然不行,毕竟拜访的人不同,虽然功能差不多,但我设计的房间是最适合拜访806房间的客人的。而且我们最好不要同他人公用房间,万一806房间的客人想要让他的来访者做一些特殊的活动呢?

当一个软件系统有许多设计者,每个人负责一个小模块,各自为政。每个人都只考虑自己的一个流程,不会做统筹的规划。每个人都希望自己流程的门被放在离大门最近、最显眼的地方,因为他认为自己的客人最重要,是最受用户喜爱的。

而我,打开了其中的几扇门,参观了风格各异的装潢,却发现在这里找不到我要拜访的朋友。只好打电话给朋友改在旁边的大厦见面。

你可能感兴趣的:(为什么有的软件那么难用)