Yeah, but who picked the outsourced company? I wouldn't have fired him, but have him do the outsourcing, and see if he can make it work for the entire department.
Plus, just allowing access to code and having them deliver it isn't the end. You need to be involved in Quality Management (code reviews, testing, etc.) to make sure they are doing a job to your standards (or better!) That stuff takes time and it looks like he was managing it well if he was getting good reviews.