It turns out, many practical problems reduce to the halting problem or other unsolvable problems. However, rather than giving up on these problems entirely, computer scientists use guidelines, or heuristics, to reach good-enough solutions. Check out this page by 101 Computing on heuristic approaches to problems and this thread by Quora on different ways of thinking about heuristics.