David Heinemeier Hansson

March 1, 2023

The simplest thing that could possibly work

I'm a programming child of the agile software movement. Just as I was starting out, Kent Beck published Extreme Programming Explained in 2000. It was a revelation. I had just enough exposure to Big Upfront Design and waterfall methodologies to appreciate what a monumental shift this was. Beck's methodology x-rayed the ills of the traditional approach, and made the terminal diagnosis crystal clear.

But what really attracted me to Beck's vision of software development was the irreverent insistence on practicality. There was plenty of vision, plenty of principles, but they all lead to running code. In the battle for software development's soul, Beck was formulating the war cry for a rebel army tired of going in circles from commands up high.

XP was of course just one expression of a larger set of ideals. Other prominent thinkers were onto the same paradigm shift, and in 2001 many of them got together to publish The Agile Manifesto. Including several personal programming heroes of mine, like Ward Cunningham, Martin Fowler, and Dave Thomas. The points that still make my brain sparkle are "individuals over processes" and "working software over comprehensive documentation". Take me to church!

Beck took these lofty ideals, though, and again made them more practical still. Two expressions of that was the simplest thing that could possibly work and you aren't gonna need it. To this day, these are the mottos that move all my programming work forward. It's so easy to get lost in sentiments like "but wouldn't it be nice if..." and "we'll probably also need...". You need pithy mental antidotes at the ready to provide a counter.

What I've later also come to appreciate is how well these mottos pair with a cultivated strain of ignorance, if you want to tackle existing problems from first principles. It took being an outsider to J2EE to pursue Ruby on Rails. And being an outsider to JavaScript to chase Hotwire. And now, again, being an outsider to Kubernetes to sail with Kamal. It's easier to break the paradigms if you're not enmeshed in them on the daily.

But even when you're not busting paradigms, these mottos are paramount. It's how you go from nothing to working software in days, not weeks or months. By cutting straight to the chase for the epicenter of the solution. I'm seeing that in action now as we're working on a new product, and marveling at how quickly we've gone from concept to code.

Yet it always seems to be a struggle to stick with this intent. Like human nature is primed to dwell on all potentialities vs the activating the instinct for action. So the mottos help.

If you haven't yet read Beck's seminal work, I strongly encourage you to do so. Whether XP as a complete methodology is right for you is irrelevant. The mere audacity of the prescriptions will expand your horizon. And your eyes will be trained to look for the simplest thing that could possibly work. Few changes in perspective will unlock that hallowed 10x potential like this.

About David Heinemeier Hansson

Made Basecamp and HEY for the underdogs as co-owner and CTO of 37signals. Created Ruby on Rails. Wrote REWORK, It Doesn't Have to Be Crazy at Work, and REMOTE. Won at Le Mans as a racing driver. Fought the big tech monopolies as an antitrust advocate. Invested in Danish startups.