首页 > 代码库 > 系统设计的一些心得

系统设计的一些心得

      最近阅读了《设计心理学》收获颇多,书中用大量实例介绍了很多糟糕的设计,其实在生活中我们经常使用一个新东西的时候容易犯一些错误,其实那并不是错误,其实是产品没有设计好,比如我刚给孩子买的玩具摩托,我这种专业搞设计的人员都组装了2个多小时,换成我老爸来不知道啥时候才能组装出来,这个玩具的组装说明搞的确实太烂了,体现在图例不明显,模块匹配度也不好,不容易辨别,这一点的意识很重要,我之前也是跟大多数人一样认为自己搞不定的东西,人家学会使用了就感觉挺丢脸,其实并不是这样的,是因为这个东西的设计有问题,作为一个产品经理一定要有这种设计的意识,去发现产品设计中的问题,前一阵项目上采购的扫描棒更让我郁闷,我照着那一大张说明书搞了半天,说明书上文字密密麻麻都没有提到点上,等我把驱动和软件都装好之后,怎么搞都搞不清楚扫描棒扫描之后会怎么保存,用它自带的软件也是不行,最后翻到反面才发现有一行小字显示出要提前打开一些工具比如word、画图工具,就是它需要一个容器,扫描之后自动复制到了粘贴板上了,其实设计者在设计的时候把这一点忽略了或者想当然了,其实这一点最重要,我相信大部分都会在这里卡壳,以上例子是我在生活中经常遇到的问题,现在我释然了,原来大部分的生活产品都是设计者没有设计好,结合我现在做的软件产品,那问题就更多了,这里结合本书的设计原理总结一番!

      1、应用储存于外部世界和头脑中的知识。如果系统中的某个功能所需要的知识可以在很多外部的网站中找到,例如链接的使用,如下图:

 

用户普遍认知的是蓝色代表链接,那么系统中把某些标题采用蓝色,用户就铁定就知道点击这玩意肯定能出详情,另外对于点击、点击中、点击后大家都有默认的认知,因为这东西大家在上网的时候已经成了潜规则了! 

     2、简化任务的结构。在进行产品设计时设计人员应该尽量把复杂的功能简单化,比如能一屏显示的就不多屏,利用新技术来简化功能而不是增加复杂度,这里我们可以拿京东、淘宝的截图来做说明,如下图:

这个采用新技术把商品分类的复杂程度有效的简化,并给用户很好的反馈,用户把鼠标移动到大类上就出现了小类,用户完全在一屏上做分类查找;另外对于一些复杂难记的流程可以简化,比如咱们在淘宝上买一件商品,我们不可能搞清楚所有的流程,淘宝就用导引的方式给用户指引,而且非常贴近于自然的认知,如下图:

用户一看就知道所购买商品现在在什么阶段,流程非常清晰!

      3、注重可视性,消除执行阶段和评估阶段的鸿沟。这是最重要的一条,设计人员注重可视性,用户在使用系统功能是才知道执行了什么操作以及如何操作,而且知道操作之后的结果,设计人员应该注意操作行为与操作意图之间的匹配,比如我们经常设计的删除功能,其实很有必要在按钮上加一个删除的图标,比如红色的叉号小图标,然后在点击删除操作的时候,明确的提示出您具体在执行删除操作以及删除的是什么,另外删除的后果是什么,给用户一个确认并提供反悔操作!还有按钮的设计,如下图:

按钮应该至少有4种状态效果:点击前鼠标未放在上面时的状态、鼠标放在上面但未点击的状态、点击时状态、不能点击时状态,这种可视性也非常好,另外按照使用频度(重要程度)从左到右排列。

      4、建立正确的匹配关系。使用系统功能时所显示出的状态要与用户所期望的状态一致,也就是说用户需要得到及时的信息反馈,并且以用户理解的方式表现出来,有些系统的登录就没有遵循好这一原则,有时我们忘记了用户名或者密码中的一个,我们点击“登录”之后往往提示“用户名或密码错误!”,到底是哪个错了?我们希望知道具体是那个错了,有的系统异常没有处理好,还报出了系统的错误代码,出现了开发人员才能看懂的代码,这都没有用好自然匹配关系,另外讲一个比较好的自然匹配比较好,比如说统计整个山东省17地市的某项指标,我们用列表就没有用地图来显示效果好,如下图:

这样对于用好来说一目了然,点击具体的数字就钻取到该地市的专题!也就是咱们尽量在一些统计分析等与数字打交道的场景用图标来设计;

      5、利用自然和人为的限制性因素。要利用各类限制因素,使用户只能看出一种可能的操作方法,即正确的操作方法。其实很多CMS系统的安装就是一种不错的设计,用户拿到安装包之后只要执行setup一步一步执行就行了,在这个过程中每一步的限制都会通过安装提现出来,这一步执行不成功下一步就无法执行,基本上是傻瓜化的,我在想我们所有的系统如果都能搞成这种模式,那项目上能提高多大的工作效率,减少多少沟通成本!另外一个场景是签到系统,结合客户的实际,很多出差领导都是不知道员工的出差结束日期,在设计系统时就要考虑到这一自然因素,可以在请假时不设置结束时间,等该员工出差回来早上签到时系统自动把前一天设为出差的结束时间!

      6、考虑可能出现的人为差错。设计人员应当考虑用户在使用系统可能出现的所有操作错误,要应对每种差错,而不是放任不管,比如说有个功能里面的某个按钮点击之后操作会比较耗时,有时候客户以为是自己网络的问题,频繁点击这个按钮导致系统崩溃会运行特别慢,这样设计人员就要对这个按钮进行一些强迫性的设计,例如点击之后进行友好提示,或者点击之后禁用该按钮,当按钮执行完成之后再启用该按钮等!另外格式校验就是一个很好避免出现人为差错的设计!