When you have a real* problem, you need to quickly patch it to fix its real symptoms. A patch is a good idea because it is immediate and you can't fool yourself into thinking you have fixed the root problem, and you can't yet fix the root because it requires research, the right tools, and so on. Even if the patch is messy, it's better than the alternative of doing nothing, and it's better than fixing the root problem because it's very difficult to fix the root while the symptoms are distracting you. Patches cost time and/or money, so this is another good reason to stay solvent and able in every area of life so you can respond to problems as they come up.
As soon as you've patched the problem**, begin the principled correction, that is, the fix of the problem at the deepest, most original point possible. This is much more work, but you're motivated because you know you'll be patching the same problem over and over until you've cut off its source.
Roots have their own roots, and fixing a root problem that has its own causes is just a deeper patch. The only solution is to patch the deepest visible root and dive more deeply into the problem. This makes it sound like any fix is "patches all the way down," but it's not true. Eventually you will reach the point at which the problem is equal to your understanding and make your last correction. Beyond that, you won't be able to tell whether you're making things better.*** Or, possibly, you'll reach the root of all problems, but I can't advise you there as it's well out of my league.
It's also important not to rotely patch one step at a time. Start as deep as you are able and skip as many steps (as other people see them) as you can without creating more work and distraction for yourself.
This surface-to-root approach applies to any field, although I'm writing this with business and programming in mind. If you reach the point where the nature of your work itself is the problem, you don't have to give up what you do, but you will have to find the solution outside of your field and change it.