If programmers ever do provide customer support, I think they should probably never be expected to do both during the same time period, and possibly not even the same work day.
The economic benefits of specialization are such that even if developers can provide awesome support, they should be doing the job they are best at--software development--as much as possible, and the support should be handled by a person better at support than software development. The workload might not balance out perfectly such that each person does exclusively one job, but there is no way in hell you should be attempting to handle customer support without at least one customer support specialist.
Let the developers support that person if necessary, but be aware that pre-empting them with support-task interruptions will send your regularly scheduled development to Hell with all the losses from context switching.
And do you really want to pay developer rates for customer support work while constantly giving your employees work completely unrelated to their self-image or career growth? It's fine for them to be involved with support, but they cannot be responsible for it.
The economic benefits of specialization are such that even if developers can provide awesome support, they should be doing the job they are best at--software development--as much as possible, and the support should be handled by a person better at support than software development. The workload might not balance out perfectly such that each person does exclusively one job, but there is no way in hell you should be attempting to handle customer support without at least one customer support specialist.
Let the developers support that person if necessary, but be aware that pre-empting them with support-task interruptions will send your regularly scheduled development to Hell with all the losses from context switching.
And do you really want to pay developer rates for customer support work while constantly giving your employees work completely unrelated to their self-image or career growth? It's fine for them to be involved with support, but they cannot be responsible for it.