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…
Why Software Engineering Isn’t Engineering
31–40 of 59 posts
Re: Why Software Engineering Isn’t Engineering
#32You 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…
Re: Why Software Engineering Isn’t Engineering
#33I 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…
Re: Why Software Engineering Isn’t Engineering
#34I 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?
The term is actually regulated by law and it depends on the country and sometimes on the state. In Bavaria, for example, in order to call yourself a software engineer (or, for that matter, any kind of engineer), you need to have studied a STE(M) subject for at least three years, at a university or similar [0].
[0] http://www.gesetze-bayern.de/jportal/portal/page/bsbayprod.p...
Re: Why Software Engineering Isn’t Engineering
#35> "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…
I think this is an excellent point. Software is treated with a different level of rigor and respect on safety-critical projects. Same for embedded systems where the cost of updating a system is prohibitive.
I do think that there is an engineering discipline in software, just that most people aren't practicing it.
Re: Why Software Engineering Isn’t Engineering
#36His argument against calling it "engineering" is because we don't properly estimate our time? To me, engineering is a way of thinking, it's all about problem solving.
Interesting. I would say it's all about the problem solving process.
Re: Why Software Engineering Isn’t Engineering
#37Earlier 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…
And the civil engineers I used to work for had a bridge fall of its supports :-) I had to reverse engineer some software to help find the reason for that.
Re: Why Software Engineering Isn’t Engineering
#38Earlier 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…
We'd like to think so. I currently do some work for a static analysis company that has many, many customers in the automotive industry. The MISRA rules are part of the standard package bought by these customers, and an awful lot of MISRA violations will be caught by the analysis.
Then you get the example of Toyota, who I am pretty sure are one of the customers of my current employer (and some of their subcontractors/suppliers are also customers). They definitely had the opportunity to identify the failings in their software (some of which would definitely have been caught; recursion, for example) and either ignored the results, or just plain didn't bother.
Re: Why Software Engineering Isn’t Engineering
#39Earlier quoted context omitted.
Sorry, I meant to say software architect .
That's a great point, and one of the reasons I was originally taught it isn't "engineering", strictly. I think we do a lot of what counts as engineering. But, you're right, we aren't formally certified as an engineer. Perhaps that (and the required rigour) will change.
The other bigger elephant is what in it for me what have the BCS / IEEE actually done anything to improve the status of engineers.
In the UK Jeremy Clarkson's 1 hour documentary on Brunel has probably done more for the profile of engineers than the IEEE has done in the last 25 years.
Re: Why Software Engineering Isn’t Engineering
#40You 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…
Also regular constraints don't apply to software that normally would in construction fields. Gravity and mass and other real constraints are not present in program construction. Time and complexity are massive issues, but imagination and the mental model of a process is the usual barrier. Just think about anything web scale, (google docs?) its impressive for 'meh' engineering.