Kotan Code 枯淡コード

In search of simple, elegant code

Menu Close

Microsoft and the Movement of Cheese

As I prepare myself to step into a new “day job” role, a role that has influence over and is influenced by, many non-Microsoft languages and platforms but also includes MS, I can feel my perspective shifting toward a wider, more open world of development tools, languages, frameworks, and platforms.

This perspective shift isn’t just because of the new position. In fact, I have been feeling the effects of this shift for the last few years but lately the shift has been happening faster and its effects are more noticeable. I saw a link to the following blog post on Twitter this afternoon and felt compelled to add my own feelings to it:


The title of the blog post is “Microsoft moved my cheese again and I don’t care to find it”. I can’t describe my feelings any better than the author of that blog post did, so I highly recommend you read it.

As I look back at my career, I am struck by the fact that in 2000, I grabbed hold of the first pre-alpha bits of C# and the .NET Framework. I absorbed it, was obsessed by it, and wrote code in Notepad before Visual Studio .NET 1.0 was released in beta. Since then, I have spent an absolutely insane amount of energy devoted to remaining on the bleeding edge of Microsoft’s technology.

I have soaked up like a sponge creations such as ADO.NET, all versions of WCF, all versions of Workflow Foundation, WPF (something I still love), XAML for Windows 8, and many other things. I spent countless nights writing code for “Cicero” which would eventually become ASP.NET MVC 1.0. I spent months writing DSLs and using the tools that were part of this nebulous thing called Oslo … only to have Oslo retired, dismantled, and sent out to pasture. All of that work evaporated.

I was there when OData wasn’t called OData. I was there when Azure was a horrible pain in the ass to use (as opposed to the moderate pain in the ass it is now). I was there when Silverlight 1.0 came out and you couldn’t write C# code with it, I was there (and rejoiced) when Silverlight 2.0 had C# support, and I was there when the web collectively referred to Silverlight as “dead” technology. I was there for SharePoint 2007 (wrote a book on that, too). I was there for ASP.NET 4 (and wrote a book). Most recently I have been there, lauding, praising, lecturing, and blogging about Windows Phone 7. I’ve been there, through thick and thin, for all of it for the past 11 years.

I have lost “my religion” as it were. This doesn’t mean that I’m a Microsoft-basher by any stretch. Far from it. I still think that for desktop LOB applications with rich UX, WPF is hands down the best option available. But it has earned that status as a result of objective analysis. Microsoft doesn’t get the benefit of my doubt anymore and they haven’t for a long time.

What this means is that I don’t want to work with people who think that Microsoft is the only producer of development frameworks. Conversely, I don’t want to work with people who think that Java is the one true language, the one language to rule them all. To survive, thrive, and produce compelling software today you need to be aware that there isn’t one tech, there are tons of techs. There are boutique languages, script languages, specialty languages, universal frameworks and specialty frameworks.

In the past, if Microsoft moved my cheese, I would simply dump what I was doing, go grab the new bits, and re-do it all over again with the new cheese. Now, the only reason I will stay on the bleeding edge of a Microsoft (or any other) technology is because I can see clear business value in the benefits this new cheese has to offer. Gone are the days when Microsoft releases “new technology A” and I drop everything to learn it simply because Microsoft released it.

I have neither the time nor the energy to waste on efforts like that. I’m too busy building real-world, tangible, production-ready, reliable systems with leading edge technology. I’m not going to get cut by Microsoft’s bleeding edge again and, as evidenced by the link to the blog post above, I’m not alone.

Going forward, Microsoft is going to have to do a lot better job convincing people why they should be jumping on the bandwagon. The old “jump on the bandwagon…because we’re Microsoft” bit doesn’t work anymore. To be fair, that same pitch doesn’t work for Apple either. I don’t mess with their alphas and betas anymore unless there’s a feature in there I need for something that I am building or am planning on building shortly.

Life is too short to spend it following runaway cheese.