Embracing the art of the Bodge Job

Hello! My name is Daniel and I’m creating the tools you will be using (hopefully!) on Game Dev Ninja.

With that out of the way let me jump straight in and tell you: Development can be soul destroying.

Hear me out: No matter what project you’re working on, you’re probably going to find yourself in a position where continuing to deal with the horrible mess you’ve created thus far is going to be less appealing than starting something new and fresh.

Of course, many of us start our projects “the right way” , keeping our classes and methods gracefully organised, and ensuring you’re on top of commenting from day one. But somehow, it never seems to last to the end of a project.

There’s also no shortage of good advice in coding books, or developers giving interviews explaining how they wished they started their code off more refined. But I wonder how many of them ever really feel like that while they’re doing the coding.

How many will listen to their own advice on that next new project?

So what’s the alternative, exactly? Well, my recommendation is to code badly… at least at first.

Embracing the art of the bodge

A classic bodge job example from the automotive industry.

The bodge: A job that is completed quickly and carelessly, possibly with one’s mind on other things, or without using the correct tools.

Sound bad? I propose however the bodge should be seen as a positive development methodology – it doesn’t matter how you got the result that you wanted, when it comes to early stage development it matters that you’ve got the results.

Why spend hours more on producing the perfect code to then see that what you’ve made doesn’t fit into the product like you thought it would, or it doesn’t work in a way that is conducive to the overall design?

Once you’ve got a feature or concept working, then there is a sense of enjoyment that can be derived from going back in and finding ways you can actually improve your code.

Of course doing a bodge also means, at times, using tools that aren’t technically the right ones for the job, but this can also produce the effect of finding even more creative ways to solve a problem.

To do things the absolute correct way you’d have needed to know exactly how you’ll complete each step in advance, which by its nature means you’re more likely to rely on the information you already have rather than broadening your horizons to seek out new skills, new technologies and new civilisations.

A classic bodge job example from the world of car modification. I don’t suggest you leave your code in this state, but it’s fun to build.

Real World Bodging

With GDN we’re introducing multiple aspects of the system that are ‘Live’ and automatically update across computers.

Initially we used a simple JavaScript Timeout on some ajax calls and this worked enough for us to get an understanding of how the system would feel. On a personal level this also allowed me to feel like we’ve got something “created”. Certainly something that needs a lot of improvements, but no longer did it a feel like a collection of classes loosely joined together.

Instead, it felt like a real product.

In the end we took a different approach. We went down the route of web sockets and pushing the data to the client, but I really question if I’d have been able to get to the right solution had I not first gone and done my bodge job (sounds a bit rude when I write it like that).

If you’re not working with a team of developers and instead obtuse, fluffy and difficult marketing types like Rob, this mental drag can be fatal to the project.

Right now if I took any of the thousands of well crafted high performance lines of code I’ve created and tried to explain or show them to Rob, he may very well nod his head and pretend to be impressed or interested, but that would just be an out-of-character moment of politeness.

In reality for someone not programmatically minded, code is code is code is code

Around 80% of Rob’s knowledge of programming comes from the 1995 film, Hackers. (The other 20% is a mixture of Lawnmower Man and the Watch Dogs E3 trailer)

That real motivator of being able to show other people your work and get feedback is incredibly important.

In turn the decision I made to make a bodged version to then present to Rob and the team meant I could get real feedback and, importantly, real motivation from others to continue down the path.

It gave me faith that what I was creating was going in the right direction even if I also knew the bodge was being held together by a figurative mess of glue and bubblegum that Rob doesn’t need to see.

Of course, for some the bodge job methodology might sound like hell. Some developers do have every step perfectly planned out and leave no room for bodge work, and in many ways I envy them.

Equally though, I can’t help but think, in some small way, they miss out on the enjoyment of just coding without restrictions, and the secret joy of showing their teams work that they know would blow over in a strong breeze.

Feature Image: Else Heart.Break()

Leave A Comment

Please be polite. We appreciate that. Your email address will not be published and required fields are marked