Stop (if you are) using trial and error, hacky approaches to solving your problems.
I can't comment on your domain complexity but this in itself helped me improve a lot.
Just try to understand what you are doing and why you are doing it. The idea that a problem should be 90% analysis and 10% execution has a lot of merit.