I don't think that it's a coincidence that the world's richest man is a software programmer.
Software programming reveals the predictability of the unpredictable. Even smart people who write code very quickly find themselves dealing with unexpected, unpredictable results. These are called bugs. Bugs can be trivial, causing text to overlap in places it shouldn't. Bugs can be catastrophic, locking up the system or causing a program to crash. Bugs are inevitable because lines of code interact in ways that our brains are simply too small to predict.
Microsoft has had a history of failures, but those failures are rarely the final story. It's not hard to think that Gates approached the business setbacks like debugging software - problems that were not to be taken personally but needed to be understood and solved. What context did the business fail to take into account? What unexpected interaction with customer needs or competitor actions or technology ecosystem rendered the old plans obsolete? What new plan would be appropriate? Gates seems to have taken the lessons of debugging to heart, applying them even in the formulation and execution of business policy. The approach has seemed to work.
By contrast, George has been meeting this week with ... Donald Rumsfeld and Dick Cheney to formulate a plan for Iraq, a session almost guaranteed to be an exercise in defending earlier decisions rather than discarding them as failed. His administration's earlier announcement about unveiling a plan in December has been pushed back to January. Already George has indicated that he's resistant to the solutions offered by the Baker - Hamilton report. His refusal to listen to that commission or anyone else on the topic of talking with Iran and Syria suggests that military action is inevitable, action that will suck him deeper down the rabbit hole.
It's not obvious that George has written a line of code in his life. As George has encountered problems with his Iraq policy, he's failed to get the message that his thinking, his policy, has bugs in it. Instead, he's blamed the computer (the global community), the operating system (the political dynamics of the Middle East), and the user (the Iraqi's). Never once has it occurred to him to take those as givens and adapt his policy to those realities. Never once has it occurred to him that many of the bugs have resulted from unpredictable (or even ignored in advance) interactions between pieces of his own policy. For George, programming (or policy) bugs are personal.
Bill Gates has become the richest man in history. George Bush has become the worst American president in history. The difference could be as simple as their different levels of willingness to acknowledge bugs and go about the difficult business of debugging policy and thinking in order to better understand reality before taking further steps to change that reality.
If there is one bit of certainty in the midst of all this uncertainty it must be this: we can't change reality until we change ourselves and we cannot continue to change reality unless we're willing to continue to change. And this is perhaps the defining failure that has made the rest of George's failures inevitable.