damien.h

Interface First:为什么我们学到的一切都是错的

ok,我承认有点标题党了,不过这并不妨碍讨论这个有趣的话题。

我在读Getting Real的时候,发觉其中一些观点和我在刚开始计算机学业时候的那些“错误”观点出奇的一致。Interface First就是一个典型。

我从小喜欢涂涂画画,梦想做一个设计师。对于软件,我也认为一个出色的界面是非常重要的。其实对于任何东西,我都觉得,如果能做的漂亮,为什么不呢?人的本性不就是喜欢美好的事物吗?所以,对于我自己作出来的东西,我都喜欢先把界面设计好,设计到自己觉得满意,很漂亮,才好意思拿出去给别人用。不然一个丑巴巴的东西,自己看见都不喜欢,何况给被人用呢?特别是以前做Flash的时候,游戏也好,片头也好,小小的动态菜单也好,总是喜欢费尽心思的作出最漂亮的界面。

然后我意识到,我的习惯对于一个程序员来说太“反常”了。身边的老师同学,基本都对漂亮的界面不屑一顾。“先把逻辑实现了,界面到最后随便做做就行了”没错,软件最根本的不就是功能吗?界面不过是一件随便换的衣服罢了。

好的程序员,基本都有非常糟糕的审美。牛人写出的软件,经常都有常人无法理解的界面设计,搭配上只有色盲才能欣赏的色彩。我们认为,这样才是真正值得崇拜的大牛!

明白了这点以后,我努力克服喜欢从界面开始构思一个软件的习惯,一切从逻辑开始!需要实现的use case是哪些,如何实现它们,怎么做到效率最优,等等。我们为我们程序员写出的丑陋界面感到骄傲,我们提供的是强大的功能!界面?对不起,我们忙着研究算法,没时间考虑这种肤浅的事情!

当软件开发成了我的职业以后,我一度感到非常幸运,幸好当时改正了不好的习惯。在企业软件的开发团队里,根本没人关心用户看到的界面怎么样才最好!任何一个软件,都从功能需求开始,根本没人会提出需要什么样的界面。lab的唯一的2个美工(我很讨厌中文对artist的这个称呼)都坐在办公室的一角,一年也不会和我们开发团队说上几句话。

但是,我错了,我们学到的,一直认为是对的事情,都错了!很显然,设想你自己就是用户,面对一个简单易用的软件,另外是一个强大复杂但无法上手的东西,你更喜欢哪个?

问题是,企业软件的购买者根本不是软件的使用者;而使用者通常又是没有能力影响购买决策的。

所以,这些造成了企业软件的一个畸形问题,usability成了难以攻克的障碍。有些产品确实可以宣称市场占有非常大,功能应有尽有。但是不可回避的事实是这些产品用起来无一例外都非常烂。在这点上,M$作为从消费市场起步的公司,确实做的很好。而传统只作企业市场的公司,拿出来的产品基本都是用起来及其不爽,最终用户抱怨不断的。

Getting Real的这一篇短短的文章解释的很清楚。只有看到自己的软件长得什么样,才能不断的完善它,不光从界面上,功能上同样如此。

看到这里我很高兴,我根本不必克制和掩饰自己的本来想法。软件作出来和任何其他产品一样,都是给人用的。与其做一个丑陋的东西,为什么不费劲心思做一个美好的呢?

最后,我并不赞成走另外一个极端,只追求华丽的外观而没有实质有用的功能。这方面的反面例子我最喜欢用金山词霸,建议用一下就知道一个实用的软件是怎么做到华而不实的。

我赞同的是能帮助用户在解决问题同时得到愉快体验的设计,解决问题当然还是根本,不然还是本末倒置的。