Monday, October 6, 2008

Quality, no adjective

The discussion du jour at work for the last couple of weeks has been quality (so probably discussion du semaine, or maybe de la semaine. I haven't studied French in a while). The argument goes something like this: in contracted software the four variable values are scope, price, time and quality. In a fixed price government contract the price and time are invariant, and the scope's only going to increase. This leaves one axis along which adjustments can be made to make sure the company makes a profit. Problems abound.
  1. This is not something you can tell the client, at any level. It is one thing to have a clause in the contract that allows for some preset number of allowable minor defects in the finished product to allow sign-off to occur, and another altogether to announce that quality will be the dumping ground for shortages that occur in the other three factors.
  2. Quality is not a linear scale, or at least most scales of quality do not degrade gracefully. It only takes one defect with the login process for an application to become unsuable, for example. Or the average transaction time increases an extra ten seconds to be longer than the default timeout on most browsers.
  3. Programmers care about the quality of their work. That's hardly unique but it needs to be remembered. Even if the front works like it's meant to, every cut corner, every hard-coded hack hurts. Attitude by the end of the project is a different matter for a different time.
  4. What is quality? Which of the thirty seven answers to that question are you working to? This should probably be number 1 on the list, but it's difficult so I'm hiding it at the bottom.


jml said...

On "quality not being linear", I think Kent Beck (Mr. XP Explained) says that there are three levels of quality:

* Terrible
* Excellent
* Life-critically, mind-blowingly perfect.

Why can't you tell the client about the four variables?

Bice Dibley said...

A tender response that reads "we can do everything you want quickly, cheaply but not very well" scans a lot better (if less accurately) if you leave out the last clause. By the time you start proper work, contracts have been signed. Yes, this is bad.