A few of the sessions I went to at MoSoConf were focused on the “designer-developer” relationship, specifically how to make it easier for the two disciplines to work together. There were a lot of good suggestions here, including having a common respect for each other’s education and experience, and focusing on communication. A lot of the problems identified in these sessions focused on the transition of a project between development and design, implying that the two were separate processes. This is for various reasons, the main one being co-location. There was an overarching concept of “handing work off” to the next person – either a designer handing an interface to a dev, or a dev handing a prototype interface to a designer.
The best work I’ve ever done as a software developer in the UX / UI realm has been with a designer sitting side-by-side with me. There was no formal hand-off process, where design was “done” with something and it was up to the development department to pick up where they left off. We didn’t need to spend time trying to translate design documents, or to explain technical limitations, because we were sitting beside each other. If the designer wanted to change a style or placement of a control, I did that right in front of them. If I wanted to demonstrate why a particular control wouldn’t work in the UI, I could show them immediately. There was no time lost to UX or UI uncertainty.
As soon as you say the phrase “hand off” you’re immediately going to run into a communication issue. No matter how well done or comprehensive your design documentation is, you will never be able to match face-to-face collaboration. You can do things to lessen the impact of this communication issue, but you will never get to that level of in-person collaboration.
I realize there are technical / geographical limitations that prevent this from happening, but you need to realize that there’s a cost associated with that. The hours wasted trying to understand a design document, the days wasted implementing a design that doesn’t match up, or the weeks lost to redesigning an interface because the devs didn’t know what UX was going for, all cost your company. At that point it might be worthwhile to chip in for a flight to get your designer and developer together for a few days to make up for time you’ll lose in the future.