When To Refactor Code - How To Maximize Efficiency and Minimizing Tech Debt