Authors

Blog Posts by Paul Bourdeaux

October 26, 2007: Poor Design Can Make Good Software Bad

The worst kind of bug is one that was developed into a software application by design.  To better illustrate what I am talking about, take this example from worsethanfailure.com:

As the recent father of twin babies, Philip B. was relieved to learn that his employer’s benefit provider, Sun Life Canada, made the insurance process really simple. Adding the little ones on the plan required no more than a phone call to provide birth dates, names, and that sort of thing. All seemed so easy, until the customer service rep realized what Philip was trying to do: “I’m sorry sir, but we need a different birth date for each of your kids.”

“Uhh, er,” Philip stuttered, rather puzzled, “they’re twins? They were both born on the seventh of May, so they actually do have the same birth date.”

“Oh yes, I understand,” she said, “but our system cannot handle two people with the same last name born in the same month of the same year on the same plan.”

September 26, 2007: The Difference Between Reliability and Quality

They sound similar.  And they are often used (erroneously) interchangeably. Both terms, reliable and quality, can be used to describe a software application that has a low degree of error.  But there is one fundamental difference between the two. One is objective, measurable, and can be estimated, whereas the other is based on primarily subjective criteria…

August 22, 2007: Developmental Integrity

It is not often you have the chance to coin a phrase, especially by accident.  Yet occasionally a person is faced with a situation in which they are talking about an event or relationship that has no good descriptive name, and are forced to make up their own.  This was the case when I was trying to explain to my peers the relationship that existed between Software Reliability and Software Maintainability.  And thus Developmental Integrity was born…

July 25, 2007: Writing Maintainable Code

Lately, there has been some heated discussion in the software engineering community about what it means to write maintainable code.  The concept of architecting and designing software so that it is more easily maintained is rooted in the desire to keep support costs down for the customer.

Much of the recent discussion was spurred by a jdn blog about developing a software application that will be maintained by developers who are unfamiliar with current practices.