$pelling Micro$oft with a Dollar $ign

We spent last week in unfamiliar territory. Typically, we venture out to events with a pretty strong Microsoft presence (TechEd, VS Live, etc.), but last week, we attended the SD Best Practices Expo in Boston. Lots of .NET developers, but also a lot of Java guys. We pretty much showed up with our most agnostic foot forward. Plenty of patterns, including our official tech session, and some extreme programming, including a test-driven development BOF run by Ward Cunningham. We had a chance to sit down with the editors of some of the CMP magazines (Dr. Dobbs, Software Development), which was a great opportunity to expose them to materials that they were really aware were coming from Microsoft.

The interesting thing about this show was, unlike Microsoft shows where we are patterns & practices, this time we were Microsoft period. We were the only people from Microsoft with a booth and practically the only people from Microsoft at all. The fact that we were there surprised a lot of people. Most people assumed we were from the Waltham office, so telling them we were from Redmond definitely surprised people. I actually really liked this scenario—I felt more confident that people would leave the conference taking away our message (as opposed to the MS events where the average attendee is inundated with so many flashy messages that it is easy for us to get squeezed). I actually anticipated this and realized that our role with patterns gave us a unique opportunity to lead this effort. But I also anticipated some anti-Microsoft sentiment. As it turns out, the people that didn’t care for us didn’t bother coming up to our booth. Well, almost none of them…

Just as the booth was closing, I had an interesting conversation with a gentleman that didn’t care too much for Microsoft. It was at the end of an 8-hour shift for me after a red-eye the previous day, so I was pretty much exhausted. But hey, I figured it would be great to go out by having a discussion to defend Microsoft. Now, let me be honest: when I am on the clock for Microsoft, I really feel like an ambassador—just like I did for Intel and when I attended B-School. My behavior reflects on my affiliation and I am usually cognizant of that. But I knew where this was headed and decided to loosen my diplomacy to have a good spirited discussion with the gentleman (“open and respectful” is the term they use inside Microsoft). So once he said, “do you know what the problem with Microsoft is?” Ahh, the game was on. Here's three of the threads we had…

  • Why did you guys make C#? It’s just a language that extends Java. Java is a community process, so why didn’t you just propose the changes to the community. I reminded him about the Java Foundation Classes in 1997 and that brought a load of legal garbage that didn’t get solved until recently, billions of dollars later. I also reminded him that the community process has its plusses and minuses. Community in their case doesn’t mean Joe Q. Public. It means IBM, BEA, and Sun--it'd be like a Red Sox fan walking into Yankee Stadium. But the openness of the process makes me laugh even more. If the process is so open, why won’t Sun open source Java? [Note: I know it's orthogonal, but everyone else has been bugging them, so I thought I would join the fun :>]
  • What if you guys start charging for the C# compiler? Then I would be in trouble. I asked him for cases where we locked people into a free product and then charged. I remembered how people assumed we’d start charging for Internet Explorer. Still waiting. .NET Framework/CLR? Still waiting. [Note: With so many people reading this, I know someone will have an example that I am unaware of. If so, I'd like to know, so please leave feedback and correct me. Even if that's the case, I would still believe it to be the exception rather than the rule.] Charging for the C# compiler will never make business sense—heck, we’re practically giving away VS with the Express products. It is always in the best interest of Microsoft to have people develop on our platform—that creates the apps that run on Windows and thus help sell the OS. It’s not rocket science. 
  • Where’s Office for Linux? Why aren’t you guys doing that? Why on earth would we do that? Actually, let me rephrase that—why would we do that today? We’d have to compete in a market where the Linux desktop hasn’t hit mainstream, we invite instant competition from StarOffice + OpenOffice (which have the open source mojo working in their favor with that crowd). I don’t see the profitability in doing that any time in the near future (and, in fact, I see a major loss for so many reasons). Oops, did I say we want to be profitable? Silly me.
  • With Microsoft, I get vendor lock-in and you guys are trying to trap me. With Java, I am not trapped. Oh really? Uhh, once you pick an app server, you are in for the long haul. I reminded him that IBM needed a 300+ page guide to tell people how to move from WebSphere to WebLogic. The response was “well, it’s not as bad as locking in with Microsoft.” Actually, that’s probably true—it’s probably easier to switch from WebLogic to WebSphere than it is to switch from WebLogic to Windows Server. But I’ve never heard of a smooth migration from any app server to another one and most of the time, it simply requires a re-write. At that point, it’s a skill question for your developers. But C# is supposedly practically Java anyway. Plus there’s J#, VB.NET, C++, and lots of other skills you can leverage on .NET projects. With Java, it’s Java. And even if you switch from Java to Java, good luck with the tools and special features of the new app server. Besides, the locking-in argument is interesting with services. If you implement SOAs, locking into an application platform isn’t locking an enterprise into an overall platform strategy. I’ve heard stories about enterprise that evolve from J2EE to .NET by setting up SOAs and then replacing apps one by one.

His responses at the end of each of these threads of discussion was "I wasn't aware of those facts. I will take your word for it. I will research it further." As he left, we shook hands and I offered an honest piece of advice: “don’t default on vilifying Microsoft and don’t expect to do anything that doesn’t make business sense”. Every misconception was based on an assumption that we were out to fleece the customer. Yes, we are out to make a dollar—so are Sun, IBM, BEA, and anyone else in the business. That’s why it’s called a business. We've got shareholders that expect us to keep churning out revenues and profits (just like those guys). But we care about our customers just as much as they care about theirs. The difference is, we don't do it with open souce. It seems like attaching yourself to open source absolves you of all ills of capitalism in the eyes of some developers. Just because you are a part of the movement does not mean you inherit all of Richard Stallman's righteousness. I can hear their mantra now: “We’re not in it for a profit like Microsoft. We just love you developer guys and are willing to do whatever you want at any cost!”

Wonder what Wall Street would think about that strategy? 


{Garbage - Garbage}