Do the simplest thing that could possibly work

The most important rule in our development is always to do the simplest thing that could possibly work. Not the most stupid thing, not something that clearly can’t work. But simplicity is the most important contributor to the ability to make rapid progress.

We find that we have to remind ourselves of this rule continually. Developers like to develop, and most of us have years of experience in creating a "general solution" to whatever we’re asked for. Real progress against the real problem is maximized if we just work on what the problem really is.

On the contrary, if we know we’re going to need something we should build it in while we’re building the object the first time. It’ll save time.

Smalltalk code is extremely easy to modify. We do not have to design or build for the future. Progress is fastest if we just do what we need to do now: leave the future to the future.

On the contrary, when I’m immersed in a new object, I may see how to do something that will later be more difficult because I won’t be up to speed.

1997, 1998, Ronald E Jeffries