第1章 Product/产品:设计驱动开发
Producter:让产品从0到1
关于设计的第一次
第一次总是很特殊的体验。对设计来说,第一次体验可能是尴尬的。有可能是在Photoshop里拖曳了几个难看的方框,也可能是在草稿纸上画了一堆歪扭得不成样子的曲线,反反复复,最后只能感叹一句——“算了吧,我果然没什么天赋!”
但是,设计并不是看起来那样坐在桌子前凭空臆想,然后动动鼠标就可以有所产出,也不是一项与在桌子前待多久有关系的活动。设计师往往要以年为单位,让自己沉浸在优秀的设计里,增强自己的设计嗅觉,掌握了大量的设计模式,才能够最终做出优秀的作品。
设计可以从模仿开始。
在我的记忆里,第一次做设计是在Ubuntu 7.04上用GIMP制作壁纸——模仿Mac的霞光壁纸,那是2007年的事。完成后自己非常开心,因为我的桌面第一次铺上了自己做的壁纸,而且我没有用PS这种“恶俗”的软件,没有在Windows和OS X这种“邪恶”轴心系统上,我内心洋溢着一种类似于“人类解放”的革命情怀。
为什么先做设计
很多人以为我是从编程开始的,其实设计在我的故事里是先于编程发生的事情。
不过,我真的尝试过先开始编程。大概是在2004年我小学六年级的时候,由于“初生牛犊不怕虎”,我进书店买了本C#的书,就准备回家编程了。但估计是“智商”的问题,我完全看不懂那些术语。大概就在第1章,只不过10页就开始讲命名空间(namespace)。我当时就蒙了,被这个陌生的名词搞得头脑发热,完全死机了!什么是命名空间,完全不能从字面上理解它的意思。我因此觉得自己很傻,怎么刚翻开这几页就看不懂了?最后感叹道:“天才如我,竟然看不懂编程书!编程真是高深!”
当时家里没有网络,处于一个完全单机的环境,完全靠《少年电脑世界》《中学生电脑》《电脑报》《电脑爱好者》这些杂志来积累计算机方面的知识。在我家乡的小县城,周围没有一个人从事这个行业,所以我以为每个学编程的人都是直接看这种书并且一次就能看明白且学会的,因此我遭受了巨大的挫败感。
那本书的前几十页差不多被我翻烂了,用红色水笔反复标注了我对每行代码的理解,但最后我还是没有弄懂,只能放弃了。
因此,在尝到了设计壁纸的甜头之后,我开始尝试做更多的设计,并且买了原研哉的《设计中的设计》。这本书中的“重视留白且简约的设计”对我的影响很深。
设计是什么
设计是一种和谐的感觉——因恰如其分而结合在一起的东西,功能与外观之间达成完美妥协。
我想设计必然是有个人风格的,这种风格会成为产品的灵魂,最终交付到用户手中,让他们去感知。但是,如何让这种个人风格和产品的功能相得益彰,是每位设计师在开始设计之前要最先思考的问题。
我非常喜欢“设计驱动开发”。先设计,后开发,然后回过头来,改进设计,精进程序。在这个过程中,自己和自己能快速地交流,快速地反馈,这种方式可以很好地激励自己,并且让自己很好地把握进度。但这样做也最容易产生自我妥协。人会犯懒,这是没办法的,因此需要不断激励才能把某些事情做得完美。
在开源社区有两个著名的设计驱动开发的例子,一个是Elementary OS,另外一个是GNOME。它们是出了名的“三年前画好图,三年后只能实现画图的一半”。
设计创造了什么
设计创造了体验,体验包括了很多方面:
- 界面,看起来怎么样;
- 交互,如何和产品提供的服务进行交互;
- 品牌,构建起了什么样子的文化和品牌认同;
- 心智,改变了用户对事务的认知。
界面和交互像一款产品的阳面,每个人都看得到,而品牌和心智则像产品的阴面,你看不到但感觉得到。因此,设计绝不是停留在最表面的看起来怎么样,每年都会流行起一些软件产品,也会有很多人去模仿这些成功的产品,但一款产品的成功,除了界面和交互,还有很多深层次的东西,产品只有完成了品牌和心智认知的构建之后,才算是建成了一款产品的护城河。
设计所造就的体验,才是一款产品最为核心的属性。
实践
不论方法是什么,实践才是能真正积累经验的活动,有经验值才能学会做产品。但是,实践同时也可能意味着另外一件事情——失败。
人总会逐渐避开不愉快的体验,对失败犹甚。无论是学习的失败、交友的失败,还是和女孩子交往的失败,都可能以一句“我果然还是不适合”为逃避这件事情的理由。
在你一个人独立完成一款作品的过程中,也会经历很多失败——第一次设计的丑陋、代码的漏洞百出、放出不成熟的产品导致的恶评等,这些都会让你受到沉重的打击。但是,从失败中反思得到的经验才是真正宝贵的财富。更何况,失败经历多了,总会成功的。
“毕竟对于生活本身来说,成功和失败并没有什么本质区别,重要的是参与到这个游戏中来。”
——约瑟夫·休格曼