Tag Archives: microsoft

Dear New Microsoft CEO

Congratulations on assuming the reigns of one of the best know technology brands in the world. Once you get past your new-hire honeymoon, you have a lot work ahead. You see, Microsoft is dying. Not in the monetary sense, but from an innovation standpoint.

You could continue to license Office and Windows to large enterprises for another decade and make your shareholders happy. But Microsoft’s future viability isn’t about the Office/Windows cash cow, it is about successfully returning Microsoft to a company built on innovation and wonder. As your predecessor so gleefully proclaimed, it’s about developers, developers, developers! And you’re losing that battle.

I’m not a billion-dollar technology executive, unlike what you became the minute you signed your offer letter. But I’ve been in the technology trenches for a while, and the guys in the trenches have a lot better instinct for how the battle is going than the REMFs at the top.

Your challenge is that Microsoft has lost its street cred. When someone says “.NET Developer”, they’re thinking of a minimally-skilled, cube dweller writing Sharepoint widgets. And that’s a shame, because you should be a whole lot more.

I’ve been a Java developer since the JDK 1.1 days, but I’ve tracked the .NET scene since its inception. I used Visual J++, read the language specs for Cool, attended C# training on the Microsoft campus, and deployed more .NET code than I’m willing to admit for fear of being kicked out of my tribe.

You have a great thing in .NET and C#, and your pissing it all away.  I’ve written code in a lot of different languages, and I still think the C# language is about the most powerful, elegant and best-designed language available to developers today.  But you’re allowing your stubbornness and internal politics to kill it by relegating it to best-supporting-actor role for your boring server products rather than driving it as a thought leader for innovation.

How many startups or smart kids in dorm rooms would even give C# more than a passing thought while building the next Facebook? The answer is near zero. Go take a walk around a non-Microsoft technology conference and count laptops. Apple owns. Even those ugly Dells are probably running Linux and not Windows. At SenchaCon this year, I probably saw more Chromebooks than Windows laptops, which must really be rubbing salt in your wounds.

If you want to follow IBM down the path to irrelevance, more power to you. But I always looked at Microsoft as the hometown hero of the northwest, so I hope you aspire to do better.  Here’s a few suggestions to help you out of the gate and to find Microsoft’s mojo.

Step 1: Fire the ignorant fool responsible for stack ranking and fix your culture. You can’t be successful when your internal culture is the equivalent of corporate Hunger Games. Teams play to win. Microsoft is any army of individuals right now. You might be able to hire mercenaries with stack ranking, but you’ll never have cohesion across the company when everyone is in mortal combat with their cube-mates for their very job survival.

Step 2: Give a free Visual Studio Professional and Windows 7 Developer Edition (see below) license to any developer who registers to be a Microsoft developer. Every other ecosystem has world-class tools available for essentially free. You can still make money on your “Enterprise Editions” suckering Fortune 500 clients into paying enormous fees, but the grassroots developers you need to attract won’t pay for it. And Express edition is too gimp. You have nothing to lose and everything to gain by getting your tools into the hands of as many people as possible.

Step 3: I use an Apple laptop probably 90% of the time for development, even when it is for tasks I could also do on Windows. The primary reason is the workflow is better. Easy virtual desktops, a full-power terminal, and a window manager that stays out of your face are the primary reasons. You should push out a version of Windows 7 tuned for developers (Windows 7 Developer Edition). Strip it of all the crap for making grandma’s life easier. Include as close as you can get to a real terminal/console (don’t get me started on the suck that is PowerShell). And it should scream when running Visual Studio. Get feedback from developers and churn on it. This is a version of Windows for developers, not Fred in accounting.

Step 4: Make Internet Explorer rock, or get out of the browser game. IE 10 is barely useable, and you all should be embarrassed to even admit authoring any of the prior versions. Everyone I know uses Chrome or Firefox. Swallow your pride and go learn what people want and like from these other browsers. Make Internet Explorer the most standards-compliant browser on the planet. You should own on HTML5 Test and Acid 3. Your JavaScript engine should blow up V8. And start churning! There should be an update to IE every two months, not every two years.

