Saturday, April 19, 2008

Wayne and I are remodeling our kitchen. In the process, we are shopping for cabinets. We want quality cabinets in the look that goes with our craftsman home. The high-end price is twice as much as the next quote down in dollar value. While we aren't comparing apples to apples, we are trying to. I keep comparing our kitchen remodel and new-construction backporch to a web site. I know nothing about cabinets and most web site clients know nothing about quality web sites. One of the cabinet salesman said the cabinets were guaranteed for life. No software manufacturer would ever say that. Some pointed questions reveled that only certain things were guaranteed.

What should a non-technical client expect from your final product? They won't ask all the questions you know they should. So lets work on some quality questions:

1) What error detection, communication, and recovery is provided? No one expects it to break so they won't ask this unless they have been burned by this.

2) What, if any, part of the code do they own and can literally walk away with? Are you letting them use your code base you already developed for a fee with a few new custumizations or is this new work written 100% by the web company? Same question for any graphics, images, code libraries, web services, etc?

3) What availability and time frame will you provide for fixes? Is this a scaled situation where only mission-critical bugs are given 24/7 coverage? Or are you tossing the web site over the fence and walking away?

4) What testing will be provided? Who does it and how do they determine the web site is of a certain quality bar? How is the quality managed internally? How is it communicated externally back to the client?

We all want to think we have a certain standard for code quality but how do we communcate that? How do we stand behind it? How do we demonstrate our code meets our own standards? You can song and dance your way around this so the client buys any thing you say but at the end of the day you still know if you meet your own standards. But how?