Skip to content

Plan to throw one away

Tue 19th November 2013

“PLAN TO THROW ONE AWAY; YOU WILL, ANYHOW.” (Fred Brooks, The Mythical Month, Chapter 11)

Or to put it another way, you often don’t really understand the problem until after the first time you implement a solution. The second time, maybe you know enough to do it right. So if you want to get it right, be ready to start over at least once.

I found The Cathedral & the Bazaar on a pile of books someone was giving away at work, and it’s been on my read-next list for a while. I finally started reading it last month, but as it’s been pretty busy I haven’t really got my teeth into it, having only read the introduction and not having started the eponymous essay. Well last night I began that and came across this important tenet of the bazaar model of software development.

Many software developers expect that they will write the perfect piece of software first time. And of course, because software development is quite time consuming, once you have developed a certain amount of the application, you develop a certain amount of attachment to it.

But software development is a problem solving process. You will make mistakes along the way, and learn from those mistakes. Anyone who has ever looked back at their code from more than a couple of months ago will know that you always spot things you could have written better, or ask yourself “why did I do it that way?”

Planning to throw away is crucial, and changes the way you develop software. It is also important for people learning to program. Multiple times this week I have told first time programmers to “go back and re-write the first few exercises”; they are struggling with the current exercises and re-writing the early ones will reinforce what they already know, and they will be able to do them so much more easily with the weeks of experience and practice they’ve had in the meantime. I hope they do it!

From → Books, Programming

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: