Live data from Hacker News

Why Software Engineering Isn’t Engineering

blog.iancackett.com

21–30 of 59 posts

Re: Why Software Engineering Isn’t Engineering

#21
post #4

We've been talking about this for over forty years now and it just hit me - engineers are categorized by what they build whereas software engineers are categorized by what they build with . If you asked an engineer who's an expert at building bridges to then build a skyscraper, they're likely to have estimates that are off-base. Meanwhile in the software world we say we're Java developers or Ruby developers or Haskel…

Great point. Perhaps we'll be able to classify certain software practices as "engineering". Maybe even stricter forms of Agile. It would be great to head in the direction of it becoming engineering, rather than in the opposite direction.

Re: Why Software Engineering Isn’t Engineering

#22

Earlier quoted context omitted.

Yep, you're right... I'm forgetting that physical engineering also suffers from some of the same problems. The thing that it adds though is a level of rigour, and ability to reason about the project, that we're still struggling with somewhat in the software world. Believe me, in 20 years since I was taught it's not strict "engineering", I've yet to see that change much, other than in safety-critical and cleanroom pro…

Engineering is much more straightforward, you have the plans and know that you need X amount of parts and Y amount of labour. Software is more like research, where you don't even know if you can solve the problem acceptably, most of the time.

Great point!

Re: Why Software Engineering Isn’t Engineering

#23
post #6

"Software engineering estimates and plans often fail to live up to the reality that follows. It seems to be the only engineering discipline in which this is regularly the case." Is it though? I live in Boston, home of the notorious* Big Dig[1]. While particularly egregious, it's far from the only large-scale civil engineering project that's gone off the rails. In fact, I'd argue that until fairly recently, many more…

EPR nuclear plants are suffering delays and far over budget.

Re: Why Software Engineering Isn’t Engineering

#24
> "Software engineering estimates and plans often fail to live up to the reality that follows. It seems to be the only engineering discipline in which this is regularly the case."

Yeah... nearly stopped reading after that opening statement. There are many reasons why software engineering is different from other forms of engineering. And maybe those reasons are enough to not call it engineering. Personally, I don't think that's particularly relevant.

But wildly exceeding estimates is definitely not something that distinguishes "real" engineering from software.

Real world engineering often has the advantage of working almost exclusively with known quantities. But add a variable, like digging a tunnel through an unpredictable underground, and sometimes projects go off schedule by years.

No engineering discipline can predict the unpredictable. Some disciplines are just younger than others, and therefor have more unpredictable elements.

The big difference with software engineering is that the costs of failure are so relatively low that we prefer to go full steam ahead instead of trying to find ways to reduce uncertainty.

This makes software engineering an outlier. Everything else is just semantics.

Re: Why Software Engineering Isn’t Engineering

#25
post #20

Earlier quoted context omitted.

As I'm commenting elsewhere, this is true... I didn't acknowledge that other physical engineering projects do indeed suffer from some of the main problems. What's missing in software engineering is the rigour and ability to reason so precisely about what's being built. I was originally taught (on a Software Engineering degree course) that it doesn't formally fit the definition of engineering, and I've not seen that c…

> What's missing in software engineering is the rigour and ability to reason so precisely about what's being built That's only true if you choose for it to be. There are ways to formally prove that your software is correct but they require a large time tradeoff. For example, the software in the chip in your car has gone through as much engineering rigor as a bridge. Alternatively, look at a cheap toy produced in a sh…

Very true!

Re: Why Software Engineering Isn’t Engineering

#26

Earlier quoted context omitted.

Yep, you're right... I'm forgetting that physical engineering also suffers from some of the same problems. The thing that it adds though is a level of rigour, and ability to reason about the project, that we're still struggling with somewhat in the software world. Believe me, in 20 years since I was taught it's not strict "engineering", I've yet to see that change much, other than in safety-critical and cleanroom pro…

Engineering is much more straightforward, you have the plans and know that you need X amount of parts and Y amount of labour. Software is more like research, where you don't even know if you can solve the problem acceptably, most of the time.

I feel it's the lack of hard laws that kill software. Unless it's a very constrained project, where limits drive your design, you'll have freedom to think about things and then it shifts into ontologies, people trying to find 'tiny theories' to express their problem in the best way. Each layer adds variability and we end up in hard to bridge technology silos.

Re: Why Software Engineering Isn’t Engineering

#27

> "Software engineering estimates and plans often fail to live up to the reality that follows. It seems to be the only engineering discipline in which this is regularly the case." Yeah... nearly stopped reading after that opening statement. There are many reasons why software engineering is different from other forms of engineering. And maybe those reasons are enough to not call it engineering. Personally, I don't th…

Great points, thanks. I agree, there are perhaps more similarities between software development, and traditional engineering, than I figured.

Re: Why Software Engineering Isn’t Engineering

#28
I don't have a particular dog in this fight, but I thought this is interesting:

The last O'Reilly Software Architecture Conference had a talk by Glenn Vanderburg titled "why software development is an engineering discipline":

https://www.youtube.com/watch?v=zDEpeWQHtFU

I think the author of the blogpost does a lot of the things discussed in the talk (e.g. comparing it mostly to civil engineering as opposed to all the other engineering disciplines).

Re: Why Software Engineering Isn’t Engineering

#29
post #13

I think "Software Engineer" is just a title given by a place of employment. However, for those who genuinely believe themselves "Software Engineers" I would ask: What was the outside institute that certified your software engineering program? What professional exams did you take in order to be licensed as a software engineer?

I hear those siege engineers during the Napoleonic Wars didn't have any certified licenses either. The gall of some people.

Re: Why Software Engineering Isn’t Engineering

#30
You see this sentiment come up about every few months here. We're not rigorous enough. Or we can't estimate our build time well. Or we don't have any liability. Or we don't have a codified set of morals that govern us.

BS.

We're still exploring the space, and most of the time the things we build are good enough to work - just like the first wooden planks across streams were good enough.

We also do have the capability of designing and building the software equivalent of suspension bridges across the bay, using tools and processes like Ada, Coq, formal software proofs, etc.

Most engineering projects don't live up to your high standards, either. I knew a Blacksmith who would make circular staircases, and would regularly have to work around floors which were 4-6" higher or lower than specced. Or bridges which were put into earthquake zones, but not designed to withstand earthquakes. Or highways built with inappropriate foundations that buck like a bronco with frost heaves after the first winter passes. Or cities built under the freaking water table.

Ease up here folks. Our tooling and processes are still undergoing growth, as we take in the incredible scope of what we are capable of. Rome wasn't built in a day, and the understanding of stoneworking, woodworking, and city planning which enabled the building of Rome certainly took more than the < 100 years we've had.

Post reply on HN