The topic of "accidental complexity" came up last week in a few posts about Smalltalk, Ruby, and code generation - but this NY Times piece speaks to the real thing - massive complexity due to the ad-hoc dependencies of various networks and services:
When the electrical grid went out in the summer of 2003 throughout the Eastern United States and Canada, “it wasn’t any one thing, it was a cascading set of things,” Mr. Bellovin noted.
That is why Andreas M. Antonopoulos, a founding partner at Nemertes Research, a technology research company in Mokena, Ill., says, “The threat is complexity itself.”
Some people will read this and advocate strict planning, but that's not going to do it. What we really need are systems that react better to error states - instead of "throw my hands in the air and die", "try to move on as if nothing happened" is probably a better answer in an awful lot of these cases. Not all, to be sure - there are catastrophic error states that require shutdown. However, a bad network card in one system really shouldn't be one of them :)
Technorati Tags:
software development, networks