As my company's sole internal developer one of my main tasks is the maintenance of a medium sized inventory tracking .NET web forms application.
The application itself was coded initially by a half-insane programmer with questionable credentials using many techniques (including such high-minded concepts as Ajax and N-tier architecture) that he didn't quite 'get'. It of course has no automated tests, no formal spec, no changelog - heck, before I got there they had never even heard of source control. As you can imagine, the application is incredibly difficult to work with, simple changes take days and routinely break unrelated components in unpredictable ways.
Management has thus far refused to give me time to rewrite the application preferring to fight fires. They do however acknowledge the problem and have decreed that the solution lies in outsourcing.
Now I am skeptical of the ability of this approach to result in an improvement in code quality but with no numbers to put behind any alternatives I am willing to give it a try. I would like to press the team to work in an ALT.NET/Agile fashion, short iterations, full unit testing, and a strongly decoupled architecture as I feel like this is the most likely way to get solid work out of the team.
I am wondering if anyone has any experience with a similar project and any advice they might have. Our company has zero outsourcing experience and the research I have done on this is actually quite negative for this type of project and given our restrictions so any ideas or comments in general are more than welcome.