views:

1980

answers:

18

Is it just a buzzword that means nothing or is there a definition of what makes an application (desktop or web) an enterprise application?

+12  A: 

It's a buzzword, used to refer to complex systems designed for large organizations. There is no technical definition.

The adjective "enterprisey" is often used to deride such systems, as they are often bloated, often based upon antiquated technologies, and they require a lot of support and maintenance.

Kristopher Johnson
+2  A: 

It's all too often a buzzword that's appended to appeal to corporate purchasing orders.

c.f. Wikipedia entry

Richard Harrison
+5  A: 

I have come to believe that the biggest difference between an enterprise application and a "normal" one is that whereas a regular application tries to enable the user to do as many things as easily and as flexible as possible, an enterprise application is all about limiting what the user can do according to "business logic": Access to all data is restricted by ACL, and the page flow is constrained according to baked-in workflows that the business process consultants have come up with.

In other words, the main feature of an enterprise application is to limit the harm that an employee can do (and to assign blame later using the audit trail).

Thilo
Yes, access control is stupid. I want every employee of the bank to be able to do whatever they want with my bank account. Of course, there shouldn't be any audit to track changes, either.
David G
Hey, I did not say any of this was a bad thing ;-)
Thilo
You're right that enterprise applications can be inflexible.
David G
+11  A: 

Basically enterprise should mean the characteristics:

Sometimes you get enterprise level software for free. But you can always have commercial/professional support.

Andre Bossard
+2  A: 

Lots of XML? :)

Seriously, though, the word enterprise is a meaningless extension that implies it was developed after a game of buzzword bingo. If you need to use the word, then you are probably doomed to an endless round of heartache and pain.

Biased? Me?

ZombieSheep
+1  A: 

Martin Fowler gives a good (Lengthy) definition of what he believes Enterprise applications are in the introduction of his book Patterns of Enterprise Application Architecture. Too long to put here, get the book.

Ash
I will look into the book. Thanks.
Thomas Owens
ilitirit sucessfully quoted it ;)
tobsen
+34  A: 

Enterprise is just a buzzword. "Enterprisey" systems are often bloated monsters. The reasons applications become "enterprisey" are very powerful.

  1. Once a feature is added, it can never be removed so applications almost always get bloated over time.
  2. Some large customers demand features that nobody else cares about but they must be added to keep those large customers happy.
  3. In order to sell new versions, companies have to add features whether they're important or not.
  4. The more diverse the customer base, the wider the feature set becomes making the application almost impossible to understand.

On the other hand, enterprise products also have attributes that are positive or difficult things to provide from a developer perspective.

  1. Must handle high load -- many transactions with many simultaneous users -- critical performance. Often includes cluster support.
  2. Must be multi-platform -- usually a minimum of Windows, Linux, and Solaris.
  3. Must support many different configurations, including databases -- often has to support at least Oracle, DB2, SQL Server, and MySQL.
  4. Must support high availability -- 24/7 operation, 99.99% uptime, etc.

Companies that sell enterprise applications have to

  1. Provide 24/7 tech support.
  2. Provide critical patches, often within 24 hours.

Edit: To elaborate on the point that features can never be removed: There are always customers that depend on or love some particular feature. When you try to take it away, they get really upset and threaten never to buy a product from you again. Even with features that you think (in hindsight) were a mistake, you find someone uses it. I've even had to "un-fix" bugs because some customer was dependent on that behavior!

David G
I don't understand your first point that features can never be removed. Can you elaborate on that?
Thomas Owens
Thanks for that expansion.
Thomas Owens
awesome answer! +10
hasen j
This is why many enterprise apps are designed to be modular. Every customer wants their own favourite feature, but they don't want the bugs from modules they don't need.
finnw
Enterprise systems does not have to be multiplatform, that is not right. As long as the system can run on the platform the customer uses, then the customer is happy.
jpartogi
You're right that it doesn't have to be multi-platform but most commercial enterprise platforms are multi-platform.
David G
+31  A: 

From Martin Fowler's Patterns of Enterprise Architecture:

  • a lot of persistent data
  • concurrent data access
  • a lot of user interface screens
  • integrate with other enterprise applications
  • lots of translation between data formats (usually for integration or reporting)

Note that this is not a precise definition of EA. It's just a list of common attributes.

