TestDriven.net-Gate: Don't Blame Microsoft, Blame Jason Weber
There's a kerfuffle about Microsoft vs TestDriven.Net Express at the moment.
It's interesting stuff, to say the least!
Many of the comments are prefaced with comments like "I haven't read everything about this, but I feel..." and this is a shame because opinions became too polarised, and leap for tabloid explanations such as "Microsoft is Evil" when the truth, as always, is far murkier.
I've read as much as I can, and here's my analysis.
Right from the start, before tempers flared, Microsoft's representative, Jason Weber should've done a much better job of convincing Jamie not to release the express sku. Jason did put a lot of effort in, and Microsoft spent a lot of effort on this, but Jason sabotaged his own sides efforts right throughout.
The first clear mistake is that Jason should've never referred to Jamie's work as a "hack". He did this repeatedly -- and it seems to have greatly exacerbated the situation.
What did that wording gain Jason (or Microsoft)? It only worked to insult the person he was trying to come to agreement with. Name calling doesn't aid negotiation.
When Jamie finally agreed to remove the express version, he wanted a credible reason to put on his website. Note that Jamie had backed down now, and with good treatment the thing should've been resolved at that point. Here's the wording that Jason recommended:
"After speaking with Jason Weber from Microsoft I realized that by adding features to Visual Studio Express I was in breach of the Visual Studio license agreements and copyrights. I have therefore decided to remove support for the Visual Studio Express SKU's from TestDriven.Net. Jason was very supportive of TestDriven.Net's integration into the other Visual Studio 2005 products and I was invited to join the VSIP program. This would allow me to fly to Redmond each quarter and work closely with the Visual Studio development team on deeper integration."
This wording is offensive on four levels. One Two Three Four. That's a lot of offense!
Firstly -- it acts as an advertisement for Jason Weber. Why? Arrogance maybe? He's lording it over Jamie.
Second -- it supposes that Jason should publicly admit to violations. He need never admit such a thing.
Third -- it includes mention of breach of "copyright". I don't think such an allegation ever came up until that point. So this was a fresh insult.
Fourth -- it stings Jamie's pride, by suggesting that he was bribed into agreement. Ouch
So just when they got close to agreement, Jason effectively kicked Jamie in the nuts, pissed in his face, poked him in the eye, and danced on his grave.
That's not a winning technique in negotiations.
Oh, I admit it -- I've made similar mistakes myself in the past. Recently, even. Sorry :-(
But is Jamie in the wrong? Of course he is. It's Microsoft's product -- if they say you can't work around limitations, then good for them. And they can pick and choose what limitations they mean. When you're using their product, you're a guest. You leave when you're asked.
But it's such a touchy topic, that Jamie deserved to be treated with respect the whole way.
One other big no-no from the Microsoft side of the fence is worth pointing out:
When Jamie disabled the express feature, how did Redmond respond? Read this:
Thank you for not registering your project extender during installation and turning off your hacks by default. It appears that by setting a registry key your hacks can still be enabled. When do you plan to remove the Visual Studio express hacks, including your addin activator, from your product.
This gives away that they reverse-engineered his product, to check that he'd really removed support. Ouch! Dirty dirty play! Bad Microsoft!
Oops, that was a tabloid ending, sorry.
How about this: