What is Technical Debt and How to Avoid It