Comments on: On Complexity: when you can't even get time right
Surprise! The clock on my XP SP3 laptop was wrong by 1 hour today.
Why? Because the USA switched to daylight savings time (DST) this weekend but many of our computers did not. If you search the web, you will find many users complaining about it.
I know that I will get many messages from people commenting and saying, oh, well the reason is you did not download the zyx or xyz OS patch recently, blah blah blah.
Look, I don't care. Getting the time right is not brain surgery. All of my user settings and options are correct, this OS was completely reinstalled and fully updated two months ago, with all patches!
And, my OS X Mac didn't have a problem, nor did my various Linux boxes.
Please, stop making excuses for Microsoft.
Those excuses are really getting old. 20 years ago, well, maybe ok. Now, in 2009, I'm tired of hearing them.
On one hand you're telling me that I'm running one of the most popular, widely used, well recognized, "most advanced" operating systems on earth from the absolutely largest software company on earth. And then, on the other hand, you think it's ok it fails to set its time properly.
I am a language and operating system designer. That is what I do, and what I have done now for almost three decades. I know what's going on in these systems, and it's time you stop accepting it as "that's just how it works".
The root of the problem is complexity.
Most designers don't think about complexity, yet it is a corruption, a disease, an erosion that eats its way through all systems of all types. To ignore it, to not recognize it, that's foolishness and insanity. Yet that's our modern world, isn't it?
And yes, it goes a lot deeper than just this little DST glitch, and it's much much bigger.... why banks fall, why governments fail. And no, I'm not talking about time here, I'm talking about derivative actions built on derivative actions, built so complex, that no one knows, or even has any idea, how the system should behave or react to simple input changes, let alone extreme situations.
I've been biting my tongue far too long. It's time to start saying a few things. If you don't understand complexity, then you and your projects are ultimately doomed. So, let's take a better path.
More to be said...
It's time to start saying a few things.
I think you should write the "Big Damn Simplicity Book", after R3 is done. :-)
However, the human factor plays in as well. Those pesky humans.
It's of course depressing to watch people mismanage complex systems, But, it often happens, because they are too proud to admit mistakes, or worse, have political or monetary interests in keeping those mistakes alive.
And it's not just a matter of making money on supporting complex systems, as you've mentioned earlier, but various interests to keep certain (talentless) people in the loop, to stay in power and to keep money flowing into the right pockets.
I think this is more widespread than we think. Here in Denmark, I've observed this happening on a government level, and for little me in this little country, it's quite frightening.
Otherwise, why would companies like Microsoft keep re-inventing perfectly well-functioning systems, poorly? So they can patent them, spread them and push the well-functioning systems out of the way to make a few more dollars.
So, systems can be complex and failing for other than purely technical reasons.
It's easy for us to imagine a perfect open system for a government, built on REBOL. It would be fast, small and painless to use. That's small government! But it would only last until the next greedy idiot takes charge.
Carl - you are the person who gave my IP POV the most inspiration. Thank to you, as an IT manager of one pharmacy company here, I am succesfully distinguishing the good and the bad aspects in IT world.
I don't want to wish anything bad to any guy out there, but last month we were visited by 9 guys from SAP. 3 of them did not say a word during 8 hours sessions. Most of them take 5times bigger salaries than average IT persons here. Their prices and licencing policies are just insane. I hope recent world financial crisis will shake IT world too ...
As for your particular problem, I never run into time related problem with XP. I observed one thing, which is stored in RAMBO, and it was related to REBOL and timezones, but dunno where the bug is.
Clock on my MS boxes is working fine. Automatically adjusted. But I keep automatic updates on.
Financial, legal and accounting professionals tolerate and sometimes even support this tendency towards unknown complexity. Most implicitly understand that it creates 'makework' waste, yet cannot resist the perceived increase in business.
A systemic benefit of clarity promoting greater comprehension is avoided, in favor of personal or corporate power resulting from selling attractively packaged mythology or outright mysticism. Grade inflation increasingly replaced conventional standards, let alone a solid grounding in critical thinking. In earlier days, the same over-indulged little darlings would have been found in LBO's in the LTV days, and hawking junk at Drexel Lambert.
Once a vanguard of these dumb yet impressively credentialed hucksters realized that a whole new essentially unregulated non-transparent marketplace of instruments promising to magically balance risk so perfectly, was opened up like a feeding trough, it only took the majority of the rest hopping onto that bandwagon to turn the gimmick into a stampede. A stampede that would eventually wipe out three of the largest, most famous investment firms in Wall Street history, immolated in a fire of their own making.
Coupled with a moral lassitude that enveloped most of the halls of Congress and pertinent regulatory agencies (with the notable exception of the CFTC), the hubris of "bankster" bankers lusting after speculators' returns, together with this widespread well-schooled ineptitude by most of a generation of financial advisors, managers, and 'experts', created a "perfect storm" recipe for massive financial imbalances and market extremes; along with astonishing displays of economic moral hazard foisted upon the public of the United States.
And, at the root of it all, was misplaced and misrepresented complexity. Thus, leading to such chaotic consequences as implied in the "unknown unknowns" statement issued by former Defense Secretary Rumsfeld, at one point during his controversial tenure.
In my own experience I have seen over twenty years of hastily rushed and inadequately developed IT projects, on every level from operating systems to device drivers; a frankly pathetic situation where merely some qualities of robustness and efficiency are unusual; even in third release versions, and is seldom seen in initial releases. You may have seen the cover story from MIT's own technology journal from back in 2002 or so, if memory serves: "Why Is Software So Bad?".
What I would like to know is, why does almost everyone expect so much from such a young science? Choosing complexity is like choosing battles in war: one tries very hard to be as wise as possible, because it is often impossible to undo such commitments. One of the best examples of this? The very keyboards we type these messages upon. Better, more efficient designs have been proposed in the past 130 years. Too late; 'rip-and-replace' proved too difficult.
Patience is the desperately needed antidote. Patience with perspective and some wisdom borne of relevant experience. Language design bears aspects of complexity implications on a most sophisticated level, especially so with regards to the relative youth of computer science.
In my opinion, there are few who are as well positioned to accomplish with excellence, as is Carl Sassenrath. And, in turning the tense of this last sentence to address Carl directly: I must say I find it fascinating and very important that you are presently raising the subject of complexity in general.
Bad economic times are usually good innovation times (re -pekr-)!
The world cannot long afford MS, that is a simple fact. Businesses, especially big ones, a lemming-like, but as the economy gets worse (and it has a long way to go yet) smarter becomes better; as smarter is cheaper and much more productive. Lean, modular, easy to adapt, translates into robust reliablity.
Thanks Carl and all, nice read.
My defining philosophy in all things;
"Small is beautiful" (E. F. Schumacher)
"Less is more" (Ludwig Mies van der Rohe)
Your thoughts resonate Carl.
I totally agree, but ... (and forgive the revival of an old debate)
computer time is inherently complex - almost horrendously so:
more significantly, daylight savings time is an abomination:
- time zones are an artificial and error-prone burden
- leap seconds are even more of a nightmare
- times are never exact, synchronized, or equal, yet any computer representation of time will entail these properties
If anything, what surprises me is that there are not more (and more serious) problems with computers and daylight savings time. Like plane crashes, even: "What? I've used an hour's worth of fuel in .01 seconds? Time for an emergency shut down!"
- it is arbitrary - many places do not have or need it
- it is capricious - who decides when it changes and why?
- it is moronic - if you want more after-work daylight, move the start of the work day
- it is aberrant - how can anyone, let alone a dumb computer, deal with the fact that the same time can occur twice in one day?
- it is quixotic - even if you store all times in UT, you still have display problems
Its an OS. A basic function of the system is to get the time right. Many operations depend on the time clock being correct. If that can't be done then I'm not investing any more of my dollars into that OS. Especially since they've had so long to fix it.
I agree with Mark, Daylight Savings Time is an abomination. And operating systems should, well, operate.
Many of the things I'd like to be working on at the moment involve RIA, data visualization, mathematical modeling and domain specific language design. As an old school programmer, I am in sorry need of simplicity, expressiveness, robustness and efficiency in tools.
Please hurry, Carl.
BTW, my Amiga 2000 was still in my basement until last month, and I miss it already :)
Carl, I totally agree! Complexity is a disease, and few people really understand this.
Carl, take a look at the "Viable System Model" from Stefford Beer. And read some stuff from Fredmund Malik.
I think they got the topic complexity and organizations quite good and how to handle it.
The problem is the law of variaty. To control a system with X states, you need a system with at least X states.
Example: If your radio can play three stations, you need a switch with three positions.
That's the base problem: Reducing possible states without sacrificying function.
Like, if you learn the Latin alphabet of only 26 characters, you don't have to read all those books because you know you could write at least all English ones yourself? ;-)
So, um... that's REBOL OS, right, Carl? :) A 64-Bit desktop- and server-centric operating system to offer an alternative and competition to these other complex systems? (well, it's not like anyone ELSE is doing a desktop and server OS, right? *casts a look to Issaquah*)
Don't worry about Microsoft...they over. ;-)
you are absolutely right with your fundamental philosophy.
Reading your always perfect criticisms is a joy for me.
Everything above is true. But guys, is it really rocket science? In the US, time-zones run by zip code. So when the clock checks, it could also check when a zip code is scheduled to change time. QED?
Oh come on, time is not complicated to implement.
Whatever the reasons for Daylight Savings, or any other time zone adjustment, it's a simple process to follow.
It's such a basic component of an OS that it should really have no issues, at any time (...).
This article speaks the truth! :D
Current standard practices in software engineering are basically quackery. I'm foolishly trying to write one of those rich-text-editors-in-a-web-browser right now. It's a nightmare (in a rather literal sense: working on it is giving me nightmares!)
You sum it up well...
"I'm talking about derivative actions built on derivative actions, built so complex, that no one knows, or even has any idea, how the system should behave or react to simple input changes, let alone extreme situations."
If the semantics of simple operations aren't well understood, there's absolutely no hope for keeping control of the complex ones. A value must be placed on formalism and using "exceptional" cases as illustrative examples in the documentation. I'm rather upset about the current atmosphere of denial that projects seem to have in selling their virtues without grounding people in their limits.
(I'm going to flip out if I see one more person touting a "plugin architecture" without laying out a map of how to arbitrate ordering problems between plugins... or what to do if some of the script code goes into an infinite loop... etc. These are things that the industry as a whole is mature enough to know should be considered on day one. You shouldn't have to dig for answers about this in bug reports, it should be an up-front part of the design!)
There's some unfortunate characteristics of complex systems. The role of "criticality" in living systems as a necessary knife edge balance between order and chaos for best health suggests that no complete solution is possible and failure inevitable.
See Civilization, Complexity & Collapse - The Search for Levers for a bit on how this relates to civilizations in general.
Uh. Legislation changed the timing of DST. Tell me how MS could have predicted that would happen?
On every box I had, back to Win95, the time was aligned automatically. So what is this article all about?
DA asks: "Tell me how MS could have predicted that would happen?"
Answer: The could not, but they could leave the DST checkbox on the Date and Time control panel. It can still update automatically, but at least a user can change it manually, if necessary. MS, in removing the DST checkbox, placed too much faith in the consistency of an arbitrary date.
On related issue...
I have a large system that I back up routinely to multiple SD drives. Of course, only changed files are copied by this process. When the Spring time change came, every file on XP was somehow considered one hour newer, so the backup had to re-copy all files, most of which hadn't changed.
This is a basic violation of the Semantic-Presentation split. Every file *should* have a last-write timestamp relative to an unchanging standard (usually GMT). Adjusting for time zone and DST is just a detail for when a time is displayed. Thus, adjusting DST (or time zone) wouldn't affect the file timestamps for backup purposes. Other OSs were doing it correctly since at least 1970.
Post a Comment:
You can post a comment here. Keep it on-topic.