This isn't effective at a large org, but if you're running a small company/startup, just have an engineer "help out" with support every so often. We'd ask devs to run the support desk when the person was on vacation and also had a general rotation through.
It's good for building customer empathy but also for helping the people who build the product understand how it's used. The intuition you build up from those experiences is very powerful.
Also, about two hours into handling support tickets for the same issue, 99% of devs will just fix the problem. So you create a very elegant incentive structure for bugfixing that circumvents a lot of the traditional structural issues.
Of course you can't do this in a big company, which is one of the structural disadvantages that come with size.
replies(2):