Technical Debt
Typical way that competent developers end up with technical debt:
1. Customer/user/consumer has a vague idea of what they need but doesn't know how to express it.2. Developer works with customer to learn their business and understand their requirements. 3. Developer throws together a prototype to confirm that he understands the problem.4. Customer sees that developer is on the right track. If these 9 enhancements are done, then we'll really have something. 5. Developer quickly adds 9 enhancements to prototype.6. Customer loves it! Move it to production so we can play with it for a while.7. While customer plays with it, developer maps out a plan to architect, refactor, and scale the prototype to be "production worthy". 8. Developer is pulled away to 5 other urgent projects.9. Customer continues to use prototype as production software.10. Two years later: "Who wrote this shit?"Which quadrant does that fit into? Original thread: http://news.ycombinator.com/item?id=881330