Custom line of business software has to be one of the worst things to outsource. Consider the following: "the entree comes with bread and soup or salad" I really have to have a face to face conversation to know what the options are. Conversations are orders of magnitude more effective than written specifications to determine true requirements. It usually takes more than one iteration to really understand the business problem and value that a software feature can add.
It is common in software to see the construction metafor used. I just give the developers the specifications and then they build or contruct the software. This is wrong. The only real specification is the code itself. The compiler or the runtime builds the software. What this means is that the proggramers themselves by default become the architects and designers. The only way they can make the right decisions aligned with business needs is if they truly understand the underlying business domain. This is why outsourcing typically fails. If the spec is written well enough, then the software is pretty much finished as well.
Sorry that I cannot speak directly to CAD work. I have seen graphic design fail in similiar ways when outsourced.
|