Technical Debt: Slow and steady wins the race
You’ve got the best idea for a new digital product there has ever been. It’s new, exciting and it’s going to make you a packet. This is your Just Eat, your Uber, your Tinder! Naturally, you’re keen to get going as quickly as possible in order to get maximum return from the available market.
Rushing headlong into a new project might feel like it’s going to get things done, but without due care and attention, you can build up Technical Debt. And, just like financial debt, technical debt could kill your project before it ever sees the marketplace.
So what is Technical Debt?
Imagine you’re running a marathon (bear with me). After about a mile, you notice a stone in your shoe. It doesn’t bother you too much, so you ignore it.
You want to finish that marathon and in good time so the last thing you want is for the guy dressed as a giant Santa (this actually happened to me) to canter past you while you slip off your shoes and address the errant stone. So you soldier on.
For about the next ten miles or so, it niggles you, but you ignore it. But then on, let’s say, mile 15, your foot starts to get really sore. You can feel that stone rubbing away at the side of your toe and you finally give in and stop to remove it.
As you take off your sock, you can see the damage that little stone has done. It’s rubbed away at the skin, and your foot now is, frankly, a mess. Even with the stone removed, you can only limp along as the damage to your toe continues to get worse. So, you stop again and pop a plaster on the wound. This gives you relief for a couple of miles, but now the plaster has rubbed against the other toe and caused a blister. So, you stop and pop a plaster and maybe a dab of Vaseline on that toe.
Slowed down by frequent stops and now passed by not just the giant Santa, but Tony the Tiger, Mr Blobby and the Nottingham WI walking group, you eventually finish the marathon, but with a dismal time and in considerable pain. All because of that one little stone that you ignored.
That stone, in software development terms, is a fault in the coding. The damage it caused to your foot, finish time – and dignity – along the way is what we refer to as Technical Debt.
How do we deal with Technical Debt?
Once, it was the done thing in web development to test the code at the end of the project. You let all the little problems build up and then deal with them en-masse at the end. Back then, it was seen as ineffective to waste time testing and correcting faults along the way when you were only going to have to do it at the end anyway.
However, just like that stone, issues that develop early on, can have a knock-on effect further down the line and cause longer delays and damage the overall integrity of the product.
Atomic has adopted an Agile Scrum methodology of product development. Using this method, each project is divided into what we call Sprints – small, discrete, individual projects which combine to make up the whole. Following each sprint, the product is tested, and errors are fixed.
This means that we are taking the most stable version of the product to the next stage of development and eliminate any other issues that may have been caused by the faults found at the end of the previous sprint.
In the marathon, if we’d bent down and taken the stone out of our shoe when we found it, we’d have got a better time and felt better at the end of the race; by addressing each fault as it occurs in the development, we complete in better time, and have a much higher quality product at the end of the process.
If you’d like to discuss how our products and development processes can help your business, contact a member of the Atomic team today.