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.
Real World Bodging
With GDN we’re introducing multiple aspects of the system that are ‘Live’ and automatically update across computers.
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
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()