Imagine you’re a 20-something worker, hitting the grind every day at a startup. You work long hours, grabbing fast food for quick, cheap lunches that let you get back to work.
Sure, you get ahead in the short term, but a few months and many greasy meals later, you’ve slowed down. You feel sluggish, and you’re on the fast track to heart problems. Your quick fix has cost you.
Much like a poor diet, technical debt starts with good intentions but ends in frustrating system failures. But unlike unhealthy meals, technical debt is nearly unavoidable: Today’s agile developers focus on delivering software quickly to solve a market need. Developers who over-architect or over-code software only delay launch and waste money.
How to Develop High Quality Software - Every year, organizations commit themselves to key objectives. Oftentimes, this is achieved via metrics-based performance goals that may include quality goals, and leveraging best practices to streamline their business process. Ultimately, measuring the impact these objectives have had on the organization involves some form of testing and reporting. Savvy employees know to ask for a list of what they will be judged on well before they are reviewed – yet when it comes to developing new software products, defining goals and objectives for testing is often over-looked.
The Phenomenon of Technical Debt - The technical debt metaphor is gaining quite a bit of traction in the software development world. This term was coined by American Ward Cunningham in a report at the OOPSLA conference (Object-Oriented Programming, Systems, Languages & Applications, an annual ACM research conference) in 1992; he said, "Shipping first time code is like going into debt. A little debt speeds development, so long as it is paid back promptly with a rewrite...