Quote from vikana:
A related issue is that non-programmer often don't appreciate the level of detail required to fully implement what's being specified.
It's generally not the calculations that are at issue, but all the other things that could affect the validity of the calculations: crossed quotes, low volume, bid/ask spread much wider than normal, slow network (ISP problems maybe), unannounced broker API "upgrades", etc.
The only way for a relationship to be productive is for the trader and developer to "co-develop" the software, and consider it a joint project.
Personally, I've co-developed several systems with others. Often I coded things, but just as often I discovered things that ultimately become part of the final software and were outside the original specification. So unless both parties consider it a joint project I just don't see how it can succeed.