I worked for a small software company that had a good system. Programmers, especially customer-facing consultant programmers, rotated through the support group for... I think 9 month stints. (it's been awhile). It was great experience to see real-world uses and issues. I think it stopped after we were bought by a much larger software company.