The next feature confused Tim. After plucking all of the low-hanging fruit, the only requirements left were the ones that were difficult to understand or poorly specified in the functional documents. Right now, Tim had a fairly nice e-commerce system for handling most of the products and processes it needed to, but there was one requirement he didn’t understand: “System must calculate VAT appropriately.”

The system was complex, and served such a wide variety of products that there were several VAT calculations that could be correct. The specification didn’t define what “appropriately” meant in this case, and given the costs of being wrong, Tim didn’t want to guess. He rode the elevator all the way up to the lofty halls of the executive floor, where he found Reggie, the head of the finance department and primary customer contact for the e-commerce site.

Tim explained the situation, and concluded, “So, of one of these two VAT calculation methods is probably best, but which one is correct?”

Reggie didn’t reply right away. His BlackBerry bleated at him, and he spent a few minutes tapping away at its keyboard. When he finished, he placed the phone on the corner of his desk, and leaned forward, with his elbows on the table and his hands clasped together. “I’m sorry,” he said, “but I thought you were competent. Am I mistaken?”


Reggie’s phone bleated again, but he ignored it for a moment. He put on his most serious face, and said, “I assumed you were a competent developer. I mean, why would your manager put you on my project otherwise? But if you were competent, you’d know how to build this software. Since you’re asking me how to develop this software, that implies that you don’t know what you’re doing. I’m starting to believe that you haven’t got a clue.”

“What? No! It’s just that… well… the specification doesn’t say-”

Reggie raised a hand to stop Tim’s stammering. “The specification doesn’t say because it should go without saying. If you don’t know, then I’m certainly not going to tell you.”

“You’re not?”

“In fact,” Reggie continued, “I’ve been the customer for a large number of IT projects in my career, and not once has anyone asked such an obviously stupid question, nor have I ever given any detail in any specification about VAT.” Reggie picked up his phone, and ended the conversation by saying, “Now, go do you job, and do it correctly.”

Tim had plenty of time to weigh his options on the long elevator ride back to the basement. Of the two options for calculating VAT, his gut said one of them made more sense, so he went and implemented that. He checked it in and went on to the next task on the backlog.

As the sprint wound to a close, Tim decided he should be customer focused and keep Reggie engaged in the process, so he fired off a message: “Take a look at the VAT reports in test, and confirm that you like the calculations.”

Moments later came the reply:

I don’t need to test anything. There are only two options here: either you did your job and the application is correct, or you’re an incompetent and it’s wrong. In the first case, I don’t need to test it. In the second case, I still don’t need to test it- and you should be fired. So which one is it, Tim? Do I get to start using the application, or do I escalate this and get you fired?

Sent from my BlackBerry

Tim decided he wasn’t interested in getting fired. He closed the task and attached Reggie’s last email with the filename “Customer Signoff”. Months later, after the application had been in use for some time, it turned out that Tim’s choice was wrong- millions of dollars in sales had the wrong VAT applied. When the inevitable category-four blameicane blew ashore, looking for middle managers to wash away in the tide, the big question was, “Who signed off on this?”

Reggie’s objections to Tim’s “incompetence” didn’t gain him much traction. Tim was too insignificant to hold responsible, and Reggie’s position was too lofty for any consequences. In the end, fines were paid, partial refunds were given, and the Finance department paid for Tim to work overtime and rush through a fix to the VAT calculations.

Panel from this Dilbert comic

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!