软件设计规范(暨设计心得)
软件设计规范——一切为了用户能够说我们的软件“很好用!很实用!”
(部分观点来自于网络或设计朋友的沟通所得,本人引用进来,与大家共勉,在此一并感谢相关人的智慧!)
第一部分 总则
第1条 编制本规范的目的和意义
为了统一软件设计、开发人员、及鉴定人员思考问题的方向和判断问题的标准,将“人性化”深入人心,特制定本规范。
“人性化”——“所有人,即使是非专业人士也都会用”,即使一些比较专业的问题,也用通俗地语言来表达。
具体地讲,要实现人性化,可以拆解成两步:
第一步、软件应用过程中,用户的需求一定要非常清楚,比如用户的心理、普遍的要求等。
第二步、有了需求,就要有对应的表达。表达要顺应和满足需求。
表达得是否人性化,决定了产品的人性化是否成功。
第2条 本规范的适用范围
设计人员在设计时,开发人员在编制各类技术方案时、鉴定人员在编制鉴定方案时,可参考本规范。
第3条 要求
设计人员、开发人员、鉴定人员应当深该理解本手册所述的理念和标准,并将之落实到各自的方案中。
第二部分 注重用户体验,提高人性化
注释:本手册提到的“用户”,是指在市场反馈、社会调查总结的基础上,形成的一个概念化的人群。
(需要提一下的是,如果将我们的工作比喻成设计制作一扇办公室的门,那我们并不想考虑到想姚明那样的高个要求)
第1条 换位思考原则
1.1、站在用户的角度来思考问题,而不是站在自己的角度。
规避这个误区——开发者常常只设计他自己知道的,而不是用户想知道的东西。
要认清“基本应用”与“先进应用”的关系——我们要解决的最重要的问题,是基本应用问题。
从用户角度来说,如果用户的专业水平比较高,则往往对产品是否提供了那些先进功能比较感兴趣。
如果用户的专业水平比较低,往往只掌握软件中少数几个基本功能,
而当前的形势下,水平低的用户往往才是最忠诚的用户。(条目4.2中有更详细的说明)
1.2、遵循五W原则。
即了解我们的用户在想什么?在意什么?擅长什么?埋怨什么?担心什么?
有时我们不太在意的东西,在用户看来却是异常重要的。
规避这个误区——开发者总是想着如何控制用户。比如:开发者常常想通过让按钮变灰,来试图控制用户的走向。
我们要反省,可能我们总是在试图控制用户,而用户不愿意被控制。应该由用户,而非软件来决定什么事件应该发生。
1.3、区别对待不同的用户。
客户是不断成长、不断变化的,产品,应当能分别对待生手和熟手用户。
比如生手用户得到的提示,可能就会比熟手用户多得多,简单地说,允许用户自行定义得到帮助的详尽程度。
第2条 操作处理原则
2.1、无需等待、或友好等待。
务必实时提供可视化的反馈,不要让用户傻傻地盯着一个静止界面,等待一个操作的结束,因为他会担心,程序
到底是不是还在运行,是否已经当机啦?当然,最好是用户每一步操作都无需等待,若不能满足,至少应该做到:
任何等待时间超过3秒的操作和等待,都有进度或状态的提示。
2.2、反馈结果“显而易见”。
用户的每一个操作都要有“显而易见”的反馈,或提示、或结果。
当然,我们还必须时时刻刻记着第一条,不能教条地为了做到有提示,而不停地弹出令用户厌烦的东西。
同时注意:不要为了达到表达的全面性,而把文字说明写成长篇大论,因为那样往往事与愿违——要简化文本内容。
2.3、操作易识别、可预知。
我们的软件应当做到:每一个操作都是“易识别”且“可预知”的。就像你进入电梯后选择楼层,用户进入软件后
的每一次点击都不是漫无目的的,这个时候,他最不需要的是“丰富且强大”的功能设计。
第3条 “主线”+“跳转通道”
3.1、软件需有初始的默认设置和明确的操作指引。
软件设置和操作指引,要满足多数用户的使用习惯。打个比方,我们的软件就是一个森林公园,公园给游客
设计安排好了一条作为主线的游玩路线,游客按照这个路线,可以非常轻松地游玩到95%的观赏点。
3.2、在不影响到“主线”前提下,可以在主线之间,增添几条“快捷跳转通道”。
第4条 功能摆放原则
4.1、最常用的功能,放在最显要的位置,用户能够很容易地掌握软件的基本操作,进而逐步掌握更专业化的操作。
4.2、在某个特定状态下,无用的功能要完全隐藏。
规避这个误区——不常用的功能也总是展现在界面上。
打个比方:1985年产的录像机,前面板上有各种各样的按钮,很多按锯会因为丢了说明书,而永远不知道它们有什么用。
1995年产的,前面板上仅有大家常用的那几个按钮,如播放、暂停、快进、快退、弹出。而这一款可能比十年前的那款
具备更多的功能,只是这些功能被弹出式面板中,只有当你需要的时候,才去用它们,而不是全放在面上。
总结:在软件设计时,要有一个层次的定位,比如有十个功能,而其中2个是最基本的,另外8个不常用,那么作为基本
应用的2个功能,有8成的人会用,这8成的人将成为最忠诚的用户群,另外8个较为先进的功能,则有2成人会用。
这样的规划设计出来的产品,是高级水平的产品。
第5条 用户明确位置
5.1、时刻让用户清楚地了解到自已所处的位置。
5.2、软件能够“进退自如”,避免用户在我们设计的“森林”中迷路。
用户有时报怨:“我也不知道怎么就到了这个界面,而且现在我也不知道如何才能退回去?”
这都是因为我们没有提供一个可跟踪的路径。
同时,功能菜单的结构要简化,避免超过2级或以上的层级菜单。
还有,为每个弹出菜单的标题栏,设置非常明确的提醒指示,让用户一看就知道这个窗口是按了什么菜单或按钮才出来的。
第6条 界面处理原则
6.1、一个界面不能显示所有的信息时,应至少建立一个主目录或主索引,使用户对自己相关的所有信息,有一个整体的把控。
6.2、界面设计的“简化”,不能以“简陋”为代价来实现。即简化,应建立在应用需求获得满足的前提下。
6.3、不能为了界面“简洁”,而过度地删减提示文字。以致于让用户曲解软件的提示。
第三部分 注重用户需求,提高服务意识
第1条 对于他人针对产品提出任何问题,不要习惯性地立即产生抵触情绪。
要本着对产品负责到底的态度和心理,以用户的意见为标准。
第2条 客户是不断成长的,应当实时紧跟用户的成长。
打个比方,如果人类 的平均身高涨到2米,那我们设计的门口高度,也应该相应地调高到2.5米。
第3条 不要费力气去分析用户的意见有没有道理,更应从点滴的用户报怨中,理性地去发现其中的问题,
并善于总结出系统性的需求。
第4条 遵循多不如精的原则,如果我们能设计开发100个功能,但用户一个也用不起来,
那还不如我们只开发10个功能,而用户可以全部都应用起来。
第四部分 注重社会效益
第1条 客户为什么会买我们的软件?
我们认为:一是软件为其省时省力,提高效率;
二是软件可提升其教与学的水平。
第2条 时刻记住,我们花1小时时间做的一个小小的设计,一旦应用到社会中,可能可以为社会提升1万个小时的效率,
当然也可能造成多于1万个小时的资源浪费。
第五部分 辩证看待“整体与局部”的关系,坚持统一性原则
第1条 界面开发时,实现方法要统一;
通俗地讲,就是不论是哪个小组开发的程序,所用到的界面开发手段是一致的,以便于相互调用和将来的升级。
【另附:模块调用的注意事项】
模块调用之前,必须先进行认定,不然会造成混乱。这是技术装配的问题,课题负责人要制定详细的、可操作的管理规范。
具体来讲,要调用某个模块,要先书面列出相应的问题,讲明原理,明确接口之后,才可以上装。
即:要编制调用方案,且方案要经过专家组审定、验收,最后要进行该模块的技术鉴定,并建立起模块档案。(具体万工负责)
第2条 界面布局规划要统一;
通俗地讲,就是某个位置放某种特定类型的内容,让用户形成特定的操作习惯,最终让用户形成“操作起来很顺手”的感觉。
界面布局在软件的升级过程中,必须长期坚持,不能随意更改,否则会打破老用户既已经养成的宝贵习惯。
第3条 图标、名称、解释性文字、提示警告性的文字等,要有一个标准手册;
第4条 软件中出现的图标,不仅能形象地表现出所对应元素的概念,还要做到风格以及交互变化等都是统一的。
图标的设计要具备非常鲜明的直觉特征,尽可能地采用现实世界中的抽象。
名称不仅能精准简洁地表达相应的意思(不能有歧意),还要词语搭配格调统一,
比如统一采用“宾语+动词”的形式等等。
同一个事物的表述,要用同一个词语,做到从头到尾的清晰一致的设计;
请不要出现这样的情况:对于某一个名称,第一个界面中叫“系统”,第二个界面就变成了“平台”,第三个界面又变成了“模块”。
解释性文字,以及提示(警告)性的文字,要有统一的口吻,统一的语法结构等等。
第5条 界面开发过程中,所用到的图片,必须统一出自标准化小组,而不允许开发人员自行设计与处理。
第6条 软件流程设计要有统一的操作习惯或风格,在符合当前社会上大多数软件的操作习惯的基础上,总结出蓝鸽特有操作风格。
比如:用户使用一个窗体后,他们希望下一个窗体也有同样的感受。
还有一个反面例子,现代的水龙头花样越来越多,有些新潮的水龙头要让人研究半天才知道这个开关是怎么开的,让人手足无措。
第7条 时刻了解自已局部的项目,与公司整体大项目之间的关系,明确自身的特点,明确自身的重要性体现在什么地方。
打个比方,如果总评系统不能够将教学、作业、考试等相关平台的数据“管”起来,那它就没有什么特点与意义。
















































































