From: MarkusSchaber on
Hi,

On 10 Feb., 00:28, Seebs <usenet-nos...(a)seebs.net> wrote:

> I don't buy it.  Software engineering isn't the exact same kind of thing
> as structural engineering is, or the exact same kind of thing as electrical
> engineering is, but then, those aren't quite exactly the same kind of thing
> either.

I personally think that the main difference between "Software
Development" and classical "engineering" is the level of abstraction.
Software development tends to have far more levels of abstraction, and
even their lowest levels of abstraction build on top of those levels
provided by the electrotechnical engineers.

http://www.artima.com/weblogs/viewpost.jsp?thread=255898 is also a
good reading on why software development is neither engineering nor
mathematics.

Markus
From: Seebs on
On 2010-02-10, MarkusSchaber <msr(a)soloplan.de> wrote:
> I personally think that the main difference between "Software
> Development" and classical "engineering" is the level of abstraction.
> Software development tends to have far more levels of abstraction, and
> even their lowest levels of abstraction build on top of those levels
> provided by the electrotechnical engineers.

This is true. However, I don't think that makes it "not really engineering",
any more than using a shovel means you're not *really* digging, just using
a tool provided by someone who makes digging implements.

Of course... It would make sense for me to think that way. Since I do
software development, and that means I spend a lot of time working with
many levels of abstraction, I tend to think that abstractions built on
other things are not all that different from the things they're built on.

-s
--
Copyright 2010, all wrongs reversed. Peter Seebach / usenet-nospam(a)seebs.net
http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
From: Malcolm McLean on
On Feb 10, 1:02 am, John Koy <John....(a)example.com> wrote:
> Arved Sandstrom wrote:
>
> As long as we disclaim all liability and give no warranties for the
> solutions/products we build, SD cannot be an engineering field and the
> term "software engineer" remains as an oxymoron.
>
Basically no-one knows how to built bug-free software, so the lability
exclusions are necessary. They would be commercial suicide in any
other field. That doesn't mean there is no such thing as software
engineering, only that it is new and undeveloped. Boilers used to
regularly explode at the beginning of the industrial revolution, now
such accidents are almost unheard of.


From: Arved Sandstrom on
Malcolm McLean wrote:
> On Feb 10, 1:02 am, John Koy <John....(a)example.com> wrote:
>> Arved Sandstrom wrote:
>>
>> As long as we disclaim all liability and give no warranties for the
>> solutions/products we build, SD cannot be an engineering field and the
>> term "software engineer" remains as an oxymoron.
>>
> Basically no-one knows how to built bug-free software, so the lability
> exclusions are necessary. They would be commercial suicide in any
> other field. That doesn't mean there is no such thing as software
> engineering, only that it is new and undeveloped. Boilers used to
> regularly explode at the beginning of the industrial revolution, now
> such accidents are almost unheard of.

It's not a question of bug _free_ software. There aren't any other
fields I can think of where it's possible to get away with no liability
simply by claiming that it's impossible to achieve perfection.

It's also not entirely an issue of software "engineering" being an
infant field. The fact is that there exist adequate processes that apply
to every stage of the software lifecycle, and most software shops only
pay lip service to some or all of them. Doing proper requirements
analysis is not "undeveloped". Doing proper design is not "undeveloped".
Doing proper implementation in your languages of choice is not
"undeveloped". And doing proper testing and QA/GC is not "undeveloped".

In other words, we have adequate processes available but tend not to
adopt them. And _then_ because the products are seriously flawed we
disclaim liability because the products are in poor shape. That whole
mindset is not a problem that's going to be fixed by pushing for a
software engineering profession, because the desire for such a
professional status follows from a mindset that already follows the
basic principles in the first place.

We need to get pushed from the outside, by purchasers of our software.
Unfortunately that hasn't happened.

AHS
From: Michael Foukarakis on
On Feb 10, 12:03 pm, Malcolm McLean <malcolm.mcle...(a)btinternet.com>
wrote:
> On Feb 10, 1:02 am, John Koy <John....(a)example.com> wrote:> Arved Sandstrom wrote:
>
> > As long as we disclaim all liability and give no warranties for the
> > solutions/products we build, SD cannot be an engineering field and the
> > term "software engineer" remains as an oxymoron.
>
> Basically no-one knows how to built bug-free software, so the lability
> exclusions are necessary.
Nobody knows how to build earthquake-immune buildings, yet engineers
give certain guarantees. When those are failed to be met, (s)he is
held liable. Maybe it's about time some "software engineers" were held
liable for their unreliable code in the same way.

> They would be commercial suicide in any
> other field.

I don't see structural engineering or computer hardware engineering
going anywhere anytime soon..

> That doesn't mean there is no such thing as software
> engineering, only that it is new and undeveloped. Boilers used to
> regularly explode at the beginning of the industrial revolution, now
> such accidents are almost unheard of.

That's absolutely right. But we can't sit and wait for software
development to be refined on its own, we should probably do something
about it. Collectively or whatnot.