An old customer of mine is using the NAT punchthrough feature of RakNet. After my recent work on this feature with Stardock, the success rate is much higher. So out of a desire to help I offered to upgrade this feature for this customer for free. My terms were either remote desktop, or on-site if they covered the costs. I was only planning to spend an hour or two on the upgrade, basically replacing that one file and adding the extra functionality needed.
As it turned out, they wanted me to fly there to do the upgrade. As the date approached I started to regret not thinking it through. They wanted me to go there for the whole weekend. At first I just thought of this as a vacation. Work half a day and screw around in another city for some fun. But as the date approached I really regretted making that offer. Two lost days when I had a lot of other work to do, plus the tremendous inconvenience that comes with business trips. In any case, I missed the flight that morning. It was because the airline didn’t allow electronic or Kiosk check-in when the operating flight is different from the purchasing flight, and the line for the agents had 30 people in it – way too long for me to get on board on time. I’m not making excuses; that is just the reason why I missed it.
I called the customer that morning telling them I missed the flight and I’d just have to do the work over remote desktop. I did the work over the next three days, although I have to say with extreme reluctance and second guessing myself about why the heck I agreed to do this. The reason it took three days is because I couldn’t just change that one file as I had hoped. The customer had changed half a dozen or so related files in RakNet, and I had to integrate those changes. With those changes, it made more sense to just update the whole system while I was at it.
In hindsight, I suspect nobody told the lead programmer I was working with that I was doing this for free. So I got the impression he was annoyed when I was unwilling to do the work except at my own convenience, which meant during time I wasn’t working for a paying customer instead. I saw him as being awfully demanding and unappreciative considering I had no financial or legal incentive to do the work.
The next day, the customer sends me a thank you letter for the work done… Just kidding, they sent me an invoice for the unused plane ticket. A rudely worded one. And not an ounce of appreciation.
Never offer to work for free.
A. You’ll feel resentful
B. This will translate into being less cooperative
C. The customer will not appreciate it as much as you think they should