The reviews are pouring in over the Microsoft Surface tablet, and the primary problem with the device is their app store. The marketplace has around 3,500 apps, which is paltry compared to Apple's or Google's and few folks are seriously looking to post their wares in the Surface store. Being that Microsoft is late coming to the fray in providing a consumer tablet experience, how can they get developers excited about building apps for the platform? Maybe they should take a lesson from the past.
Back in the 90s, the web development platform of choice was Perl, CGI, Linux based programming. Microsoft had released a small offering with NT as their web server, and some CGI options. Back in the mid-90s, Microsoft had released something new that web developers were used to, server-side code that could be inserted into HTML. This was code-named "Denali". Denali eventually became Active Server Pages (ASP). They had to get developers excited about developing on this new platform. No one was doing Microsoft web development, and Netscape ruled as the browser of choice. Microsoft was late coming to game when it came to the Web and they needed to up their game, and make their presence known.
They had a few obstacles, for one, the acronym ASP was already being used for a few different words, Application Service Provider (kind of like SasS is now), and Association of Shareware Professionals are just a couple. Active Server Pages did start to take over the acronym though. And as I mentioned, no one considered Internet Explorer even a contender in the browser space (later they had some antitrust issues with IE, but that's another story).
The biggest issue though was how to get developers interested in this new platform? Web developers at the time were writing Perl scripts, I know I was one of them. Even Cold Fusion had more of a following then. Developers tend to flock to online resources to meet with each other and help troubleshoot code, and even build recognition. Webmasters were one-man shows, very little resources, and very little talent was available. There were few enterprise development groups. These were entrepreneurial folks who ventured into a new development space called the Web, where some people were still considering it a fad that may pass.
Online communities flourished for these folks, but in order to get ASP some developer interest, Microsoft took note of the community aspect of developers. Microsoft built the Site Builders Network, it was grass roots based. Developers flocked to it because Microsoft provided recognition, free tools, and more. Developer's like free, so it grew.
Microsoft developed certification programs aimed at this new network, and the Microsoft Certified Professional + SiteBuilders came into being (yes, I had this one back in the day). People could not only make themselves known in the online community, but have a piece of paper saying they could write web apps on the Microsoft stack.
The Microsoft Most Valuable Professional (MVP) program came into play and people were speaking to user groups around the country in order to gain recognition, and promote Microsoft development technologies in the process. Microsoft would then award them this valuable recognition (free software, and invite to the Redmond campus).
What's happened since then? Everyone remembers Steve Ballmer's rant, "Developers, developers, developers". He was right, but unfortunately, as Microsoft grew, so did the corporatization of their grassroots community. MVPs became a bunch of old guys who write little code, and maybe supervise developers, not in the trenches. Gone are the days of young hungry developers wanting to make a name for themselves, it became an old boys club. For example, I know of some Microsoft Regional Directors who have been in the position for years and the torch was never passed to someone else. Community for Microsoft now is all aimed at the business, not the fun, not exciting, not risky, it's just the developers day job.
What has happened to Microsoft as a company, has happened to their development community. The old guard is entrenched, and the young can't make a name for themselves. Microsoft needs to go back to the days of the early web, and use the grass roots methods of building community and excitement around their new platform. Give stuff away free, some of those night time programmers may make some pretty cool software for Surface. It's the formula that has worked time, and time again.
This formula would work again, as developers for this new platform aren't enterprise developers as Microsoft has been courting for so long with their web, and desktop platform. These potential Surface developers are young, looking for something cool to write, and then become entrepreneurial and hopefully make some money in the process. These are developers for the consumer space, and not enterprise space. Microsoft needs to relearn how to court these folks as they did back in the 90s, when there were one man shop Webmasters, and not enterprise web teams as there are today.