Why do I get so upset?
Last Friday I was dealing with a vendor that I haven't had the best luck with when dealing with problems in their code. Typically, their company policy has been that we (meaning I) must be the problem and we just aren't using it in the way it was intended. This in interesting as we are their only customer, but let's forget that for now and get to the real problem - me. I get way too bent out of shape when I deal with these people. I get upset because their calm, cool, demeanor as they say it's all my fault reminds me of the sales person in the Monty Python skit The Pet Shop. And I'm the guy with the dead bird!
OK... there it is. I've been able to find why it bothers me so much. I love Monty Python, and I can so understand the incredible frustration of the guy with the dead parrot. Here he is, trying to get someone who sold him a dead bird to care that he sold him said, dead, bird. Put in these terms it's clear why the person is calm - he knows that there's nothing he has to do. He has all the cards - the other guy has the dead parrot and he has the money. All he has to do is to not say or do anything illegal and chances are, the guy will leave. Give them nothing to fight against, and there will be no fight.
This is such an interesting philosophy! I have to agree that prior to writing this down I hadn't seen it in this light. Now that I see it in this light, I'm not sure what the best approach is to solving this problem of mine is. You see, I still have the horribly built code (dead parrot) and unfortunately I can't just bury it in the backyard. I have to live with it.
If I were to take a page from their playbook I'd pass this along as a nice, living parrot and let the users figure out that it's dead. But this has a problem - the customer won't ever go into that Pet Shop again, and I can't have the users thinking I'm no smarter than the Pet Shop employee, so I need a better alternative. Hmmm... what can it be?
What I need is to have something that the vendor wants - that I can control, be just as dead (useless) as my parrot and then we can trade - I'll give you a live cat if you give me a live parrot. Interesting idea... now what can they want that I can say is alive when it's as good as dead to them? Hmmm...
Got it! I did some tests on their code and it's in a terrible state - memory problems, and their hurried design of the new updating scheme has got some serious problems. So I've suggested another way to achieve the same ends, and all they have to do is to unroll the changes due to the new updating scheme and put in a new feature for me and it'll be working like a charm. Wonder if they'll take it...
What really helps is that I know I'm the guy with the dead parrot... whenever they start to get to me now, I just have to giggle as I know I'm the guy holding the dead parrot, and the trick is to try and have at least a little fun with the ex-parrot... the one that is no more...