> What I have seen work are rotation programs where developers spend some time as first-line support (maybe 1 week per year). When doing so, they help educate the rest of the support staff, and they get great exposure to real users facing real problems.
This skirts the real issue, though, which is that the person you get on the line should have the power to fix your problem. Putting developers on first-line support would only help if they were still developers while they worked there, with all the same access privileges and tools available to them.