I don't understand the difference between "normal" software and enterprise software. Even after reading these...

I can't really wrap my head around the real differences. Is there any difference at all between the two? Why do people say enterprise software sucks?

  • 1
    On top of my head, the term is usually used to indicate "heavy duty" software where you have large user base, support for high level/high-volume of on-line integrated data across the enterprise with the expectation of good performance and coverage of many major business functions.
    – NoChance
    Commented Mar 25, 2012 at 11:54
  • 9
    If the price of the software is in 5-figures and upwards, that's "enterprise"!
    – CraigTP
    Commented Mar 25, 2012 at 12:47
  • 7
    "Isn't that a bit expensive for software?" "No, this is enterprise software!" "Ok, then I'll pay."
    – Sjoerd
    Commented Mar 25, 2012 at 13:16
  • 6
    It's just a marketing term used to pull more money out of the customers pockets. Software is just software. That being said I will get myself an enterprise coffee...
    – ThomasX
    Commented Mar 26, 2012 at 7:44
  • 2
    you should take a look at the daily wtf (not giving link). You will have a good feel of "enterprise software" in the comments
    – Kemoda
    Commented Mar 26, 2012 at 7:57

9 Answers 9


In short words, normal software would be the software made with individuals in mind, i.e. retail software or web applications targeting the general populace. Its success depends on how well it is received by users who in most part are offered a ready-made, 'standard issue' product. The development is an investment and the revenue comes from individual product or ad space sales.

On the other hand, enterprise software would be the software commissioned or developed internally by companies, either tailor-made from scratch or purchased from a third-party vendor and heavily customized for the company's business process.

The reason people say enterprise software sucks? I'd say there are three main reasons, heavily interconnected:

  • People who pay for it aren't the ones to use it - upper management / IT department makes the decisions. Ideally, they would consult the future users and make it imperative to adhere to what they have to say. The bad reputation comes from the cases where this is not so.
  • Systems like this are one-of-a-kind - retail software has to be well tested before putting it out on market, as the bugs may make it or break it in the view of its target users. Furthermore, it is used by dozens of people around the world on different machines, with different usage patterns, and so on, resulting in feedback useful for future releases. Enterprise software suffers from a small user base consisting mainly of people who have no choice but to use it regardless of user experience. As a result, less focus on user experience and less feedback to be gained from users (and often, no channel for such feedback when the work is being outsourced).
  • Companies who use the software are not software companies - they are using the software, it's critical for the business they are conducting, however it is secondary to their business objectives. As such, enterprise software will suffer from unreasonable deadlines, resources being under-allocated and being deemed 'good enough' while still being incomplete or under-tested.

One reason for dislike of enterprise is that in many cases it is designed to be a one size fits all. Like with clothes, what this really means is one size fits no-one.

You see large amounts of configuration sometimes extreme amounts (Siebel, SAP, etc. all work on this premise). So much so that large teams of "developers" are needed to program the already mega expensive software to work.

In some cases this makes sense in others not so much so. It makes sense when a company has decided to either align processes with the software or the software already aligns with their process.

When the sales person starts telling you it "can" be made to do that or some feature is "supported" run for the hills

  • Disclaimer: Veteran of 3 failed Siebel attempts at the same company.

formally I am not sure what its definition is. Some characteristics I think which are more important are

  • long term support (they want to know the company will be around and maintain the software)
  • usually solves enterprise business problems/processes (examples include HR, procurement ... i.e managing employees, paying them, procuring supplies)
  • customized/specific to the company's needs
  • Total cost, once you factor in all the licenses, consulting fees and any other expenses, rather than only the sticker price

Enterprise software is just that, software aimed at enterprises. It is usually unstated that this means medium to large scale enterprises (companies).

Some key features that come to mind are:

  • frequently distribution is through institutional licenses.

  • usage if often paid by 'bands' of user size than a fixed cost per user per license.

  • upgrades are often done through system-wide pushes rather than ad-hoc user by user.

  • Frequently used for desktop components.

  • higher use and integration with existing internal authentication/authorization methods.


According to Martin Fowler's "patterns of enterprise application architecture", enterprise software usually involves access to persistent data. There's often a lot of data, with multiple users trying to access it concurrently. Enterprise applications usually need to integrate with other systems.

However, he also points out that there's a lot of variation in enterprise applications, and that not all or indeed any of the above points necessarily hold in all cases.


To oversimplify, Enterprise software is software aimed for the business.

For better or worse, this type of software comes with some painful trends:

  • More sign-offs implies fewer trade-offs.
  • Lots of focus on interfaces.
  • Formal planning processes.
  • Less willingness to just try things.
  • Frequently unrelated to how the company makes money. (Internal HR, etc)
  • Doesn't always attract top talent.
  • Frequently late and over budget.

The extreme example is a large PeopleSoft implementation with 100 consultants attached to it that gets implemented 2 years late.

People don't like working for large programs designed by committee.

It doesn't have to be this way, but it frequently is.

  • 1
    This is more of a rant than an answer.
    – JeffO
    Commented Apr 23, 2014 at 19:22

Enterprise software is software that is targeted for businesses, nothing more, nothing less.

Just take Microsoft for example. They have a whole website dedicated to enterprise software, and what are some of their offerings? Well they are Windows 7, Windows 7 phone, IE9, MS Office, etc. Windows 7 has a few new built in features, but nothing you couldn't already due with an existing Windows 7 build that is targeted for consumers (after looking only briefly at their website) -- but the rest appear to be exactly the same as their consumer counterparts but.

It's just another buzz word...

Liz: Cross-promotional, deal mechanics, revenue streams, jargon, synergy. Jack: That’s the best presentation I’ve ever seen. -30 Rock, "Winter Madness"

  • 1
    I think that to describe it as "just another buzz word" is rather missing the point. There is a particular category of software that needs to be identified and catgeorised and I also think that your definition is wrong (There are products targetted at Small and Medium businesses that are not "enterprise" capable).
    – Murph
    Commented Mar 26, 2012 at 8:16
  • I think the point is that there is no real agreed definition. So, "software that is targeted for businesses" is the best definition yet, I think.
    – JW01
    Commented Mar 27, 2012 at 19:31

After having spent nearly 20 years writing 'Enterprise' software here is my answer :

1) Enterprise almost always means 'web application'. 2) Enterprise really just means 'very very large'.

Enterprise software is typically written by hundreds of people over several years. Thus the tools, patterns, and languages used tend to make collaboration, security, stability and scaleability a priority.

The typical 'Stack' of an enterprise application will involve many different languages, protocols, servers, firewalls.. each with their own teams of people. These applications require many different skill sets to produce, from project management, through to actual software engineers. Often people working on any particular aspect of an enterprise scale application don't know exactly how their component fits. Only the "Enterprise Architect" may see the whole picture, but then they don't know any of the details.

The art of enterprise application creation is successfully navigating this 'fog of war' by choosing the right technologies and procedures etc.


One definition of enterprise software is the license. The software developer expects the purchaser to be installing the software on all of their machines. They may be paying for an unlimited license, or a maximum number of concurrent users.

The cost of the license of a max number of current users (lets say 100) is greater than the cost of 100 licenses, but it is also less then the cost of one license for each employee.

For web applications they will limit the number of admin account, but not limit the number of users in your domain.

I like enterprise software in some situations. In those cases the installation procedures have been streamlined to make it possible to install them from a server. Non-enterprise software would expect the user to install the software. Many companies lock down the machines, so that the average user can't install it. The enterprise software allows the software to be installed or updated automatically from a central repository.

Not the answer you're looking for? Browse other questions tagged or ask your own question.