EDIT: I should have just read GIFtheory's post below! That's pretty much what I meant.
The devil is in the details though. How specific does the outcome need to be? And do you actually have to achieve the intended outcome in order for it to be engineering? Or just use the techniques with the hope of achieving the outcome?
Personally I think engineering is characterized primarily by predictability, usually through mathematical modelling. There's no absolute guarantee of success, but a Hail Mary isn't good enough either. Engineering is somewhere in between.
For example, the Mars Climate Orbiter didn't work, but no one would say that the people who built it weren't doing engineering. A simple but critical mistake was made in it's implementation. If it had been build according to the model, it would have worked.
On the other hand, was the Obamacare website engineered? I would say no. A few napkin calculations would have shown that it would not handle the load. No one had any business expecting it to work as deployed. And that is how a lot of software is written. No serious attempt is made to model the problem and prove that the solution will work.
Now that I think of it, so-called software engineering is the only engineering discipline I can think of where it's widely believed that mathematics is not required. The blogosphere seems to be riddled with posts that might as well be called "No good at maths? No problem - just become a programmer!"
The devil is in the details though. How specific does the outcome need to be? And do you actually have to achieve the intended outcome in order for it to be engineering? Or just use the techniques with the hope of achieving the outcome?
Personally I think engineering is characterized primarily by predictability, usually through mathematical modelling. There's no absolute guarantee of success, but a Hail Mary isn't good enough either. Engineering is somewhere in between.
For example, the Mars Climate Orbiter didn't work, but no one would say that the people who built it weren't doing engineering. A simple but critical mistake was made in it's implementation. If it had been build according to the model, it would have worked.
On the other hand, was the Obamacare website engineered? I would say no. A few napkin calculations would have shown that it would not handle the load. No one had any business expecting it to work as deployed. And that is how a lot of software is written. No serious attempt is made to model the problem and prove that the solution will work.
Now that I think of it, so-called software engineering is the only engineering discipline I can think of where it's widely believed that mathematics is not required. The blogosphere seems to be riddled with posts that might as well be called "No good at maths? No problem - just become a programmer!"