For most of the whiz-bang web apps being written today, this sort of thing doesn't matter.
Every so often, though, working on embedded devices or medical software or finance stuff, it becomes really important that you remember that lives depend--in a non-trivial and quite real way--on your code being correct and on the implemented algorithms fitting the problem.
Something that's very tricky isn't just understanding that the code does what it says it does, but that the code implements a solution that is properly modeled to the problem at hand.
EDIT:
My background is in mechanical engineering, and I never forget this quote by Dr. Dykes:
"Engineering is the art of modelling materials we do not wholly understand, into shapes we cannot precisely analyse so as to withstand forces we cannot properly assess, in such a way that the public has no reason to suspect the extent of our ignorance."
Software engineering in life-critical applications is serious business.
True, but those are not always possible, nor can cover everything.
What struck me the most was the criminal incompetence of the developers, both of the total system as it moved to software control and especially the software itself. Not to mention the Crown Corporation's response to the problem.
Every so often, though, working on embedded devices or medical software or finance stuff, it becomes really important that you remember that lives depend--in a non-trivial and quite real way--on your code being correct and on the implemented algorithms fitting the problem.
Something that's very tricky isn't just understanding that the code does what it says it does, but that the code implements a solution that is properly modeled to the problem at hand.
EDIT:
My background is in mechanical engineering, and I never forget this quote by Dr. Dykes:
"Engineering is the art of modelling materials we do not wholly understand, into shapes we cannot precisely analyse so as to withstand forces we cannot properly assess, in such a way that the public has no reason to suspect the extent of our ignorance."
Software engineering in life-critical applications is serious business.