The Code-First Dictum

Traditional wisdom says that the “code first, design later“ approach is a bad idea. However, Charles Miller points out that when it comes to open source projects, it’s mandatory:

I would almost go as far as saying that starting an open source project with no code and a committee trying to decide what to do next spells inevitable doom.

The best way to start an open source project is with code. Working code. Hack away at home on weekends, maybe get a couple of friends to help you out, and don’t go public until you have something to show people that does something interesting, and that other people can use to build more interesting stuff on top of. You need this for a bunch of different reasons: it establishes the original contributor’s bona fides in the open-source meritocracy, it shortcuts all sorts of damaging debates about coding styles and architecture that can stop a project before it starts, and so on.

Most importantly, though: working code attracts people who want to code. Design documents attract people who want to talk about coding. I’ve seen what happens on projects that start with no code and a commitment to produce a design. Some of the procession of UML diagrams were really well put together, but that’s about the extent of it.

As I’ve said before, good programmers get off their butts. Obviously, you want to consider what you’re going to do before you do it. But there’s a rapid point of diminishing returns for thinking versus doing.

Software development is a wicked problem: you never fully understand the problem you’re trying to solve until you reach the end. So the sooner you start, the better.

Related posts

Given Enough Money, All Bugs Are Shallow

Given Enough Money, All Bugs Are Shallow

Eric Raymond, in The Cathedral and the Bazaar, famously wrote: Given enough eyeballs, all bugs are shallow. The idea is that open source software, by virtue of allowing anyone and everyone to view the source code, is inherently less buggy than closed source software. He dubbed this “Linus’s Law.

By Jeff Atwood ·
Comments

Is Open Source Experience Overrated?

I'm a big advocate of learning on the battlefield. And that certainly includes what may be the most epic battle of them all: open source software. Contribute to an open-source project. There are thousands, so pick whatever strikes your fancy. But pick one and really dig in, become

By Jeff Atwood ·
Comments

Procrastination and the Bikeshed Effect

The book Producing Open Source Software: How to Run a Successful Free Software Project [http://www.amazon.com/dp/0596007590/?tag=codihorr-20] is a fantastic reference for anyone involved in a software project – whether you're running the show or not. [http://www.amazon.com/dp/0596007590/?tag=codihorr-20]

By Jeff Atwood ·
Comments

Is Money Useless to Open Source Projects?

In April I donated $5,000 of the ad revenue from this website to an open source .NET project. It was exciting to be able to inject some of the energy from this blog into the often-neglected .NET open source ecosystem. As I mentioned at the time, I used a

By Jeff Atwood ·
Comments

Recent Posts

Let's Talk About The American Dream

Let's Talk About The American Dream

A few months ago I wrote about what it means to stay gold — to hold on to the best parts of ourselves, our communities, and the American Dream itself. But staying gold isn’t passive. It takes work. It takes action. It takes hard conversations that ask us to confront

By Jeff Atwood ·
Comments
Stay Gold, America

Stay Gold, America

We are at an unprecedented point in American history, and I'm concerned we may lose sight of the American Dream.

By Jeff Atwood ·
Comments
The Great Filter Comes For Us All

The Great Filter Comes For Us All

With a 13 billion year head start on evolution, why haven’t any other forms of life in the universe contacted us by now? (Arrival is a fantastic movie. Watch it, but don’t stop there – read the Story of Your Life novella it was based on for so much

By Jeff Atwood ·
Comments
I Fight For The Users

I Fight For The Users

If you haven’t been able to keep up with my blistering pace of one blog post per year, I don’t blame you. There’s a lot going on right now. It’s a busy time. But let’s pause and take a moment to celebrate that Elon Musk

By Jeff Atwood ·
Comments