That cartoon points out that airplane engineers create good, reliable things, and software engineers don't. But airplanes are reliable in part because of the software that they run. So to me the question boils down to "How come we create good software in one case and terrible software in another?". Well, if you give a programmer incorrect/incomplete requirements, not enough time, don't do enough testing, and generally cut corners, the software is probably not going to work very well.
And while it's true that some programmers are better than others, poor quality work should never make it past the testing phase.