One of our consultants is helping out a client with a software development project; our consulant is acting as the test director and lead tester. In our organization, the test director role is tremendously important, and the test director has broad powers to question the development team's approach to doing things.
On this particular project, we're responsible for testing the work of another software development firm, so the team consists of our person, the client's people, and the third-party vendor's people. The third-party vendor is having some trouble getting the software to work well, a problem which has been apparent since the very start of testing. Seeing the difficulties the team was facing, our consultant suggested to the client that a code review might be helpful.
The reaction from the client was astonishing. "It's not our code," they said, "so we have no right to review it."
Now, you can get into interesting legal arguments over the difference between a work for hire
and an off-the-shelf product owned entirely by the vendor, but in this case the work is being paid for by the hour, so I think the client has a fairly strong case. Nevertheless, what astonished me was the unwillingness to peek under the hood, to see what was going on and whether the vendor is merely ironing out some minor problems or really has some fundamentally broken software.
If you hire someone to build custom software for you, or even to extend and customize an existing product, you should demand the right to examine the software developed on your behalf. Good software developers will happily agree and may drag you kicking and screaming into a code review; bad software developers will look uncomfortable and even angry if you suggest that a code review would be a good idea. If a developer isn't comfortable with you looking at their code, it's probably a good idea to look for another developer.
If you hire someone to write software for you, you have a right and a responsibility to know what's going on. The best projects are those that have continuous involvement from the customers/users/owners, and the worst are those that are developed in a vaccuum by weak developers (strong developers refuse to work in a vaccuum.)
Assert your rights. Look under the hood. Even if you don't like what you see, it's better to know sooner rather than later.