I had an interesting set of interactions with one of my clients over the past couple of days. I had written a program to do some data analysis against a set of standards, which they provided. The client (or more precisely, one of the client’s employees) sent me the data I needed, I sent back the program.
I get an e-mail a few hours later that it’s not working. I checked the program, which I had tested earlier, and could not see any issues with it. So I paid a site visit, and determined that there was a configuration issue, which I resolved quickly.
The next day, I get another e-mail saying “It’s still not working”. I request that they regenerate their set of standards, as that may be causing the program to validate incorrectly. A few minutes later, I get a new set of standards, I update the program file, and send them the new version.
The next day, another e-mail comes in saying that the best match they can get through the program is 65% accuracy, which doesn’t make sense, as it should have been comparing the standards against itself (a perfect match). I then get a call saying that this is urgent, please investigate and fix ASAP.
I know that the client is waiting for this program, and that it will impact their sales if I deliver quickly. I take a look at what they sent me in the two versions of the standard, and realize something: The standard is missing some data – about 20% of the data!
I call the client directly and explain the issue. I manually generate the standard, validate it, and make a small change to the program to increase its error tolerance. I then send an e-mail to the 3 people I’ve been dealing with, and explain, in non-technical terms, what the problem had been (you sent me bad data for the standard).
I learned something from this experience. On the whole, the error in this case was not mine, but the fact that I did not have accurate information. Since this was a priority to the client, I worked quickly to resolve the issue, but that should not have been a determining issue. I paid a site visit as soon as I realized that I could not reproduce the issue on my end, so that I could see the client’s perspective. I found out at the end of the issue that I will be getting, in addition to the contract fees, an excellent reference and a well-written testimonial.
- Even when the client is supposed to be providing some data, check that it is correct if you can.
- Treat every issue raised by the client as though the contract depends on the speed and accuracy of your solution.
- If you can’t reproduce the issue raised by the client, don’t assume it does not exist. Pay the client a visit if you can, so that they can show you. Even if you are correct that there is no issue, show the client some respect and give them the opportunity to show you the problem.
- Every client can be the source of new leads. Treat the client with respect, maintain your credibility, and the client will recommend you to others if the opportunity presents itself.
Now I’m waiting for the client to validate the new version of the program, with the correct data, but my confidence is high that it will meet and possibly exceed expectation (always a good thing, promise low, deliver high). Then I will have a nice letter of recommendation, and a client who will laud my work ethic and competence, allowing my business to move forward into the growth stage.