In the world of software development, you have customers, who request and ultimately use the software, and development organizations, who build and test said software. Of course, it's never that simple. At some point, the customer has to try using the software in order to sign off on it.
At least in a sane business arrangement. Sometimes, things get all twisted around.
TS found himself in the middle of a mind-bending dispute with a client.
You see, the client provided specifications as to what the software should do. TS' developers built the software to do exactly that. Afterward, the developers and QA folks did assorted rounds of testing. The package was then provided to the client so that they could do UAT. If all was well, the product would be deployed for general use.
This normalcy continued for several releases of the product.
Until...
One day, after invoicing the client for the work. the client responds with a check, and an invoice of their own for the time they put in to perform UAT on the software!
Wait, wha? TS called the client and inquired WTF they were talking about. After all, who accepts custom software without at least making sure it does what it was requested to do? The conversation left TS befuddled...
TS: Why are you billing us for acceptance testing? Only the customer can accept the software! Clt: It's taking us all kinds of time to verify your software does what we requested TS: We do testing too, but ultimately you need to verify we did our jobs properly Clt: Irrelevant: if we have to put in this much time to verify that your software works properly, then we should be reimbursed TS: Wait, let me get The Big Boss in on this...
At this point, TS sent an email to The Big Boss with the subject:
Urgent: Client wants to bill us for time they spent doing UAT
Needless to say, The Big Boss was equally befuddled, and set up a call with the customer.
TS: Client, this is The Big Boss, Big Boss, this is the Client... TBB: I understand you want to bill us for time you spend doing UAT? Clt: That's right; it's taking a lot of our time. The software should just work! We have been paying the cost of doing this testing since the inception of this contract and feel that we shouldn't pay for it any more! TBB: Ok, no problem. We will no longer ask you to do UAT, as long as you agree, in writing, that you'll accept our testing as sufficient and definitive; Any issues that crop up will be considered changes and/or enhancements and will be billed accordingly Clt: Unacceptable! We need to make sure your software works before we will accept it TBB: That is responsible thinking. Of course, it's also your responsibility, which is why we will not pay you to do it
This went around and around for a while until the client finally saw the light and rescinded the invoice.