Monday, August 25, 2008

People: Integration vs Standardization

What do you prefer: A complete software solution that works right out of the box and is capable of solving all your problems as long as you adjust it to a model prescribed by the product? Or do you rather spend several weeks or months setting up the optimal set of building blocks you carefully selected to meet the requirements?

Considering the questions from a distant viewing point, this seems like  a tough question. Many developers may pick a side with little hesitation though. And the argumentation of each side might be equally convincing.

The choice of programming languages may be a deciding factor. For example, .NET and Ruby on Rails specialists may argue in favor of fully integrated solutions: everything fits, it is meant for its purpose and it lives up to the promises in most cases. At least as long as you use the tool for the purpose it was meant for.

Experienced developers using Java or Python may be equally convincing with their explanation of the advantages of standardized components. Avoiding vendor lock-in, freedom to switch components and open data formats are some of their key points.

A standardization specialist can easily switch to an integration oriented platform. He is used to switch platforms and testing alternative components. In many cases, after making this switch, he will genuinely appreciate the ease of use for a while, and the feature richness and development speed that are typical for an integrated platform. Nevertheless he is unlikely to hesitate for a minute to give that up again in favor of independent components and standards and most importantly: freedom of choice!

The other way around might be a bit more difficult. Living in a relatively simple world of fully integrated platforms, there are many challenges in selecting your own set of standardized components that you might not know of. A common Ruby on Rails expert or .NET developer visiting the Java world is likely to spend a lot of time complaining about all the countless choices for modules and libraries. You might get a similar feeling when you try to select the best Linux distribution for your desktop computer. (Aaaaaarghl! ;-))

I hope it is clear this post only talks about differences in personal preferences. A discussion about the actual value of standardization or integration would be a bit longer. If standardization means that you are limited to using the greatest common denominator in features... And you are willing to pay the set up costs mentioned earlier... There must be some special value in standardization that is not mentioned in this article... Let's save that for later!

The more important question: is Integration vs Standardization the exact same thing as Application vs Infrastructure? Is there a significant correlation? Or are they completely separate of each other?


No comments: