
Ask HN: Is Software Development as an engineering discipline unique? - exdsq
I read an Introduction to Formal Methods powerpoint presentation that stated - based on a survey of 400 companies regarding all IT projects in the last 10 years over a budget of £1M - 20% of IT projects are abandoned, 60% are over budget, 90% are late, and 98% have features removed in order to finish the project.<p>My friends and I reguarly discuss this stuff and we have different views. I think that if we&#x27;re going to class software development as an engineering discipline these statistics are terrifying and we as an industry are doing something wrong. My friends say software development is unique to all other fields of engineering because it is more complex than a bridge which is &#x27;large but simple&#x27; and two software projects differ more than say two new cars might differ.<p>I&#x27;d love to know what you think?
======
PaulHoule
One way it is different is that there is no licensing for software engineers
and there never will be since the practice developed in a time when the
society was dead set against labor unions and similar institutions.

(Not only is there no licensing, but there is not even a real professional
society for practicing software engineers. Unfortunately the ACM doesn't count
because it represents CS professors and big employers who want to use H-1B to
drive down wages and professional standards.)

As for other kinds of engineering it seems like screwing up is also
widespread. Some examples:

\-- the nuclear power plant that is supposed to take 4 years to build and cost
$3 billion that takes 14 years and $20 billion (but the people working on it
are not excited, they've got the best job they've ever had)

\-- the 737 MAX

\-- Dieselgate (software played a role in these two but it was not the
initiator of the accident)

\-- The Space Shuttle (e.g. not just that it blew up 2 times out of 100, but
that they knew it was going to blow up 2 times out of 100 and flew it anyway
-- and it was such an ill-conceived boondoggle that the USSR could never
believe that it was what we said it was)

\-- any infrastructure project in the U.S. when you see the price tag (e.g.
the bus stop that costs so much the local green party people are shocked)

------
jbn
I think part of the answer is in your summary : a lot of software development
happens with no engineering at all. For it to be called engineering, there
must be some purposeful design going into it (and preservation of the
corresponding records of the design and design decisions), not mere accretion
of a bunch of things into a Rube Goldberg contraption.

For it to be engineering, you need to have explicit design, explicit statement
of the constraints and explicit statement of the flight domain. This in turn
is a lot more expensive than a few lines of code, often very expensive, to the
point that we allow shortcuts..

Engineering is having a discipline, and a lot of those projects that are
abandoned, over budget or time, have no discipline. I'm taking about
discipline along many dimensions (budget, schedules, features, design,
documentation, testing, QA), and a lot of these add to the cost, but if you
don't do them, then the cost is the highest (this is where you end up
cancelling the project...).

------
JohnFen
I'm more on your side of this than your friends.

I don't think that software engineering is "special" in the way they state. It
sounds to me like they're confusing engineering with mass production.

In my view, software engineering is not fundamentally different from other
forms of engineering, except that it's still rather new and is devoid of a
strong set of best practices.

------
rsclient
Maybe someone should do an analysis on bridge construction -- how often it's
delayed, over-budget, or has features removed. My intuitive guess is, "all of
them".

