Technical debt is a concept that reflects the omission of steps or shortcuts when coding or managing a project instead of applying the best overall solution from the beginning. Basically What’s the cost tomorrow of a shortcut from yesterday? Each time you make a sub-optimal technology decision, you’re incurring debt for future re-engineering and refactoring of the cost of that decision.
It can happen due to premature adoption of a technology, inadequate integration, tight code coupling, misunderstood implications of middleware dependency, poor design, poor architecture and engineering, not taking into account Cyber security and UX from the beginning of the project.
Many times this happens because the focus is to deliver on Time and on Budget but remember that an insecure project will have consequences later, a project that has poor usability will have adoption problems.
IT contracting companies may want to incur in Technical Debt in order to bill extra hours later
Remember incurring technical debt will collect later with compound interest.
More information on Technical Debt is available in Wikipedia:
https://en.wikipedia.org/wiki/Technical_debt