In a couple of places, Andrew Koenig has mentioned something he calls The Fundamental Theorem of Software Engineering:
All problems can be solved by introducing an extra level of indirection.
As I work with teams, I notice that I spend a good amount of time making sure people are talking directly to the people they need to talk to.
It makes me wonder.. Could there be a Fundamental Theorem of Project Management?
If there is, it might be:
All problems can be solved by removing a level of indirection.
The Wiki at http://c2.com/cgi/wiki?ButlerLampson suggests that it was actually David Wheeler who said that. I certainly heard it attributed to him by his colleagues.
I tend to think of adding a level of indirection to coding problems, and agree about removing a level with people problems.
Both theorems don't scale well for performance. But the "Project Management" version hits a wall much faster.
Given software with, say, three layers, that performs well, you could add perhaps a couple of layers before performance impact is seen.
A typical (manageable) project has but 2-3 layers, take away 2 and you have a flat model - this is very unmanageable, whatever other problems may be solved.
So, IMHO, what's probably more accurate to say is that "... many problems can be solved .... but some others could be created ..." " ... in practice all problems cannot be solved by ... indirection."