Thursday, February 22, 2007

Engineering

Read a piece tonight by Sylvan von Stuppe titled: Too Much the Perfectionist.

It got me thinking about engineering again and wondering whether maybe I should have become one.... I'm about to violate one of the engineer's code-of-ethics items (#2, not sure I'm competent) which you can find here: Engineer's Code of Ethics.

Engineers, in the fulfillment of their professional duties, shall:

  1. Hold paramount the safety, health, and welfare of the public.

  2. Perform services only in areas of their competence.

  3. Issue public statements only in an objective and truthful manner.

  4. Act for each employer or client as faithful agents or trustees.

  5. Avoid deceptive acts.

  6. Conduct themselves honorably, responsibly, ethically, and lawfully so as to enhance the honor, reputation, and usefulness of the profession.
Pretty interesting huh. It isn't often that you come across these sorts of statements in the software engineering world because it isn't often that the stakes are life and death.

I am often reminded of these sorts of points every time I hear about shipping software with bugs, putting the onus on the consumer/customer to deal with the issues, security breaches, etc.

It also makes me think more and more of pushing software liability and what it would mean practically. As previously mentioned here and elsewhere until we started holding companies responsible for the products they produced and the safety thereof, they didn't start designing for safety.

It does make me wonder though how much of a chicken and egg problem it is and where to start. What constitutes due-diligence in software engineering?

What constitutes:
  • Due care
  • Adequate safety
  • Reliability
  • Failure rates
Its hard to say what would constitute suitability for purpose. Though at the same time people tend to sue the car company when their car has "sudden unintended acceleration" even though the NHTSA has pretty consistently ruled the cases are due to driver error. So, as with all things your mileage may vary.

The point still stands that we don't yet have any definitions of what constitutes appropriate software engineering, standards of due care, etc. I hate to say it but I'm actually looking forward to the first major lawsuit against a software vendor for a failure in basic suitability to task so that we'll have something to hang our hats on.

No comments: