一、开场白
为了让GUI的设计更有效、用户更加易用,推荐学习一些的基本原则,首先我们学习一个术语:
“易用性”----不仅仅是易于学习。“易于学习”是易用性的一个重要部分,但它在易用性的三个组成部分中是最次要的。要实现易用性,产品还必须具备“快速使用”和“相对无错”的性质。最重要的是,产品必须提供用户所需要的功能。
二、基本原则1:关注用户及其任务,而不是关注技术。
这是最重要的原则,是所有原则的根本所在,是其他所有用户界面设计原则的基础。“关注用户及其任务”意味着什么?
1、这个软件是为谁设计的?谁死目标用户?谁是目标客户(不一定是用户)?
2、这个软件是做什么的?他打算支持什么行为?他将帮助用户解决什么问题?他将提供什么价值?
3、现在目标用户有什么问题?对于他们现在的工作方式。他们喜欢什么、不喜欢什么?
4、目标用户掌握哪些技能和知识?他们有学习的动力吗?如何学习?是否存在具有不同技能,知识和动机的不同类型用户?
5、用户如何掌握软件将要管理的数据的概念?
6、目标用户更喜欢什么工作方式?软件如何才能符合那些方式?又会如何影响他们?
如果在每个项目开始时这些问题的答案会“从天而降”,那就太完美了。但是,他们当然不会这样。回答这些问题的唯一途径就是开发团队要明确,严肃地下功夫来回答这些问题。虽然这些需要付出时间和资金,但却是非常重要的,因为在开始设计之前不回答这些问题带来的代价会远远高于你所付出的。
PS:5年前设计机顶盒UI的时候,就踩过类似的坑。明确上面的问题还是很重要的,多考虑一层,设计出来的UI得分就会高一层。
一)、理解用户
在开发的早起,我们需要确定软件是为谁开发的。将目标用户说成“每个人”是非常吸引人的,因为大多数开发机构都想拥有广泛的潜在市场。但是,必须坚决抵制这种诱惑。设计用于“每个人”的软件很可能不能令任何一个人满意。开发人员应当选择一个特定的基本目标人群作为目标用户群,以便集中他们的设计和开发工作,即使这个软件可能也有其他类型的用户。
在做出这个重要决定的过程中,要确认目标用户群与开发机构的战略目标一致。应当征求营销和销售部门的意见,因为他们通常负责用户的识别和分类。不过,有一点很重要,必须牢记:营销和销售部门主要关注产品或服务的客户,而设计人员需要理解用户。产品的客户和用户不一定是同一批人,甚至不一定是相同类型的人。因此,开发人员可能不得不过滤或补充营销和销售部门有关谁是产品目标用户的想法,以便得出对设计人员有用的信息。
PS:我在曾经一家公司敬业的做技术,发现一直都很难出结果,最后清晰的理解到,销售部门面向的都是一些经销商、代理商,并非真正的用户。
用户并非介于“初学者”与“老手”之间。
软件开发人员总是认为目标用户介于计算机“初学者”与“专家”之间的连续范围内。从未使用过计算机的人在初学者端,而专业计算机工程师则被列为专家端。在这个假设下,判断谁是一个特定应用程序的用户,在很大程度上取决于他们在这个连续范围内处于什么位置。
PS:2018年底,我跟销售人员去了一趟非洲,其中在某个客户的店里,他的“工程师”竟然反馈一台机子有问题,说蜂鸣器提醒功能失效。我看了一下,开机提示音都有,怎么可能应用功能失效?!细看一下蜂鸣器提醒关了,这个非洲“工程师”不懂得打开。
最后,理解这儿写用户的最好方法是将他们作为协作对象一同工作。不要仅仅把他们当作要研究的对象。可以将其中一些人带入开发团队,把他们当专家对待,尽管他们是与开发人员不同的一类专家。他们了解他们的工作、经验、管理结构、喜好、反感以及动机。可能他们不懂得编程和用户界面设计,但这不是问题,那正是团队其他成员的任务。设计软件时要牢记的一个有用准则是:软件既不要为用户设计,也不要让他们设计,而应当与他们一起设计。
二)、理解任务
正如理解用户一样,理解任务也应该是一个三部分的过程:业务决策、经验调查和协作。
1、机构的战略目标,反应其创立者,高管层和股东层的利益。
2、其雇员的专业意见。
3、过去的历史。
4、其资产、流程和基础设施。
5、其对市场机遇和定位的认识。
6、其研究人员已经开发出来的新技术。
PS,以上的任务偏向于网页GUI的范畴,做嵌入式GUI的自己发散一下理解。
三)、考虑软件工作的环境
工程师常常将他们正在设计的对象看作是宇宙中唯一的东西。他们没有考虑使用技术的环境。以及在这种环境中使用技术时用户的总的体验是什么。
有时即使是购买技术的人也会成为以技术为中心的视野狭隘的受害者。他们有了问题,希望通过购买和使用某种技术解决该问题。这种愿望经常使人们低估问题的复杂性,即可以轻易地利用技术来解决问题。这样也经常会使得他们轻信那些技术制造商和商家的夸大言辞。
PS:最近跟工作环境相关的异常,WPS新建的文档,发给另外一台电脑用OFFICE软件打开会有兼容性问题。WIN-XP安装不了高版本的一些开发软件,低版本的开发软件安装在老系统,能安装,能编译但是不一定能仿真。