My professional career has mostly been in IT ops. I've worked for companies that do requirements analysis and design in-house, write up a huge spec, send the spec to an offshore development house, then simply acceptance test the software that is sent back.
Companies know that the quality of the software they get back might be lower than if they hired the bestest, smartest developers in the world. But it doesn't matter because keeping the production cost of the asset low means that they can maximize long term profits.
Writing good software is not the same as writing profitable software.