Tuesday, July 1, 2008

Why we're a Microsoft shop...and it's okay if you're not

[I've had this post sitting in my Drafts list for a while now, because I'm completely comfortable with the tone...but I'll let the reader be the judge.]

So, I was reading a really informative post on The Health Care Blog about how Kaiser Permanente is working with Microsoft to allow their employees (and, presumably at some later point, all 2 million + Kaiser members) to copy their health records into HealthVault. Seems like a pretty interesting venture, right?

Well, not everyone is happy about it. In particular, the fourth comment to the post lists all of the reasons why no one in their right mind would EVER embark on a project that doesn't feature Java/Open Source exclusively. The most compelling arguments: Microsoft isn't Open Source and Java isn't C#. That's what passes for logic in some circles.

I really didn't feel like such biased, ABM ("Anything But Microsoft") remarks should go unanswered so I answered them in the most respectful but pointed way that I could. Feel free to read my response if you wish.

My point is this: AdvancedMD was the first financially viable browser-based Medical Practice Management System on the market, and we use Microsoft tools and technologies almost exclusively in our development. So I know that it works.

Why do we use Microsoft technology? Well, there are several reasons:

  1. The principal architects of the system (Sheridan Richey and myself) had more experience using Windows, Visual Basic, Microsoft C++, and Internet Explorer.


  2. When we originally architected the system over 8 years ago, Open Source was still an adolescent, rebelling against authority and trying to figure out who it was.


  3. We are Microsoft Gold Certified Partners. What that means is that, for a few hundred bucks and a few hours of effort each year, we get hundreds of thousands of dollars worth of development tools, OS and Office licenses, etc. In a small startup (which we were until just recently), that's a financial windfall.


  4. Over the years, we've learned how to squeeze outstanding performance from MS SQL Server and COM+. And we can still squeeze out a lot more, dedicating the right resources to the effort.


  5. Visual Studio is a one-stop solution for all of our code, from front to back, and its IDE paradigm extends to SQL Server tools.


  6. Microsoft has been active in the healthcare community for a long time, in partnership with HIMSS (via MS-HUG).

So, that's why we use Microsoft technology, and I couldn't be happier. The proof is in the proverbial pudding.

What? You run on Linux? Using MySQL, Python and a collection of open source libraries?

Great...more power to you! Unless, of course the company you're working for is perpetually losing money, in which case...I'm sure you can find a job somewhere else.

Regarding the indisputable statement that "C# is not Java", I would (and did, in my response) make the equally useful comment that "Chocolate isn't butterscotch, and Ford isn't GMC".

Everyone has their preferences, and I'm certain that there are examples of successes that you can hitch your wagon to, no matter which platform and tools you choose.

But here's the important thing: Thanks to emerging (and largely well-established) standards, we can all get along now!

Back in the 90's, Don Box used to say that "COM is love". Well...maybe it was within its own world, but COM certainly wasn't particularly fond of CORBA, or vice versa.

It would be more correct to say that "SOAP is love", or "Web services are love". The comment I mentioned earlier claims that "developers must purchase Microsoft Visual Studio.NET to code HealthVault applications." Of course, that's absurd, because HealthVault is exposed as a Web service, so, by definition (assuming that it was implemented correctly), it can be accessed by any code that can consume a Web service.

(It is true that, so far, the only comprehensive SDK and DDK that Microsoft has provided for HealthVault is written in C#, but they do provide useful sample code for Java and Ruby, and they are working on providing more non-MS platform support.)

By the way, we interact on a daily basis with dozens of partners in many different lines of business and who use all kinds of different platforms and languages, and we get along swimmingly.

I guess that's just a really long way of saying, "I'm okay, you're okay. [Insert smiley here.]"

No comments: