Good question. One that might even make you chuckle a little bit on the inside. The word “enterprise” is definitely a loaded term. It could be considered by some to be a buzzword. Others might say “Why are we talking about starships?”
When I use the term “enterprise” to describe software, I typically mean “software that helps people get work done more efficiently.” In this sense, Angry Birds and your favorite Twitter client are not enterprise applications. A Twitter client that has additional features to facilitate and track a company’s social engagement, on the other hand, might fall into the enterprise category.
An application that is used in a call center to track incoming support requests is definitely “enterprise”. A system that connects several “legacy” systems and presents employees with a unified interface and saves 1000s of man-years every month of application context switching? Enterprise.
Enterprise software is software that is sold to a business or government agency, and not to individuals. Content management, billing, point of sale, payment processing, customer relations, help desk, project management, enterprise application integrations, time tracking, business intelligence… you get the idea.
This is software for getting things done. This is software that makes a business money. Because of this, it is software that businesses will invest heavily in.
Enterprise isn’t cool.
Maybe. It certainly evokes thoughts of ugly user interfaces with huge J2EE backends. Developers working on Saturdays to get their TPS reports filed. Enterprise software certainly can be that. It doesn’t have to be.
Today’s software users, even enterprise software users, are more sophisticated. They are used to using applications like Facebook and Gmail on a daily basis. They have iPhones that present beautiful easy to use interfaces and excellent user experience (UX). They want more.
More importantly, perhaps, is that software that provides excellent UX makes it easier to get work done. Using software that sucks, is slow, is ugly, or generally misbehaves is counter-productive. Bad software represents lost revenue and increased overhead. Employees that are forced into bad software are forced to focus their energy on wrestling the software. Not only does this make them miserable, but it saps a business’s most valuable resource – the brain-power and energy of their employees.
Enterprise can be cool.
It can! It largely depends on how you define “cool.” For me, my biggest thrill in software development is eliminating cognitive overhead for people that are trying to get work done. I want to make their working lives better. I want them to be mentally free to concentrate on harder problems. I want their businesses to make more money. I want them to see real value in their software, so that they will keep hiring developers to build more software. Achieving these goals is definitely cool.
In today’s world, savvy enterprise customers demand rich experiences. They want to be able to access their data anytime and anywhere. They carry smart phones and tablets and expect their software to function on these devices as well as it does on their desktop computers. Arguably the quickest way to achieve this multi-screen approach is through web applications. Applications that run, and run well, in any modern browser. You don’t have negotiate walled-garden app stores to deploy a web app.
These days we’ve gone a step further with single-page web applications. A single-page app isn’t a brochure-like web page for strictly delivering content. It is a real application, built to do work. A single-page application is a “thick” client that is more similar to a desktop application than a web page.
 http://enterprise-js.com/ is hilarious. Hint: don’t follow its advice!