When you have developers given specs for small parts of larger systems, no stake in the outcome, small amounts of money, and no say in the design of the system, I'd expect bad results.
Generally speaking you get the best from programmers when they have a stake in the larger picture, some say in how and why things work the way they do, responsibility for their work, and at least some autonomy.
Generally speaking you get the best from programmers when they have a stake in the larger picture, some say in how and why things work the way they do, responsibility for their work, and at least some autonomy.
Why should it be different for outsourced work?