The problems that we target are often deeply entrenched, humongo societal problems. They are complex and have many different factors that contribute to them. So one reason that it is so difficult, is because I think it can often take a lot of time and searching in order to single out the root causes. I also think that in order to find root causes, people have to use approaches that are exploratory, evaluative, and experimental. There are very few organizations and individuals using the necessary methods to identify causal factors of societal problems.
I think it takes careful research using both qualitative and quantitative methods to identify the numerous factors that make up the various problems. After we think we have identified the problems, we usually try and implement a solution. I think this is really the most valuable stage for determining root cause. If we find that a solution, that is based off of sound theories for the existing problems, is highly effective, our theory of the root problem probably contains some accuracy. The problem here, is that solutions are often rolled out in a program that has different aspects and treatments. Which means that even if a program is very successful, it may be difficult to isolate which aspects of the program have the greatest causal effect on solving the problem.
So the main problem in my mind, is that there is very little data, very little quality research being done, and too few evaluative and research based organizations, to really start to grasp the root problems with accuracy and confidence.