Ruby vs. the enterprise

The whole “what does it mean to be ‘enterprise’?” brouhaha (see posts from Dare Obasanjo and David Heinemeier Hansson) over James McGovern’s post “More Thoughts on Ruby and Why it isn’t enterprise ready!” grabbed my attention for a few reasons:

  1. I used to write for an enterprise IT magazine, InfoWorld
  2. I was also CTO and had real day-to-day responsibilities, so I couldn’t get away with too much b.s. I had to live with what I wrote in a real environment and therefore couldn’t coast along on pure pontification.
  3. The combination of my roles in #1 and #2 led me to believe that quite often, the use of the term “enterprise” alongside many product names was a label used to part fools from their money.

My feelings on the matter are pretty well summed-up by a feature story I wrote for InfoWorld in 2004, “Top 20 IT Mistakes to Avoid.” I described the problem with the “enterprise” label in mistake number 20: “being a slave to vendor marketing strategies”:

When it comes to network devices, databases, servers, and many other IT products, terms such as “enterprise” and “workgroup” are bandied about to distinguish products, but often those terms mean little when it comes to performance characteristics.

Quite often a product labeled as a “workgroup” product has more than enough capacity for enterprise use. The low cost of commodity hardware — particularly when it comes to Intel-based servers — means that clustering arrays of cheap, workgroup hardware into an enterprise configuration is often more redundant and scalable than buying more expensive enterprise servers, especially when it comes to Web apps.

I didn’t write about programming languages back then, but the same principles apply. In my opinion, choice of programming language has almost nothing to do with being “enterprise ready” or not. Take a tour through any “enterprise” shop, and you are likely to find at least a few ill-conceived Visual Basic or Lotus Notes apps (both on legitimate “enterprise” platforms!) quite literally holding back the business, just begging to be replaced by a well-designed web-based app built on Ruby on Rails or PHP. I’ll take a well-designed RoR or PHP app over VB or Lotus Notes any day.

But let’s be fair. As RoR and PHP grow increasingly popular in enterprise settings, expect some really poorly-designed RoR and PHP apps to stink up the “enterprise” joint. As Frederick Brooks noted twenty years ago in his famous essay on software, there is no silver bullet. So, RoR, Java, PHP. . . whatever. Just find me some talented programmers and we’ll figure it out (ok, the Lotus Notes and VB guys would be kicked aside quickly, but you know what I mean).

Unfortunately, despite the beating he is taking in the blogosphere, I think James is probably just providing a realistic (if somewhat cynical) view into how lots of “enterprise” IT decision-making happens: lots of vendor FUD being fed to timid IT staffers who outsource their strategic thinking to Gartner/Forrester/etc. It’s not a pretty picture.

5 thoughts on “Ruby vs. the enterprise

  1. In reading McGovern’s post, it seems as if he simply shared the perspective of others within large enterprise environments with the community and even disclaimed that not all of the issues where ones he believes in.

    The Ruby community is missing out on a big opportunity to “understand” enterprise decision making. One can make fun at it or attempt to master it. He offered to assist the community in this regard with zero takers which should be considered a lost opportunity to move the needle.

  2. Pingback: Thought Leadership
  3. Chad, I am new to your site but I am totally digging you insights. I currently am Director of Online Technology at CXO Media … but before that spent years with Lucent in a large ‘enterprise’. I agree that it is far more important to listen to what the business needs and make decisions on platforms and languages based on that. At Lucent, we created hugely valuable tools using PHP connected to the Oracle backends of our Documentum and Vantive applications. We gave the business data in the context in which they required it … simple as that. We listened to what that business needed as they moved along.

  4. Pingback: Thought Leadership

Comments are closed.