Later this week I’ll be attending a talk on interoperability, organised by Microsoft. A friend of mine working at the local Microsoft office is organising the event. He was asking me to help spread the word about the event.

We got talking and from what he tells me about his job as an ‘Evangelist’, I get the distinct feeling that Microsoft is aiming to swing those companies with mixed platforms to using more MS-centric solutions, “because MS products enables technical interoperability out of the box with other vendors”.

That got me thinking about which is better, companies running different technology platforms versus those that focuses on a specific platform?

The company I work in today functions quite exclusively on Linux/PHP environment, except for the desktop environment. But you definately won’t find any Microsoft-based systems in our major common services such as intranets, emails, file storages, web servers, application servers etc.

I can definately see some very attractive advantages to running a shop like this. We only need one set of skills – our developers all just need to know PHP, our hardware are all using Linux – so our system administrators have an easier time, and we only use MySQL – so only MySQL DBAs are required. I’m sure by being focused, we stretched our dollar to its maximum value. But are we losing out on variety and choice? After all there are probably more commercial solutions based on Microsoft than Linux/Unix.

In my previous company, which was about 3 times bigger than my current one, it was a pretty mixed environment. They had .NET-based corporate solutions in one area, and Linux/Apache/PHP in others. What I observe was a constant jousting between the two “camps”, IT budgets balloons because they have to support both PHP and .NET skills. They rarely find people who are really good at both technology, so they end up hiring two developers instead of one, for example.

But if done well, I can see how they can benefit from the strength of individual technologies. Hypothetically, should something happen to attack our Linux boxes, we would be completely crippled, whereas mixed setup might have weathered the attack. Plus, today, interoperability is probably a lot easier to implement than say 5-10 years ago.

So what do you think? Does it make sense to interoperate between different technology platforms to get the best of both worlds? Or, it’s better to stay on track and focused?