My daily job (release engineer/system integrator) often puts me between rock and a hard place (manager(s) on one side and developers on other).
Biggest mistake that can be done by managers is to follow hype and seek for a new next-big-thing ("oh, my, we need this and that, I saw it on blogosphere ")... search under "Cloud" these days; or just read good old Dilbert:
http://dilbert.com/strips/comic/2011-01-07/
Developers (at least some of them), on the other hand, can be very close-minded and encapsulated in their daily routine ("I don't want to upgrade my two year old Eclipse", "why do we actually need all those integration tests" and "my source code is easy readable to everyone, I don't need to write any comments").
It is what it is
Luckily, it is not all that bad ;) All what it takes is chose managers among those who are at least intermediate technical skilled, and force developers to learn and practice soft skills (to work as a team, not as group of individuals).
This concludes my report from no mans land