Brittle systems (was Re: Homeless)

From: Emlyn O'Regan (emlyn@one.net.au)
Date: Thu Sep 14 2000 - 07:54:56 MDT


Spike reponded:
> Emlyn O'Regan wrote many wonderful notions in his homeless post,
including:
>
> > ...As far as I can see, the tools have improved incredibly
> > beyond what I was using 10 years ago when I started uni. So much more is
> > possible; it's astounding. And yet, paradoxically, it is harder than
ever to
> > be a programmer. The job is getting more and more difficult. Why?
>
> So, Emlyn has been hiding his light under a bushel. Why do you
> indulge in as many wisecracks as... I do, when you are capable of
> writing insightful passages like these? Shame! {8-]

Same reason you do old boy; too much work in it. Much more fun up here in
the balcony, laughing at the frog (hey there Waldo).

By the way, don't tell anyone that I said programming is getting harder; all
the other code geeks will call me names and hide my pocket protector.

>
> Your notion of software implosion is something I have pondered often.
> I am surely not alone when I confess I have developed code (excel
> macro upon macro upon macro) which eventually became so
> spaghetti-ed and complicated, I could no longer debug the mess. It's
> easier to start over and do it right than try to fix the abomination.
> Excel invites this kind of morass, because the macros start out
> simple, then one tends to add shell after shell over time, kinda
> like... windoze 98.
>
> [snipped most of design for excel based Scorch implementation]
>
> It gets worse from there. It is easy to set up a spreadsheet
> that calculates every second, looks up an atmospheric
> density, calulates a drag, repeats. But then, well, the
> atmosphere table is in increments of 500 meters, and thats
> course, so why not write a linear interpolator? Well, then the
> atmosphere is actually more exponential, so how about
> an exponential interpolator? Next, a drag coefficient
> routine that accounts for the increase in drag at and above
> mach 1, then lets correct for deltas in viscosity of the
> atmosphere, and pretty soon its a mess of code that grows
> and grows in an uncontrolled fashion, layer upon layer,
> until it can no longer be debugged.
>
> The whole project is a total loss. Easier to just start over,
> and do it right this time.
>
> I can very easily imagine this case being analogous to what
> could happen to our interconnected networks. It really
> could overwhelm our best efforts. At this point Im not even
> part of the solution, Im still part of the problem. spike

It's not as bad as you make out. That whole process you went through in
Excel can be chalked up to prototyping, because the thing you design for
version 2 will be well informed by your experience in Excel, and will likely
be a much better, focussed effort, and eventually more useful and satisfying
product, than if you'd started by doing it "the right way".

This is essentially the RAD development approach (yes I'm a heretic), and is
a pretty common way to go nowadays. The key point to absorb is that it is ok
to throw your work away and start again, because you are never really
starting again; you take what you learned in the last stage, and apply it to
the next. One corollary of this approach - make sure you learn something
from past efforts, especially the mistakes!

The networked internet & business world is much like a giant version of
this. People cobble stuff together as quickly as possible, and are hitting
local development maximas all over the place, all the time. They throw
things out and rebuild them, head in new directions, pop on some patches,
fire some people, jump up and down a bit, and the world goes on. The giant
software object which is all of these systems, all talking to each other,
all trying to do their own little bits of the giant whole (whatever that
is), is actually kind of robust, so far, even though it's parts are not,
because all these people are scratching away, tinkering and breaking bits
and fixing other bits and so on. It even gains functionality steadily.
Dynamism in action.

I think human ingenuity will overcome the "intractable" problems we see now.
What else can I say? I'm an optimist. That'll get me killed one day, of
course.

Emlyn



This archive was generated by hypermail 2b29 : Mon Oct 02 2000 - 17:37:58 MDT