>Martin Fowler recently blogged about Technical Debt. We’ve all experienced it at one time or another. The fact that we need to move faster, but never go back and apply what we have learned to erase or fix the code after having implemented it.
Open source and open Standards all can occur technical debt, it isn’t just specific to software systems. Standards need to evolve and have the ability to change and adapt. To apply the lessons learned so that technical debt can be eliminated. The same is true for your open source software projects. One of the ways Agile techniques try to deal with this is through end of iteration reviews. To show off what you developed, but also to see what was good and bad during the last iteration. Hopefully, the lessons learned in the last iteration can be applied to the current iteration. Paying off technical debt is something that we all need to do, otherwise eventually it becomes such a burden that the software can not evolve.
Ron Jefferies has a good interview on InfoQ, titled. “Running Feature Tests”. It’s a good overview of some Agile techniques. About 15 minutes into the interview, he talks about Technical Debt. In particular I found the discussion about continual design and it’s relation to eliminate technical debt interesting. It helps give a higher level picture of why agile techniques are the way they are, and how they go about addressing common issues we face.
How much technical debt does your project or standard have? How can you address this in the future?