网站改版之 Revolution .vs. Evolution

from: http://robertmao.com/2010/01/24/revolution-vs-evolution/

看到一篇谈论网站或者软件改版时取舍的观点博文,不少很好的观点需要学习,用户需要的是波涛汹涌的骤变,还是缓缓的暗流呢? 遂分享之。。。

一个新产品即将诞生,一个新网站即将发布,一款新软件即将推出,应该是走革命(Revolution)的道路还是演进(Evolution)的道路? 其实这个问题根本是个伪问题,因为Revolution和Evolution本身的区分就比较模糊,时代不同、市场局势不同、基础不同,最适合的策略就会不同。

然而如果我们不那么较真,把Revolution定义成“改头换面”式的改变,把Evolution定义为不易察觉或者不改变用户习惯的改变,那么可能更加容易讨论一些。比如我的理解中,C –> C++ 是evolution, 也许有人不同意,但我认为其是evolution的根据是我可以在C++里不变地写C代码。 C++ –> Java, C#是 revolution, 他们虽然神似但已经完全不同。 Unix –> System V, BSD, … –> Solaris, HPUX, IRIX, Mac OS X, Linux … , 这个复杂的演变树可以画满整页,但从用户角度来看,这仍然是evolution, 因为一个old school从装着8”软驱的M68000机器上学到的unix命令,在今天的Mac Book Pro上我照样应用自如。

有趣的是,我上面举的两个例子,C/C++, Unix的发展,其实另一个角度看全是revolution!  C++引进了OO、Template等C前所未有的概念; 今天的Unix及变体无论体系结构还是具体部件都和70年代的K&R的系统有了彻底不同,这些不是revolution是什么?! 其实这是看问题的两个角度,一个从用户的角度,一个从创造者的角度 — 我以为成功的产品或者设计,大抵都是从用户角度的evolution和从创造角度的revolution.

反过来可不可以?成功的例子我没有想到,但失败的例子我可以想到一堆,如果您有相反的例子欢迎补充。

我过去经历的一些教训是一些活生生的教材,写下来希望自己未来能免于重蹈覆辙。其中之一是网站的改版,花了大力气的改版,其实从设计和架构上是evolution, 架构没变,性能问题仍在;主要代码没变,阻碍前端开发灵活性的问题尤在; 但是前端却是revolution, 界面全变了,ajax支持了,table layout换成css但样子也变了。表面看起来好像大改,只要用下去就会发现没有本质的变化,原有的问题大多存在,新的问题更多,而熟悉的设计(哪怕是不那么理想的设计)却没有了。 结果是,改版花了很多人力物力,架构和服务本身的创新以及改进没有精力顾及,每改版一次,用户就流失更多一次。相反一些成功的站点,比如craigslist, 比如blogger, 比如twitter, … 似乎从发布以来就没有变过, 其实他们变过很多次了,只不过不容易察觉,这就是其威力之一。

翻看过去blog来反思一些问题,如果换成今天的我来决策当初的决定,也许会有很不同的决定,虽然这样的决定是否有成功的改善已经无可考证。 现在我越来越倾向于认为,用户不可见得部分可以大刀阔斧,如果存在最初的设计问题,甚至可以推翻重来,而且这种推翻应该越早越好; 用户可见得东西,一定要谨慎又谨慎,即便要改动,也要一点一点如履薄冰地进行。 这和过去的思路真是有些颠覆的变化 — revolution是也。

不幸的是如今我所参加的项目却正走在我所严重不认可的方向上,我甚至以为这和我过去弯路的情形是一样的:作为先行者,用户逐渐不喜欢我们而喜欢竞争对手,我们认为是我们的前端不够好,左改右改小改然后大改,用户却渐行渐远。显然这是一个完全无可相提并论的比较– 现在的项目要大太多,背后决策的人要资深太多,可操控的资源要多太多。把这个感受和观点写下来,是为了未来能够反思用,我今天的感受是错了还是对了?如果错了,为什么? 尤其是是如今日,结合自己的经历和观点,我是如此不认同这种对用户revolution对架构evolution的决策,如果最终证明自己再次错了,对提升自己的认识定能上一个层次。可惜这个问题没有办法展开来谈,留着今后看到结果的时候再谈吧。

无论如何,我欣喜地看到了越来越多的走evolution道路的产品是如此地成功,也看到了这些evolution的背后其实有着多少的revolution存在于不为用户所知之处。做为我自己今后做的事情,也应当如此。