Design debt diary
The term technical debt (or design debt) is well-known in the developer community. It basically means that due to various factors (lack of budget, time, or experience, careless planning, etc.), certain elements of a piece of software are simply 'bolted on', rather than homogenously integrated. Consequences are eg. buggy performance, or a disjointed user experience. Mind you, it's completely normal for software to build up debt – after all, software (and humans) are never perfect. However, if this debt is allowed to get out of hand, working on or with the software becomes impossible, and it may have to be re-written from scratch.
Constant, meticulous, and holistic maintenance is the main weapon in combating technical or design debt. This workflow, however, must be fuelled by continuous analysis, planning, and perhaps most importantly, new ideas. Unfortunately, ideas to update or streamline the software are seldom available on tap. Whether you're in the shower, eating out, in the gym, or browsing the web in your free time, make sure to keep some sort of log of those flashes of inspiration. Better still, find a way to share them with your team. This way, ideas can be discussed, assessed, built upon, or thrown out long before you have to put them to the test.
It's like making regular payments into a savings account – keep at it and you may just be able to keep your software in the black.
Very well written article!