A few weeks back I was discussing the architecture of a code module with a friend of mine. The module was one we had inherited from some other development team, it had mould growing on it and really looked like it needed putting down.
However, we had just had a request for a new feature which would require changes, slap bang in the middle of this monster code module. My argument was, let’s refactor. It’s a great chance to re-write the code how it should have been written in the first place. His argument was that if we refactor it would make hitting the deadline difficult if not impossible. On this occasion not hitting the deadline was not an option. So we went for the pragmatic solution.
Neither of us were happy with writing just enough code to shoehorn the feature in but we both knew that not having the feature would be make or break with the customer.
Now having technical debt is like having financial debt. You have to get round to sorting it out otherwise it will come back to bite you. But just as there are times when leveraging financial debt can be used to help you, so can technical debt. Just make sure you have a plan to pay it back.
Have you had a situation where you have had to add to your technical debt? Or have you been bitten by not having a technical debt repayment plan in place? I would love to know about it so why not leave your experiences in the comments.