I can't find the original, years-old cartoon. (Update: hereit is. Thanks sc008) But here's a summary (paraphrased from here):
Wally and Dilbert are in a conference room with another guy we don't know. Dilbert says to this guy "What's your secret? You come and go as you please, take long lunches, and walk around like you own the place. What gives?"
The guy replies, "Fifteen years ago I wrote 15,000 lines of spaghetti [indecipherable programming code] Cobol that runs the entire payroll system."
Wally and Dilbert genuflect: "The Holy Grail! We're not worthy!"
The guy winks at them and says "You boys will see a little extra in your checks this month."
Dilbert and Wally are impressed because the spaghetti code guy has written code that is indispensable to running the company. And he wrote it so poorly that only he can keep it running. So he can name his price.
Sound familiar? It should. The same scam is now being replicated on a national scale. And the price is in the trillions.
Apparently, the spaghetti code guy later got more ambitious. He left Dilbert's company, found some friends and took his talent to Wall Street. There they wrote the whole nation's payroll system using derivatives. The code didn't work well-- it concentrated risk instead of diversifying it, it increased debt rather than wealth-- and it was so poorly written (referencing CDOs squared and SIVs) that only they could understand it-- just like the payroll system at Dilbert's company.
When the whole buggy mess finally crashed, the nation's management didn't want to take the time or lose face to build a new payroll system, so once again, Spaghetti Code Guy and his pals could name their price.
Complexity
There is nothing inherently wrong with complexity-- it can be both beautiful and necessary. A human heart is phenomenally complex (think of all those uncountable zillions of individually beating cells) and yet it works much better and for decades longer than far simpler artificial alternatives. Any cell-- even that of a primitive bacterium-- is an incredibly complex and rich mixture of feedbacks and feedforwards of which we understand only a small part.
Even within economics, complexity can be a blessing. As Milton Friedman famously pointed out, making a pencil is very complex: you have to make the saws to cut the trees to get the wood, to mine and process the graphite, to grow and treat the rubber for the eraser, and finally to assemble the whole thing. And yet the whole complex system works so well that pencils are almost literally a dime a dozen.
All of these complex systems have something in common-- no part is irreplaceable. If one heart cell dies, others will do its job. If a mutation occurs in the code that produces one enzyme, other redundant enzymes will take over. If there is a shortage of wood in Oregon, one can use wood from Washington.
But complexity can sometimes bring problems. One classic example is what is known as Spaghetti programming (the type mentioned in the Dilbert strip) in which each piece of the program depends on many others, making the whole thing look like a bowl of spaghetti. If you touch one part you mess up a hundred other parts. So no one can understand the system except (maybe) the guy who wrote it.
Likewise, our financial system right now is so complicated that very few people can understand it. A mafiosi enforcer in a New Yorker cartoon (which I also can't find) complains "These CDOs are so complicated that I don't know whose legs to break." Even Jamie Dimon, CEO of Morgan Stanley, agreed: "CDOs squared? What the hell were we thinking? These things were way too complicated!"
There is no reason it has to be that way. We distribute water, food, electricity and numerous other commodities throughout the nation. None of their corresponding distribution systems rely on spaghetti code understandable only to its creators.
The current financial system has failed
I'm not going to spend too much time here because many others have made this point far better than I could. The system of derivatives designed to spread risk through the market instead concentrated it in a few specific areas (like AIG). These failed, leaving the taxpayers liable for enormous amounts of risk. So this aspect of the system did the exact opposite of what it was intended to.
I am not aware of any studies showing that our system has allocated capital more efficiently than before all these fancy products were created.
By contrast, the financial systems of other countries (and of our own country in the past) have managed to allocate capital, provide credit, and perform the other critical tasks of a financial system without such complexity. So we appear to have complexity for complexity's sake.
Short-term, we are stuck with complexity
There have been many defensesof the bailouts, and nearly all have one point in common: the current banking system is the only one we have, we can not build another in the short-term, it performs an essential function and we have to get it working again. Likewise, it is argued that AIG (and other companies) have to retain many key personnel, because they are the only ones who understand the system.
I think they are correct.
We are stuck just as surely as Dilbert's company was stuck with the only payroll system they had. It wasn't a very good system, but if you can't pay your workers, you might as well give up on the company.
What do we do now?
First, we need to recognize something that software developers learned years ago:
Any fool can write code so complex that only he can understand it. Great programmers write code so simple that any fool can understand it.
(Unfortunately, I can't track down the original version or origin of this quote. Update: It appears I slightly misremembered a quotation from Martin Fowler: "Any damn fool can write code that a computer can understand. The trick is to write code that humans can understand." Thanks, dmhlt 66 and Positronicus.)
The people who built our financial system are fools precisely because they are the only ones who can understand it. One major goal should be to ensure that they are never entrusted with responsibility again.
Second, software developers routinely review code (among other reasons) to ensure that it would be understandable to others. Likewise, we must not only regulate transparency, we must regulate understandability. All critical or semi-critical financial systems should be understandable by someone knowledgeable in finance.
I sometimes wonder if those who are trying to solve the crisis merely by keeping the system running as it currently stands are basically hoping to see a little something extra in their paychecks next month.