Application Testing and Responsibility
Recently a client found a small bug in a custom application we built for them. The issue in question was — Who’s responsibility is any error and does the client have to pay for the fix?
The site has a rather large custom and complex CMS (content management system) or Admin area. I found the question suprising because we are still tweaking and adding to the system, and this bug happened after making a modification that the client had requested.
It is also helpfull to know that I never give flat prices on custom websites and applications. I give a high and low estimate and charge by the hour because things always change and evolve from the original plan, and you cannot account for the time that those changes will take to develop, test and refine.
This specific fix (like many) only took a few minutes to remedy and I didn’t plan on charging for it. But fixes on sites this large and complex can be an issue. It is always a good idea to explain the process of building and testing your applications to your client so that they understand the policy going forward.
On to the question of Testing, Errors and Responsibility. Even if we had the budget to hire a team of testers to test every aspect of what we build… sometimes that wouldn’t be enough. The true test is when the client or user begins to use his product. I test the best I can, but will still miss things because I think I know too clearly what I should be doing or looking for. I hold my clients responsible for re-testing the tools I build for them, especially when they are custom applications. Programming errors can be thought of like typos, but even more complex… and no spell checker will help. How many times do three or four sets of eyes (including the client) not notice a misspelling or bad sentence in print copy? It happens all of the time. It is an expected part of the process. We are all human. That’s why we have more than one person proof-read.
Same goes for programming but much more complex. Instead of just looking for misspellings and grammar errors… there are sometimes multiple ways to go about using the same application — each unique to the individual’s own thought process. The good news is nothing has been printed and mistakes are generally easy to fix.
Whether the programmer spends the time testing and retesting and then modifies or corrects any problems we find before the client finds the mistake… or the client finds the mistake afterwards – it is still the same time spent. Having the client spend time using their custom product is the most efficient way to test an application. They will usually find errors faster, and the testing process will tell them where they may want changes to make their experience and the application more useful. In the case of making a change or modification – We make the modifications… then we test… then my clients test… then if there are any errors, they are fixed. In this case, there wasn’t enough data entered in the database to properly test, so the error was not caught until the client finally put it to use.
The true test is always the client working with the product. My policy is that if we are building custom applications and charging by the hour, time spent is time spent. Of course, if you have given a flat fee, you are resposible for any fixes.
Bottom line is - Test, test, test. Programmer and client. It’s part of the process.
Posted: March 16th, 2010 under General Website Design Knowledge.
Comments: none
Write a comment