帕累托最优的开发规划
经济学上有个术语叫帕累托最优,这是经济学发展到20世纪初产生的一项成果。在自由市场经济中人们通过平等谈判求得双赢,这样找出的方案一般来说是对各方都有利、没有人受损的。把这个原则抽象出来,就是要求一个方案只有人说好没有人说不好,最多有人不说好。按这个标准筛选方案需要先找出没有人说不好的,再在这类方案中找说好的人最多的,最后找到的就是帕累托最优方案。如果是一项公共政策,这样的方案必然会无反对票的通过。所以有人概括说,帕累托最优就是“全票通过”制下的最优,或者叫“万全之策”。与此对立的是半数通过制,不怕有弊端,只要“利大于弊”就算好。这两种不同的选择标准,会导致完全不同的选择。
举个软件开发的帕累托最优的例子。我现在用的“搜狗拼音”有个小功能,在打汉字的时候不用切换应为状态,按“shift+CYF”再直接回车,就打出了“CYF”。因为打拼音一般不用大写,而英文缩写常常是大写,把这两点一结合,可以减少打字中的切换次数。由于有一批这类小方便,使我放弃了使用多年的“微软拼音”,改用了“搜狗拼音”。
再举个我们软件的例子。现在软件中的接收界面是这样的:
看着是不是有点乱?我把它优化成下面样子。
没有加内容也没有减内容,只是把常用的排在前面,默认打钩,把不常用的放在后面默认不打钩,同时加个分类,看起来更清晰些。这个改进我想不会有人说不好。工程师开发也是举手之劳,不耗资源。这就是帕累托最优。
再举个例子,现在把光标指到买卖前十位的席位,给出的是“杭州解放路证券营业部@中国银河证券股份有限公司”,这次升级后会改成“杭州解放路@银河证券”,信息量没有减少,字数减少一多半,看起来清楚多了。这个改进我想也是从任何角度都不会有人说不好的。
再比如前文提到的“深度分析”的页签化简方案,也是不太可能有人说不好的。
一般来说,做揭示市场事实的指标也是不太可能有人说不好的,如果是做买卖信号类指标则很难让所有人满意。我由于一直坚持“揭示市场事实、发现市场规律”的研究思路,所做的东西总体上是好的。但后来也出现不好的反映,就是指标多了之后,有的指标用处不大,反而很乱。所以我现在做指标也很慎重。比如,我上篇文章说到的券基CYF指标,虽然在某些股票上效果相当不错,但很有可能有人说不好。一是因为对没有券基参与的股票,券基CYF就没法看了。二是现在的赢富指标已经很多很乱,再加一个岂不更乱?如果不是为了制造亮点,我会把现有赢富指标整理一番之后再推新指标,让反对声音降到最低。但有制造亮点的压力,也只好这么推了。
我个人喜欢推“帕累托”最优的东西,至少是说好声音远远大于说不好声音的东西。这样的好处,第一,保证每一次改变从任何角度说都是进步,不可能有退步。第二,在这个严格标准下,每个设计都必须深思熟虑,往往能逼出精品。第三,这样的设计容易说服大家接受,在推动开发时阻力比较少。
但这个偏好也有明显的缺点。第一,帕累托最优往往出现在小优化小改进的地方,大调整往往难以达到这个标准。比如改个BUG肯定人人都说好,整个界面风格的调整则肯定众口难调。寻求帕累托最优的结果容易造成老做小优化,难有大手笔。第二,很多时候再怎么精心设计仍然会有不同意见,结果只好暂时放弃,等以后有更好的idea再说,如果一直想不出好办法,就会一直拖下去,结果就是决策理论的一句话“全票通过的决策机制会导致优柔寡断。”
2008年6月23日星期一
