The term enterprise is consistently shot across conference tables  inside corporate IT and technology marketing departments. The term is most often ascribed to software and hardware systems running the core business; a reservation system for a hotel franchise, or a software package for payroll.  However, this attribution excludes all the software that runs at smaller companies.  So, what makes a system enterprise ready and which products are left looking in at the glowing warmth of Fortune 1000 server rooms while they desiccate.

Sadly, there isn’t much empirical evidence separating an enterprise ready app from any other piece of software.  A development manager requiring an enterprise developer doesn’t make the role anymore real than an engineer claiming to be a “people person”.  An HP blade server is no more enterprise ready being racked in a enormous corporate data center than in a startup’s cage at RackSpace.  Let’s dissect this hypothesis by looking at two very popular web frameworks: ASP.NET and Ruby on Rails.

Microsoft sits in the interesting position of selling the same software that runs small businesses and large enterprises.  This of itself should be enough to prove the term enterprise a loaded marking term – but let’s keep going: ASP.NET is Microsoft’s enterprise web platform.  It, coupled with IIS, provide everything needed to build dynamic multitiered web applications.  It has optimizations for Microsoft SQL Server, session and cache providers, error reporting, performance tuning, remote configuration, etc.  It can do just about anything a web application in 2008 would require.  Again, Microsoft, pundits and analysts say it is enterprise capable.

On the other extreme is Ruby on Rails.  Note, not just Ruby the programming language, but the Rails web framework as well.  What I’m embarking on is dangerous:  I am not a Rails expert and provide this caveat up front.  Rails is considered by popular opinion to not be enterprise ready.  What does it lack?  As far as I can tell, the only thing it really lacks is a support package, IDE and hordes of corporate programmers.

On it’s own, ROR is terribly productive.  The Active Record design pattern is built right in as a OR Mapper with the friendly and obvious name of “Active Record”.  So, it provides a concise model of objects over data right out of the box (if anything had a box these days).  The framework is based off the of tried and true MVC, model-view-controller, design pattern to provide distinction between data, middle tier and presentation.  This is a simple programming idiom used with GUI development, web applications or the myriad of systems that actually make’s power arrive to substations to power my MacBook (Pro, thank you very much).

I  provide these contrasts between the frameworks to illustrate the futility of using the term enterprise for one group of software products but not for another.  Because it gets better.  Bigotry of platforms like ROR grows as corporate IT software developers feel more threatened.  Hence their managers feel threatened and when Forester Research shows up all they hear is how platforms like ROR are not enterprise ready.  But it’s not a technology stack that is not ready for development in these corporations.  It’s the people.

In the end it’s that simple.  When people are not ready they will search for whatever means to prove their disaffection, dissatisfaction or ignorance about a product to be real when it’s empirically false.  This is why the enterprise is difficult to define: because it’s a constantly moving target through the emotions and minds of corporate software developers.