ilitirit
Surely that could also describe.. erm.. iTunes? Lots of persistent data (music), concurrent data access (playing music, streaming, downloading podcasts etc). Lots of different UI screens. Integration with other apps (Front Row, Finder etc). Translation of data (library exports, transcoding etc..)
dbr
The book gives these attributes more context. I just extracted the keypoints and posted them here. eg. "persistent data" refers to data in a database, "concurrent data access" refers to the users accessing the backend concurrently (this would be iTunes store, in the case of iTunes)
ilitirit
iTunes probably has a decent claim to be an “enterprise” application, as it’s essential to running a business — albeit one business, by one company.
Paul D. Waite
iTunes ist not an enterprise app, because it is being well-tested before delivery. SCNR
mhaller
+3  A: 

It is quite hard to distinguish "true" enterprise apps from applications that are merely buzzword compliant. Lots of apps are called "enterprise" so they can be sold to businesses for more cash.

However.

I would class Enterprise Applications as large-scale, distributed, transactional and highly-available applications designed to support mission-critical business requirements.

(I am paraphrasing my own answer from elsewhere on SO ... )

Toby Hede
if you said "enterprise" apps STRIVE to be large-scale, distributed, transactional and highly-available, but never achieve those goals then I would up vote you.
fuzzy lollipop
A: 

I many cases, "Enterprise" just means you paid for exclusive support from the company.
I've seen some companies that sell different levels of support for available Open Source applications.

lamcro
+28  A: 

It means the price tag is $10,000 per seat (or $50,000 per server) or higher.

Also you have to have a SQL database in there somewhere. It doesn't have to be useful, it's sufficient to just write logs to it and have a form to allow "advanced" users to query it (read: "Write the SQL yourself.")

You need to defend yourself against claims that "it doesn't scale." The best way to do this is to ensure the software doesn't do anything useful, so that no-one uses it. That way you can be sure that it can handle thousands of users.

The last rule is that it must occasionally be able to produce pie charts. Random data is fine, as long as the labels look simultaneously high-tech AND vaguely finance-related (e.g. "Flux capacitor resource leverage compliance 2007-2008")

As for the code to generate the pie chart, you can't get away with a static image and your engineers are probably too dumb to implement it, so you will probably have to buy this from a 3rd party. Have this updated every couple of years with new 3D shading effects.

For the brochure, you must have a window with hundreds of buttons and some kind of diagram in the middle. Writing a real program for the purpose is overkill, but you can't just substitute a Paint Shop Pro screenshot as the managers you are trying to sell to will recognise that. A trick that works well is to erase the icons (of spray cans etc.) from the PSP buttons and replace them with meaningless 3-letter acronyms in a tiny font that's hard to read even on-screen, and almost impossible to read in the brochure. Then superimpose your pie chart report window on top of your modified PSP window.

Note: the above rules do not apply to the "Enterprise Edition" of a desktop application. You can stick that tag on pretty much anything.

finnw
I actually laughed out loud reading this.
instanceofTom
Best answer ever
bugspy.net
+2  A: 

You're doing enterprise when you can't say "NO" to a feature.

Tawheed
A: 

I can come up with a couple of criteria that I have encountered in the enterprise applications I have worked on:

  • Software is installed in multiple separate security domains.
  • Ownership (prioritization of enhancements) is shared across multiple peer organizations.
  • Cost is spread across multiple organizations, sometimes by usage, sometimes by ability to pay.
  • Support (enhancements, implementations, bug fixes) is centralized.
  • Administration is centralized.
Metro
+3  A: 

It's n-tier where n >= 3.

Tom
+2  A: 

As my day job is all about enterprise architecture, I believe that the word enterprise isn't nowadays about size nor scale but refers more to how a software product is sold.

For example, Ruby on Rails isn't enterprise because there is no vendor that will come into your shop and do Powerpoint presentations repeatedly for the developer community. Ruby on Rails doesn't have a sales executive that takes me out to the golf course or my favorite restaurant for lunch. Ruby on Rails also isn't deeply covered by industry analyst firms such as Gartner.

Ruby on Rails will never be considered "enterprise" until these things occur...

jm04469
Agreed, the definition has more to do with corporate politicking than anything else
Gurdas Nijor
+1  A: 

An application is “enterprise” if it makes people working in large companies feel like they’re doing something important.

Or if it launches photon torpedos.

(To answer the question rather than just venting my own insecurities and obsessions, there’s no strict definition. Like most terms, it’s pretty loose.)

Paul D. Waite
A: 

Lots of forms, with lots of input box, check box and buttons in them :)

Imran
A: 

Definition is very simple - Enterprise application is a application which solve specific problem of specific enterprise. period.

voipsecuritydigest.com