In summary: technical drift leads to technical debt, which can be prevented through iterative design.
This will definitely factor into the future plans for our codebase. Sometimes it’s easy to forget that you’re contemplating “Big Design” when you should really focus on iterative design.
From their post:
If you’re not taking an active role in refactoring your application every week chances are you’re experiencing “technical drift”. Having a problem space that is continually changing necessitates continuous reworking of how your application is designed — what Agile practitioners call “iterative design”. When you’re able to do this effectively, you can round off the peaks and avoid some of the pitfalls of Big Design.