The place where I found that to be most effective was taking testing, sort of, to the ultimate: going to visit customers. I did some of that early in my career and that was a great experience, having to go live with a customer for a week, helping them to install a new system, and helping them to work out the problems with using it.
It gave me a huge amount of insight into what it’s like to actually use our stuff and what I want to be doing for the benefit of the people who are going to be using my stuff. Going back afterwards, developers who had not had that experience all seemed arrogant to me in a way which was completely inexcusable. The lack of respect they had for the people who used our stuff was appalling and it was basically a consequence of their having never met those people.
In my experience this has been very true. Working directly with customers ON SITE can be very painful initially (and management tend to be very wary of letting developers loose on client sites). But handled correctly it benefits everybody. From a personal point of view I love developing on site. It stops distractions, it speeds up feedback and it puts your mind into a different mode.
Oh, go and order the book now if you haven’t got it already. As a developer (on a good day) I really love the way that different people (brilliant people) have different views on good development. And if you’re not a developer, borrow a copy and leaf through. You’ll learn a little about how they tick.