Step 5: Beat Apple at their own game. You picked the wrong battle to get into the hardware market with. An upside-down laptop isn’t revolutionary. Similar to #3, you should go build a developer-focused laptop. With all your R&D power, you should be able to come up with something than can trump a Retina Macbook Pro. Sell it direct to developers. Earn mindshare. Your stock vesting plan should correspond to the percentage of Microsoft laptops being used at conferences in three years. If you walk into OSCON or RailsConf and over 50% of the attendees are using your laptops, you’ve won.

Step 6: Become the new MySQL. SQL Server is a tremendous product. You have a database that is very easy to use, yet powerful and reliable. But once again, you’re caught up in the enterprise world trying to be Oracle instead of being yourselves. SQL Server Web edition should be filling the role you’ve been pushing SQL Server Express edition for. And it should be free. Yes, you’ll eat some short term revenue loss, but you’re in it for the long game. There should be no reason someone picks PostgreSQL or MySQL over SQL Server for a startup. And no, Bizspark doesn’t count.

I know all this sounds like a lot of developer whining, but the people who write code really are The New Kingmakers. Microsoft has a lot of cool stuff going for it, but it feels very fragmented. Microsoft is losing the battle for the hearts and minds of today’s developers, and pretty much screwed for the  future generation. You must change that. Microsoft can’t afford another lost decade.

 

ASP.NET MVC 1.0

I’m not sure why Microsoft is being so quiet about it, but they have apparently released the ASP.NET MVC 1.0 final. Kudos to Caleb for tipping me off via a random tweet.

I went fishing all over yesterday and didn’t find any big release announcements. I expected Scott Guthrie to have something on his blog, but nothing yet. The MSDN site finally had a release announcement this morning.

This is fantastic news for .NET web developers. This finally gives ASP.NET a production-ready web MVC framework distributed by Microsoft. This framework is the future of ASP.NET.

Fuzzy Grid

For a small break, I attended the Microsoft Developer Conference in Dallas today. One of the big draws of the conference was Windows Azure, Microsoft’s new cloud computing initiative. More than just a hosting environment, it provides various services too. The Microsoft vision is that users will maintain their information in the cloud and also make use of application in the cloud. I had gotten into the Azure beta, but have not deployed a service, so I was interest to learn more.

The keynote was mostly a pep talk around Azure. But rather than leaving me excited about it, I’m more apt to run away screaming.  My main grief is a total erosion of privacy. The showcase application they demo’d was a Blockbuster video cloud application written in Silverlight. You install the application into your “world”, Live Mesh. At install, the application pops up a security warning saying to install, you allow the application access to your online information, your contacts and your social network. It seems the way Microsoft is trying to draw businesses into using Azure is by enticing them with intimate access to their customer’s data.

I’m just not keen to the idea of me keeping all my personal information up in a cloud when I know that the host’s principal interest is in making that data available to its partners. Yes, I know I’m just trying to maintain an illusion of privacy. The data already available out there on me is probably staggering, but at least a business has to work to find it rather than me laying it down at their feets.

The other sessions were OK, except for the JQuery and ASP.NET presentation. The presenter was very nice, and I’m sure he’d be fun to have a beer with, but he was a JQuery and JavaScript noob, and I expected better content from a Microsoft-sponsored event.

As an example, here’s a little JavaScript trivia. The presenter wasn’t sure about this, and I’ll leave it to anyone interested to fire up Firebug and give it a try themselves.

Which alerts (if any) are shown when this snippet runs:

if("1" == 1) {
alert("First evaluation was true");
}
if("1" === 1) {
alert("Second evaluation was true");
}

2009 Predictions

Not to be outdone by the innumerable quantity of pundits out there making their own baseless predictions, I’m going to toss out my own for the coming year in the technology space:

  1. Sun Microsystems is toast. Their only real asset is Java, and it is worth more to a company like IBM or Oracle. If the frigid economic climate continues, Sun will be purchased by IBM.
  2. Windows 7 will rock. This prediction might get delayed until early 2010 given Microsoft’s track record, but I fully expect Windows 7 to put Microsoft firmly back in the drivers seat. It will make up for past sins and put Apple on the defensive.
  3. Google and Apple turn out to be evil after all. Pretty safe bet; both want to be what Microsoft was last year and will sell their souls to do it.
  4. Microsoft won’t be the evil empire any more. Now that Bill is gone and Ray Ozzie is setting the tone, you’ll see a lot more warmth and geek-friendliness out of Microsoft. Check out Microspotting if you want to catch a glimpse of the new Microsoft.
  5. Oracle will buy Spring Source. This is about the only jewel they’re missing and would be a better investment than BEA was. Unfortunately, it will kill all the enthusiasm around the Spring Framework, thus killing one of the few exciting things left in the Java space.
  6. (Wildcard) Microsoft buys ExtJS. Apple picked SproutCore, so Microsoft needs a good RIA JavaScript library. They’ve put their backing behind JQuery, which is awesome, but it is not in the same league as ExtJS. They could buy ExtJS for a pittance and have one of the best AJAX widget libraries on the market overnight. ExtJS and ASP.NET MVC will be the winning combo.

