I call this the problem of noise and loss of information. If someone has to write a specification and move on to another one, there will be a noise. Imagine customer -> product -> analyst / ux -> dev. etc. At each level, a little bit of information is lost. One possible solution is that the devs. are partly involved in all phases of the specification and design. This could reduce the problem of noise and loss.