标点符(钱魏 Way)

Revolution .vs. Evolution

先来看下revolution和evolution在意思上的区别:(以下来自Google翻译)

revolution

  1. an attempt, by a large number of people, to change the government of a country, especially by violent action 革命
  2. a great change in conditions, ways of working, beliefs, etc. that affects large numbers of people 巨变;大变革

evolution

  1. the gradual development of plants, animals, etc. over many years, from simple to more complicated forms 进化
  2. the gradual development of something 演变;发展;渐进

以下文字转载于:http://robertmao.com/2010/01/24/revolution-vs-evolution/ (已在墙外)

新产品的诞生,新网站的发布,新软件的推出,应该是走革命(Revolution)的道路还是演进(Evolution)的道路? 由于Revolution和Evolution本身的区分就比较模糊,时代不同、市场局势不同、基础不同,最适合的策略就会不同。

然而如果我们不那么较真,把Revolution定义成“改头换面”式的改变,把Evolution定义为不易察觉或者不改变用户习惯的改变,那么可能更加容易讨论一些。比如我的理解中,C –> C++ 是evolution, 也许有人不同意,但我认为它是evolution的根据是在C++里可以不变地写C代码。 C++ –> C#是revolution,他们虽然神似但已经完全不同。Unix –> System V, BSD, … –> Solaris, HPUX, IRIX, Mac OS X, Linux … ,这个复杂的演变树可以画满整页,但从用户角度来看,这仍然是evolution,因为从装着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, … 似乎从发布以来就没有变过, 其实他们变过很多次了,只不过不容易察觉,这就是其威力之一。

 现在我越来越倾向于认为,用户不可见得部分可以大刀阔斧,如果存在最初的设计问题,甚至可以推翻重来,而且这种推翻应该越早越好; 用户可见得东西,一定要谨慎又谨慎,即便要改动,也要一点一点如履薄冰地进行。

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

码字很辛苦,转载请注明来自标点符《Revolution .vs. Evolution》

评论