Re: Detailed article about Mars Rover falure in EE Times
From: Steve at fivetrees (steve_at_NOSPAMTAfivetrees.com)
Date: 02/27/04
- Next message: Leor Zolman: "Re: Binary constant macros"
- Previous message: Pete Fenelon: "Re: Binary constant macros"
- In reply to: John E. Perry: "Re: Detailed article about Mars Rover falure in EE Times"
- Next in thread: Paul Keinanen: "Re: Detailed article about Mars Rover falure in EE Times"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 27 Feb 2004 21:19:24 -0000
"John E. Perry" <j.e.perry@larc.nasa.gov> wrote in message
news:c1o48d$ngc$1@news2.news.larc.nasa.gov...
> You can't "design complexity out" without changing the problem. Of
course,
> you can (as others have pointed out) make your solution (_not_ the
problem)
> more complex by inappropriate approaches to your problem's solution.
I fear I've either expressed myself badly, or we're getting into semantics.
I fully agree that a problem has a given complexity. But how that problem is
expressed is extremely subjective. Some people have a knack for making
something simple appear complex, and vice versa. I don't believe I'm saying
anything new, or controversial - perhaps I'm just saying it badly ;).
I'll concede the point with respect to the defined problem. I would nitpick
just a little - I've frequently sat down with customers and focussed them on
requirements, rather than expectations, and simplified the spec with no loss
(frequently even a gain) of functionality, just subtly differently
expressed. Stage #1 of complexity management.
I don't concede that the *design* has to be complex, though, at least not
when well decomposed. In hardware terms, discrete components are not hard to
understand individually. Collectively it needn't get any tougher, depending
on the skill of the designer - and of the person doing the schematic, if not
the same. We've long since developed the art of partitioning to enhance
understanding and hence reliability. Nothing new there. Divide and conquer
etc.
That's really all I'm saying, but applied to software. For me, a "good"
design is one where I can rapidly assimilate the overall functionality of
the thing. Moving on down, each element is clear and well-partitioned. If
the interfaces are "good" (in my terms), I won't find something at the
lowest level that invalidates my high-level understanding. Structured
design, and more latterly OO, have stressed this point. The challenge is to
make this a routine reality - I don't believe we, as an industry, are there
yet. I guess this is why I keep banging on about it.
I said:
>> All problems, hardware or software, tend to be complex until the
complexity is designed out. If it's still complex at the end of the
exercise, then the exercise has failed. <<
I could no doubt have expressed this better, but I do literally mean it -
the ideal (for me) is where complex functionality can be achieved in the
simplest and most comprehensible way. For me, this is the primary objective
of good design. Hardware folks know this, and frequently achieve it.
Software folks (I believe) also know this, or should do, but frequently
(usually?) fail to achieve it. I find this curious.
I note your organisation as NASA at Langley. Ah, a name most familiar from
the several dozen biogs on my bookshelf ;). I quoted Bob Gilruth earlier in
this thread as a staunch defender of the KISS principle - he was a Langley
man, IIRC?
Steve
http://www.fivetrees.com
http://www.sfdesign.co.uk
- Next message: Leor Zolman: "Re: Binary constant macros"
- Previous message: Pete Fenelon: "Re: Binary constant macros"
- In reply to: John E. Perry: "Re: Detailed article about Mars Rover falure in EE Times"
- Next in thread: Paul Keinanen: "Re: Detailed article about Mars Rover falure in EE Times"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|