Why Microsoft Sucks

In spite of the inflammatory title, please don’t interpret this to mean Microsoft sucks and Vendor X is a god. I have issues with all the major vendors and have just decided to vocalize about Microsoft first. I don’t really like picking on Microsoft. I’ve worked with them extensively, have been to Redmond, and have worked and socialized with many of their employees. They have all been excellent. Almost every “geek” I have dealt with at Microsoft has been the type of person I would happily have a beer with, which is the ultimate test for a team. So Microsoft doesn’t suck because of its geeks. The problem sits well north of them.

Stagnation

Microsoft’s biggest problem, and the reason Google is eating their lunch, is that Microsoft has stagnated technically. They make their money on the Windows OS and on Office, but both of these are at a dead end. There is no “must have” reason to upgrade either of these any more, and Microsoft’s solution is to try and lock in their enterprise customers with costly maintenance agreements. Like candle makers at the dawn of the electric revolution, Microsoft is desperately clinging to a dead business model, and rather than innovate and adapt, they will abuse their customers to hold on to a monopoly position.

Complexity

Microsoft has gone to the other extreme with their programming tools, .NET. I consider C# to be the only real .NET language. VB.NET is a joke intended to appease the legacy VB6 code monkeys, and no one with any brains would ever initiate a new project using VB.NET. Managed C++ was to appease the other extreme – hardcore MFC/Win32 programmers. But that is such a specialized group that they didn’t really care about .NET. C# itself is the result of a shotgun wedding between Delphi and Java. Microsoft stole the creator of Turbo Pascal (Anders Hejlsberg) from Borland, who created C#. Rather than play nice with Sun and do something beneficial for their customers, Microsoft chose to fracture the market in an attempt to maintain their platform monopoly.

All this would be water under the bridge if Microsoft didn’t continue the make things worse for developers. C# has morphed from a fairly clean Java clone to an absolute monstrosity of complexity. To give the impression of innovation, they have consistently added everything and the kitchen sink to each revision. Code written in the latest version, .NET 3.5, is simply painful to read if the developer actually tries to use all the features Microsoft has thrown in. LINQ is the perfect example of how to make a language unusable.

Enterprise software developers are not the cream-of-the-crop in the developer food chain. Most are minimally skilled and chose enterprise development to avoid having to deal with rapidly changing technology. The reason there are still VB6 developers is because of enterprises. Given their resistance to change, it makes no sense for Microsoft to keep adding in so much to .NET. The only explanation is that Microsoft is trying to appease their partners. Keeping the platform moving ensures there is huge consulting money to be made in “helping” enterprises keep up.

Resistance

Developers are the key to any software platform, and one area where Microsoft has really let them down is through their resistance to Open Source software. Almost every other non-Microsoft programming language (Java, Perl, Python, Ruby, PHP, etc…) has a thriving Open Source community around it that breeds innovation, increases reuse and creates a “survival of the fittest” mentality around technologies. Microsoft is a ghetto by comparison, an intellectual ghost town. All because Microsoft’s only motivation is ensuring vendor lock-in to protect their platform monopoly. This will be their downfall in the end. Go to an emerging technology conference or visit a major university and take a look at what the next generation of geeks is cutting their teeth on. You’ll see mostly Apple or Linux laptops, with very little Microsoft. Windows will not be the dominate platform for this next generation.

In summary, Microsoft sucks because they choose to suck. Every reason that is holding them back is entirely within their control. They are like the 80-old chain smoker on oxygen, dying of cancer, that can’t quit smoking two packs a day. They know it is killing them, but they choose not to do anything about it.