The term “Enterprise-Class Software” was always a funny one since it’s been used to describe an amorphous class of software that’s somehow “more serious” than any other software – it’s “enterprise class”. But what is “enterprise class” software? What’s the “enterprise” that the term refers to? A 3,000 employee business? Or a 30,000 employee business? Can 3 people in an office do “serious” business that requires “enterprise class” software?

In the last few of years, I’ve seen the term slide from being merely amorphous to being outright poisonous and pointless.

We’re at a point where the private needs of an “enterprise”, and that includes the biggest ones, doesn’t represent much of an interesting frontier for software anymore, at least not from an architectural perspective. The industry has learned and is continuing to expand the knowledge on how to build systems that scale well beyond the need of an individual enterprise. We have learned how to deal with failure in ways that no longer require huge boxes with built-in triple redundancy.

The term “Enterprise Software” is poisonous because it implies a scalability ceiling for a solution serving a few 10,000 people that used to be ambitious, but that’s no longer the case. It’s also no longer the hardest class of software solutions – not at all.

A simple multi-player game for a mobile device that allows a quarter million or more players in groups of 16 to play against each other is killing the vast majority of “enterprise class” solutions in terms of required sophistication of its messaging infrastructure. It needs to scale to  an audience size that even the largest enterprises in the world won’t get on a system concurrently and that audience is going to be enormously unhappy if the infrastructure is dropping messages or is slow. Just search for “MW3 lag” and you’ll find plenty of opinion about latency that’s louder and much more impactful on business than a few hundred employees lamenting about the speed of an internal website, because here you’ve got customers who are individually putting money on the table.

To suggest that consumer-facing scenarios are not “enterprise class” isn’t just arrogant, it’s also dangerous. Enterprises that don’t embrace mobile devices and start deeply interacting with consumers at “consumer scale” will find themselves in deep trouble. Software infrastructure vendors will find themselves in deep trouble if they still think of “enterprise scale” as a key capability or aspiration because their own customers, enterprises, will have to turn outward and embrace consumer scale or face the consequences. There’s also no reliability monopoly that “enterprise” holds in some way. When a systems needs to perform millions of transactions directly interacting with consumers, there’s no room for sweeping failures under the rug. It is actually easier to handle failures and provide high reliability in a tightly controlled, low-scale system than in a system that is the front-door of a business where each hiccup may personally upset a paying customer. It is also easier to shut down a system over the weekend or over a long holiday break than to keep it running 365/7/24. And it’s also easier to secure an insulated internal system than one that’s exposed to the outside world and where a single breach can tarnish the entire business’s reputation.  

“Enterprise software” is something where a single sale can generate a ton of revenue. But “enterprise-class” doesn’t represent anything interesting on the engineering side – except an outdated set of goals and a level of scalability that’s several magnitudes below what’s needed for an environment where more and more consumers have a personal computing device in their pocket and another on the coffee table.

PS: Put “Web scale” on the same heap of useless terms. You ought to scale to your audience, not the web.

Categories:

Thursday, December 22, 2011 10:44:49 PM UTC
You make a good point about the vagueness of the term "Enterprise". However, like a lot of these industry terms, I do find it useful in describing a general class of software. When people ask me what kind of software I work on I say "enterprise business software" and that usually stops the conversation. But at least it gives you an idea of the general purpose of it.

However, you are absolutely right that it means nothing with respect to scalability or quality. Everytime I get a look at the source for a new "enterprise app" I am amazed that any business ever gets anything done.
Seth
Thursday, December 22, 2011 11:06:04 PM UTC
There is a point somewhere in terms that a terms tends to be so over-used that it looses its meaning. Marketing tends to tread tech terms as a band wagon to be jump in, instead of a series of characteristics.

Enterprice software used to mean a set of characteristics that today "enterprisish" software does not meet:

* Scalability. Horizontal and vertical
* Security. Storing a hash of a password is far from enough. Prevent session highjacking, in some cases not being able to get to the data even after stealing the server. Standard compliance like HIPPA when required
* User account management. Manual, ADSI integrated, or any other appropiate means
* System management and administration. Create/revoke access to functionality, to particular records, or ideally to particular fields in particular records
* Usage audit. Who saw or modified what and when.
* etc.

So all though I agree in the general terms of your article, I do think also that it is up to us to unmask when the term is being aboused, but for that we need to begin for having clear what are the needs of an enterprice that are different from other type of software. Warning, you will become unpopular among somve vendors, but very popular among some employers.
Friday, December 23, 2011 3:04:27 AM UTC
i've always said "enterprise is where software companies go to die" its full of people who throw around the word "innovation" but dont want anything different. its a place where software can live in the 90's forever, its full of people who can only barely manage to operate a mouse. enterprise in a place where you can sell crap software for $500 a license and require a separate license for every user. where managers dont know anything about the problem the software is meant to fix, the machine the software runs on or anything related to the software and are more than willing to just throw money at it til it goes away. its the brown dwarf of software.
austin
Friday, December 23, 2011 7:04:17 AM UTC
Large enterprises usually require software that is highly configurable and covers a huge scope. So, for example, if you are selling customer service software to a giant corporation, then there are more demands on the configurability & scope of that software than there are on a different customer service package that might be sold to a much smaller company. think of all the different packages that are sold to truly giant corporations. erp, customer service, financial, manufacturing solutions, plm, the list goes on. a plm system that handles products from multiple industries is truly "enterprise" software. my 2 cents.
Tom
Friday, December 23, 2011 1:17:49 PM UTC
Enterprise software may not be "interesting on the engineering side", but for some of us it's a hell of a lot more "interesting on the business side" than codewanking the dopamine receptors of a quarter-million users struggling to surpass adolescence. A huge part of the problem with tech right now is that "engineers" are bored because they don't understand anything but engineering and Moore's Law. (Oh and games, they like those too!) There's nothing that says you have to build enterprise software according to crap engineering rules just because you can, and interlocking people's dayjobs more smoothly--making them less maddeningly human--has a lot more velocity than another stupid first-person-shooter bullet.
non
Friday, January 13, 2012 4:15:53 AM UTC
Jorge,

I don't understand how ANY of those principles wouldn't be desirable for any software. Ask yourself if you had a startup, which one of those things would you be willing to sacrifice. That's the joke of it. The only exception is possibly auditing, which IMO is SOX garbage that gives the illusion of safety anyways.
Jon Wingfield
Comments are closed.