软件与网站设计的区别
星期天 05.03.2009 - Posted in 工作分享, - 3,612 views还有种片面的观点认为,做网站设计与平面差不多,比如老罗发布的这则招聘中提到:
年薪十万招擅长做下列网站设计风格的平面设计师一名。
在专业角度,网站设计与平面设计是两套截然不同的路数。比如很多艺术出身的设计师做网站时会发现,设计出来的作品总是被研发工程师否定,这个不能做,那个不好做。要想抹平这中间的隔阂,视觉设计师至少需要懂互联网,懂网站界面原理。
软件设计
传统软件设计包括系统分析、需求分析、模快划分等,产出主要是软件流程图和文档。要求系统分析员、高级程序员,或者软件架构师参与完成,要求参入人员水平较高。而编程就是依据设计结果,用选定语言来编码,一般熟悉选定语言的初级、中级程序员就可以胜任。
也就是说,最早设计软件全部是有设计能力的工程师胜任,已经涵盖了《用户体验的要素》观点中的战略层、范围层、结构层、框架层。他们唯一解决不了表现层,就是被俗称为“美工”需要完成的视觉设计工作,这也充分说明了不是只有设计师才能做“设计”。
只不过既有编码功底,又能充分考虑用户感受的工程师实在太少,绝大部分工程师做出来的东西都带有明显的机器色彩,不符合用户心智模型。少数高瞻远瞩的工程师意识到这问题,并深入总结成了门学问。比如Alan Cooper就是这类人群的典型,既是有十几年编程经验的Visual Basic之父,又赢得了(软件)交互设计之父的称号。
在往后的发展中,设计与工程开始逐渐分离,因为他们的目标有冲突,比如Cooper给交互设计师的第一条建议就是“停止编程”。各类软件公司纷纷组建设计部门,期望提升自己产品的用户体验。此后,广义上的设计概念才开始逐渐深入到“结构层、框架层”。
期间还有个小插曲,GUI概念风靡大江南北,全称叫做Graphical User Interface。小到按钮风格大到模块样式,都能得到设计师的精心雕琢,以及所在公司的热烈追捧。但是体系决定了他们的价值只能触及到“表现层”,和少数“框架层”里的界面设计。所以虽然软件界面设计师奔走相告“我们不是美工!”但还是无法避免弱势群体的现实。
网站设计
最早都叫网页设计,顾名思义就是设计一个个页面。最早的网页设计师与软件“美工”职能完全相同,就是想办法让页面好看起来。甚至在软件GUI最流行的时候,还有不少带有明显GUI风格的页面作品出现在论坛,因为某些客户会想当然认为GUI与做网页差不多。
与早期软件设计对应的职位叫网站策划,基本是由一帮资深网民、或者在传统行业应用比较有积累的资深人士担当。早期网站策划都有个显著特点,对设计、工程的认识相当欠缺。团队之内存在了设计师、工程师之外的第三类人,做出来东西的质量可想而知。
实际上网站设计全面继承了软件设计的思想和知识体系,然后再结合互联网技术重构创新。技术体系的差别很小,但侧重点差异很大。做惯了C/S架构产品的工程师,在做B/S架构产品时,总会碰到些奇奇怪怪的问题:
- 兼容性如何解决?
- 搜索引擎友好如何解决?
- 可访问性效率问题如何解决?
- 可访问性退路问题如何解决?
- 可发现性的导航结构如何部署?
- 结构、表现、行为分层结构如何部署?
- 服务器端策略如何部署?
问题被深入剖析以后,完全可以探索出整套但又相对独立的知识体系。除了既有W3C标准的标记语言和样式表,还有更适合互联网产品“快速产出、快速迭代”的敏捷方法。随着软件产品在满足用户需求角度弊端的凸显,开始逐渐走下坡路,被互联网产品所代替。于是大批曾经的软件界面设计师、软件产品设计师开始转型做互联网产品。
紧接着让广大设计师困惑的问题叫页面制作,去年在从网页设计开始中总结过“设计网站的同志背景主要有两种:学计算机、学艺术。基本上会写代码的不懂设计,会设计的不懂代码,这个格局似乎到今天还没变。”那么web页面谁来制作?视觉设计师说不会,研发工程师说不懂。临时抱佛脚虽然能拼凑出来,但四不像不说,而且效率低下、极其脆弱。
在技术断层十分紧迫的情况下,首先得到重视的是前端开发。传统软件界面设计只要完成视觉设计,在软件里就能很好的表现出来。而给网站做好视觉设计稿之后,研发工程师根本没法动手,网站的载体是web页面,这是做网站界面设计与软件界面设计的根本区别。
产品设计时代
先对两个概念做个简单对比。相同点,传统软件界面设计是做界面美化,传统网站页面设计是做页面美化;不同点,传统“软件设计”出身比较正统,传统“网站设计”出身比较山寨。
进入产品时代,软件设计、网站设计都不约而同的对“设计”概念有广义上的提升。包括对各类专业技术的“引用”和学术名词的“再创造”。设计在赢得了足够眼球的同时,也不可避免的造成了足够的混乱。其实任何方案的横向规划都可以理解成“设计”,任何方案的纵向探索都可以理解成“研究”,说法问题而已。
经过之前两个阶段发展的不断成熟,尤其在客户端技术迅猛发展的前提下,技术架构的C/S与B/S无法绝对分开。也就是说,不管传统的网站设计还是软件设计,往产品设计方向都能保证比较好的可持续性发展。另外长远来看,不管做soft-based的产品设计师,还是做web-based的产品设计师。多交叉了解各自领域知识框架,以后的路子会越走越宽。
好多朋友都感叹公司找不到能干活的人,我分析主要原因有四点:
- 互联网产品的潜力曾被低估,从业者缺乏利益驱使的学习动力;
- 网民素质偏低,“用户”低要求的引导,导致从业者的设计严重同质化;
- 没有被市场认可,国内信息技术的游戏、软件、互联网公司,最不挣钱的是互联网;
- 互联网客户端技术发展过快,新技术跟踪深造的难度大、成本高。
© 一叶千鸟(转载请留原文链接,更新于2009年05月04日13点)
作为一名软件方面的从业者,我认为千鸟同学对软件方面的设计分析的很准确啊,尤其在行业应用(如电信、电力等)软件方面更为明显。行业软件由于逻辑、规则复杂,界面设计人员除了做一些界面美化工作,难以渗透到其他方面的“设计”工作中去,只能沦为“美工”。
传统的开发人员,较专注于功能的实现,很少花精力在如何使软件易操作这个方面。就算是需求分析阶段,也很少去关注某个功能的具体操作流程,基本没有demo,大多情况下是先出一个半成品,作为一个“靶子”,甲方觉得哪里不好用了,再去讨论如何改。好多上线的产品,还是处于能用但不好用的状态。
soft-based设计人员,如何提高自身的能力,如何多站在用户角度去思考,如何在易操作方面发挥作用,是值得深思的。“多交叉了解各自领域知识框架”,多经历一些项目的实践,也许是一个比较好的方向吧。
对了,还有个问题,我接触的软件方面开发人员往往是后台功能开发(java/c)和前端页面(Jsp,html,mxml,js,as)都做,他们更喜欢写功能而不喜欢去考虑前端的展现。
以上为阅读这篇文章后的一些感触,也算是共鸣吧。
05.04.2009 3:23 上午 - 1楼@Koma
我学软件,本身也在软件公司做过事。
以前的客户端界面开发都是由应用工程师“兼职”做,但如你所说,他们都喜欢写功能,并且也不擅长在用户角度考虑展现。事实上,任何提升用户体验的改动,都会有工作量和难度。
其实这也是公司体制造成的,对应用工程师的KPI考核一定是功能实现。如果时间、资源都比较紧张的情况下,应用工程师优先功能是应该的。所以说,是否重视web-based客户端的界面呈现,还得看公司重视程度、资源配置。
05.04.2009 10:31 上午 - 2楼补充:
Cooper建议交互设计师“停止编程”应指应用开发,而不是纯粹“写代码”的意思。并且就因为web-based界面与soft-based界面的本质区别,专事web的交互设计师相反应该掌握足够的客户端界面“编码”技巧,才能得到专业上的进一步提升。
Taobao UED玉伯前日也提出有类似观点
05.04.2009 10:49 上午 - 3楼http://lifesinger.org/blog/?p=1629
很精辟!!!在很多小公司中,软件设计师要身兼数职,既要搞软件设计,又要搞网站设计,也要搞平面设计,甚至还搞点小的“交互设计”,这种全才式锻炼真能累死人。。。。
05.04.2009 3:38 下午 - 4楼最近就遇到这样的一个困惑,老板让开发一个软件客户端,却用web的思路来做前期的产品设计。也只能如此了,期待进展顺利,目前看无大问题
05.04.2009 7:44 下午 - 5楼我們公司美工,界面設計到前端都做的。我接觸的你們所說的美工,基本都是表現層的設計到前端制作一手搞定。哪有分的這么細
05.04.2009 11:29 下午 - 6楼不在互联网做事,但是一直有订阅多个互联网博客,例如千鸟。互联网产品设计与地产企划的某些理念如果用在软件策划和设计上,非常好用。
不仅是软件的界面、逻辑。前台很小的一个资源显示,对后台程序,以及后台程序引用的数据规格…等等,都需要反复考虑。
文章很好,加班间隙回帖,支持。
05.05.2009 12:05 上午 - 7楼@路人小潘:
05.05.2009 7:13 下午 - 8楼美工当然要出一份设计效果图和HTML+CSS式的规范。
我认为,无论是界面设计还是前端,都还是按照别人的意图去做事。
设计师应该站在与开发者不同的角度去看产品,从用户的使用感受方面去提升,这可能需要在项目前期就参与进来。
当然,这也是由各个项目、产品的特点,以及公司决策层对产品的易用性的重视程度决定的。