I realized this as a major industry challenge a few years back, as the designer would throw the design that has been completed across the fence and will wait for the engineer to execute it. This would result in either the designer imagining completely pie-in-the-sky scenarios which cannot be engineered within the given timeframe. Or the Engineer building it and the designer later realizing it could've been a much better design. This leads to a lot of back and forth.
For the last 8 years I've actively tried to solve this problem, and have been at the helm of roles which straddle both ends of Experience (Design and Engineering). I am a strong advocate of designers being able to code, and vice versa.
However, this is a very rare hybrid skill-set in the market as of the moment. To counter this, I've worked with teams to have both the designers and developers on the same team, and collaboratively build stuff. The trend that is working very well is reducing time spent on PhotoShop, Omnigraffle and design more so in the eventual medium - which might be the web, for example.
This collaboration helps engineers bring available affordances and interaction possibilities of the medium to the conversation and designers can focus on the larger taskflow solutions and interaction design.
Happy to answer any queries in person, Feel free to reach me.