你给了用户想要的吗?

本文是翻译,版权归原作者所有



我的一篇文章写了下面这句话:

大部分用户只是说,他们想要「这」。只要他们得到了他们想要的东西,他们就不想听技术方面的东西。

如果编程是一种翻译活动,即把一套程序的、不可执行的用户描述,翻译为可执行的描述,那么很容易就说明,你翻译的准确性是无法证明的。

把一个程序翻译成另一个程序,甚至也是不可能确定其准确程度的。判断两个程序的均等,成了不可判定的问题。这就简化到了一个事实,即停机问题【注1】是不可判定的。

因此,「只要这是他们想要的」本质上也是不可判定的,因为你不可能证明你的筹划是准确的。「他们知道、且有能力表达清楚他们想要的」,所有这种假设,本身就已经是不可判定的要求了。你只是猜测,然后做你的事情,然后他们看你做的结果,他们不会把他们想要的告诉你,而是把他们不想要的告诉你。

换句话说,你的方式有些不切实际,因为没有考虑到被可计算性【注2】所强加给的基本约束。我们对世界的理解充其量不过是图灵完备的【注3】。在这个理解中,可判断性【注4】是不可能被解决的。

给用户想要的东西,这种策略是完全不可能的。你充其量只能修复他们不想要的东西。如果你的销售策略建立在这种不可能之上——考虑到爆炸原理【注5】——你完全不可能达到你心里想要达到的目标。处于这种环境下的、所有形式的预算,都是完全行不通的。你不会去做那些比如你愿意做的事情,因为那是不可能被完成的。

甚至更重要的是,我们领域里的进展从没被预定过,伟大项目从来也不是通过给用户想要的东西来启动的。大部分用户之前从来没有见过 Google 搜索、或 Facebook。因此,这些项目不会给用户提供他们需要的东西。这些用户尝试之后,然后才发现它们的用处让人惊奇。这些项目真正伟大之处,不是因为他们给了用户想要的东西,而是因为他们给了用户所不知道的、却是他们需要的东西。

注释

译文:你给了用户想要的吗? 》| 腊八粥