对规范更深层次认识来自于YUI的启发,这个几乎已经是控件代名词的英文缩写,可能很少有人注意全称The Yahoo! User Interface Library,其实就是整套带有开发模式的界面规范,因此我也喜欢把整理好的各种规范叫做XXX Design Library。
产品规范的应用对象,分为设计师、工程师两类人。对设计师来说主要是“协调”工作,使交付物统一;对工程师来说主要是“配合”工作,使开发效率提高。
1. 规范的时机
我倾向于在概念设计的低保原型之后,也就是说得先有第一批可开发的页面。我反复强调的原因,概念上不管做产品还是平台,核心都是由一个个页面组成的网站,有效规范只针对于最终产出。
很多朋友提到边设计边整理规范,这是对设计工作的总结。我的看法,产品设计与开发是整套系统工程,所以更进一步,应该边开发边整理规范,让规范与开发同步,互相契合更新。也就是说,每次迭代之后,都应该升级规范。
对工程师而言,上手来一份事无巨细的规范,读完要花两天,熟练要花十天,在庖丁解牛的开发过程中,简直就是噩梦。于是还没等走完这个过程,早因想痛打设计师而消极怠工了。这也正是不建议使用现成规范的原因,第一国情不同,第二时机不对。
2. 规范的程度
经常听到种声音“规范对开发工程师的约束力太弱。”我认为并非问题根源,因为规范的目标不是约束。产品规范对工程师的唯一好处就是快,越快越简便完成任务,工程师才越可能认可。打算让工程师把工作重心偏移到界面体验来完全不现实,因为各自的工作职责不同。
注意使用工程师的思维来横向描述产品,尤其在模块和组件角度,更有必要最终细化到代码和字段。工程师不愿意遵守,做规范的人首先应该扪心自问,是否阻碍了别人的工作?作产品设计规范不能只考虑如何设计好,关键是如何配合执行好,更不是完全主动的监督。
规范最大的作用,在于方便分享,减轻沟通压力。规范越翔实,越容易体现专业的大家风范,也就越凸显设计价值,对拿了钱就走人的设计师来说很受用。但高瞻远瞩只看上去很美,不具有可控的操作性,强制执行的后患无穷。
3. 规范的内容
概念文档,固化产品架构和业务大流程。便于设计师快速了解全局结构和流程,同时有助于工程师搭建程序结构,以及数据库逻辑。但是得注意,满脑子函数的工程师们,普遍对信息架构、交互设计不敏感。
页面设计,固化界面布局和表现。用于设计师协作完成原型设计,同时起到指导工程师修改页面的作用,尤其是页面结构、样式定义、信息块标注。忙于功能的工程师们,对界面的仔细程度往往也不如设计师。
模块控件,固化功能落实和操作小交互。既便于设计师新增、修改界面,也便于工程师嵌程序和调整。最好是做成各种精确的Module或者Pattern,做到有据可依有档可查。尤其是对状态描述,能省不少解释的口舌,也便于小范围升级和做版本管理,做到工作流程中的Don’t make engineer think。
4. 规范的执行
规范的监督成本,全部建立在规范本身的有效性之上,也就是说,对产品和团队有足够可控的了解,是提高执行效率的基础,并非设计单方面合理就行。
在项目时间受限制的情况下,工程师解决问题一定有优先级,功能高于界面不仅合理,而且完全应该这么做。我观察到的矛盾,绝大多数都因为产品方提要求的时机不合理所致。
如果没有时间压力,也没有任务压力,工程师仍然不遵守设计规范,那是工作态度问题,应该尝试与工程师团队沟通解决,或者把协调级别再调高。多注意沟通,互相调整工作方式,任何小矛盾和不契合都可能因时间而被放大。多尝试改变自己,这也是种挑战,除非有权利选择同事。
模块化开发中,工程师最怕因为乱引起的麻烦,而不是技术难度,因为难度可以妥协解决。作为设计师,多学习技术并亲自实践,除了能精确把控节奏,所获得的经验也将成倍增长。