Paul Graham谈成事需要从小做起,快速迭代
美国著名程序员、博客作者和技术作家保罗·格雷厄姆(Paul Graham)在其个人网站上的长文《How to do great work》给仍然雄心勃勃的年轻人提了一些建议,适合每位对自己仍有期望的朋友反复阅读。下面是本文的第十五部分摘录:
The best questions grow in the answering. You notice a thread protruding from the current paradigm and try pulling on it, and it just gets longer and longer. So don’t require a question to be obviously big before you try answering it. You can rarely predict that. It’s hard enough even to notice the thread, let alone to predict how much will unravel if you pull on it.
It’s better to be promiscuously curious — to pull a little bit on a lot of threads, and see what happens. Big things start small. The initial versions of big things were often just experiments, or side projects, or talks, which then grew into something bigger. So start lots of small things.
Being prolific is underrated. The more different things you try, the greater the chance of discovering something new. Understand, though, that trying lots of things will mean trying lots of things that don’t work. You can’t have a lot of good ideas without also having a lot of bad ones.
Though it sounds more responsible to begin by studying everything that’s been done before, you’ll learn faster and have more fun by trying stuff. And you’ll understand previous work better when you do look at it. So err on the side of starting. Which is easier when starting means starting small; those two ideas fit together like two puzzle pieces.
How do you get from starting small to doing something great? By making successive versions. Great things are almost always made in successive versions. You start with something small and evolve it, and the final version is both cleverer and more ambitious than anything you could have planned.
It’s particularly useful to make successive versions when you’re making something for people — to get an initial version in front of them quickly, and then evolve it based on their response.
Begin by trying the simplest thing that could possibly work. Surprisingly often, it does. If it doesn’t, this will at least get you started.
Don’t try to cram too much new stuff into any one version. There are names for doing this with the first version (taking too long to ship) and the second (the second system effect), but these are both merely instances of a more general principle.
An early version of a new project will sometimes be dismissed as a toy. It’s a good sign when people do this. That means it has everything a new idea needs except scale, and that tends to follow.
The alternative to starting with something small and evolving it is to plan in advance what you’re going to do. And planning does usually seem the more responsible choice. It sounds more organized to say “we’re going to do x and then y and then z” than “we’re going to try x and see what happens.” And it is more organized; it just doesn’t work as well.
Planning per se isn’t good. It’s sometimes necessary, but it’s a necessary evil — a response to unforgiving conditions. It’s something you have to do because you’re working with inflexible media, or because you need to coordinate the efforts of a lot of people. If you keep projects small and use flexible media, you don’t have to plan as much, and your designs can evolve instead.
好问题的答案会随着回答的过程而不断成长。当你发现当前范式中的线索时,试着去追寻它,你会发现线索越来越长。因此,在尝试回答问题之前,不要要求问题显然很大。很少能预测到问题的规模,甚至很难发现线索,更不用说预测如果你追寻线索会有多少事情被揭示出来。
更好的做法是保持好奇心,广泛尝试不同的线索,看看会发生什么。伟大的事物始于小事。伟大的事物最初往往只是实验、副项目或演讲,然后逐渐发展成为更大的东西。所以尝试许多小事。
多产是被低估的。你尝试的事情越多,发现新事物的机会就越大。然而,要明白尝试许多事情也意味着会尝试许多行不通的事情。没有许多不好的想法,也就不会有许多好的想法。
虽然从开始前研究之前的所有工作听起来更负责任,但通过尝试来学习会更快乐。当你确实需要查看之前的工作时,你也会更好地理解它。所以在开始时,倾向于行动。而当开始意味着从小事开始时,这两个观念就像两个拼图一样契合。
如何从小事开始做出伟大的事情?通过制作连续版本。伟大的事物几乎总是通过连续版本来实现的。你从小事开始,逐步演化,最终的版本会比你计划的任何事情都更聪明、更有野心。
当你为人们创造某物时,制作连续版本尤其有用。快速让人们接触到初始版本,然后根据他们的反馈来演化它。
从尝试可能起作用的最简单方法开始。令人惊讶的是,它通常会起作用。如果不起作用,这至少会让你开始行动。
不要试图在任何一个版本中塞入过多的新内容。对于第一个版本(花费过长时间发布)和第二个版本(第二系统效应),这都有相应的名称,但它们只是更一般原则的实例。
新项目的早期版本有时会被贬低为玩具。当人们这样做时,这是一个好迹象。这意味着它具备了一个新想法所需的一切,除了规模,而规模往往会随之而来。
从小事开始并演化的替代方法是事先计划你要做的事情。计划通常似乎是更负责任的选择。说“我们要做x,然后做y,再做z”听起来更有组织性,而不是“我们要尝试x,看看会发生什么”。它确实更有组织性,只是效果不如前者好。
计划本身并不是好事。有时是必要的,但它是一种必要的恶,是对严苛条件的回应。这是因为你在使用不灵活的媒体,或者因为你需要协调许多人的努力。如果你保持项目小而使用灵活的媒体,你就不需要太多计划,你的设计可以逐步演化。