Soma Segar did a Red vs. Blue show with Church and the gang. It was funny hearing Soma, who is always seems to be serious, chatting with the guys that aren’t. One of the things that he talked about was the Balmer Developers, Developers, Developers speech in terms that I actually agree with. He said that Microsoft is a platform company at heart and that we have been since the company was founded in 1975.
That is fantastic and absolutely true! I’ve been saying for quite a while that a platform will beat an application every time. There are a couple of great examples of this right now. For example, Microsoft Office is, more so than it is just word processing and spread sheeting, it’s a fantastic platform that you can leverage to build your application. It wasn’t overly difficult to do with COM, not that the object model was straight forward. Even so, all of the power was there and the average developer could figure it out and put together some fairly compelling applications. Now with VSTO, it’s very easy to build compelling applications on top of any of the Office Suite of applications including Outlook. As I live in Outlook a good portion of every day, I love the idea of being able to extend it to all of the other things that I need to do throughout the day. <mindDrifting>Now, if the expense system would expose services – I could have a ton of fun with Excel and Outlook………</mindDrifting>
Another Application vs. Platform situation that you can look at is MySpace verses Facebook. MySpace allows you to customize your page a ton but it’s not really a platform for you to build on. Facebook allows you as a developer, through their Developer APIs, to build your own application that adds right into their platform and feels like it’s part of Facebook. There are several thousand of them out there already. Some of them are downright stupid like the Vampire application. <rant>I really wish that there was a nukem button for anyone who tried to make me a zombie or vampire or any other stupid thing of Facebook more than 3 times after I’ve ignored them over and over and you know who you are…</rant> However, some of them, such as the Twitter and Cities I’ve Visited are great. Others, such as Groups and Photos feel like they are part of the platform when they are actually add-in bits created by the Facebook crew. That’s pretty cool and it’s part of the reason that Facebook is winning. (That being said, I will have to post some other time about my feelings on whether or not Microsoft should have ponied up 250 Million for rights to do the advertising…)
There are applications that should be platforms that are not currently great platforms and are suffering a little for it. For example, Internet Explorer is a fantastic application – but it’s not a great of a platform as Firefox. That’s frustrating because it could be such an amazing platform. As it is, it’s a frustrating set of COM based interfaces that are not quite completely undocumented.
Now, what does this have to do with your applications? You should be thinking about platforms that you could have built rather than applications. I’ve been in a number of shops where there are 10+ small applications that are build that could have and should all been written as a single application but the first and primary application was not extensible so the other groups around simply added new applications rather than adding value to the first one.