From time to time I amuse myself in other peoples failures. I know I’m not alone in this ignoble endeavour. There’s a lot of sites that are pretty much aimed at poking fun of projects that failed and code that is all kinds of shit. I can understand why you end up writing shitty code when learning, and I can understand why you fail projects in regards to deadline. I have little understanding of how on earth you can manage to run a software project completely into the ground when you’re paying some professional people to do program it for you.
How on earth can you hire someone to develop for you without checking their work?
I grew up with an image of hired developers being the übermensch of software development. The hired guns of the developer world, the special forces to be put in where brave men have failed. As I came to understand, this is not the general case. Especially when this comes to outsourcing.
Again, I’m drawn to the analogy of building houses. You’re recognizing that you cannot make the house in person, so you’re hiring other people to do it for you. This is all fine, and it’s a good sign that you’re not going to take on something you know you don’t truly understand (though it makes for pretty good TV shows). And, then the house is built you move in without inspecting it and complain when the roof leaks and the walls are full of mold.
And it’s not very hard to check the quality of software. Sure, to understand a piece of code thoroughly is hard, but to get a general sense of quality takes all of a few hours for an experienced developer. Even if you’d pay a consultant triple the normal hourly fee to go through someone elses work and critique it, it would be the best money you’d spend on the project. And, yes, it needs to be someone who isn’t the one who make the system.
At times, you don’t even need to do the actual review. If the ones developing the system fear the reviewer, then that is probably good enough evidence that the system will suck to high heavens come the review date. Someone who writes competent software would relish the opportunity to learn from the reviewer.
I know I would. Do take my word for it and check my stuff.