Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I see the term "enterprise" being thrown around software developers and programmers a lot and used loosely it seems.

en·ter·prise/ˈentərˌprīz/

Noun: A project or undertaking, typically one that is difficult or requires effort. Initiative and resourcefulness.

Can someone please clarify what this term actually encompasses? "At an enterprise level", "enterprise scale"? There are even "enterprise editions" of things. What exactly does it mean? It obviously doesn't make sense judging by the above definition so more specifically to software what does one mean when using the word enterprise?

EDIT:

To add a spin on this - how does this term then fit into phrases such as Enterprise Framework Model? What does data access and data context have to do with company-wide descriptions?

share|improve this question
6  
Very similar question: What is enterprise software, exactly? –  Roc Martí Apr 13 '12 at 9:43
    
Similar yes, but that's more specific to software so doesn't answer my question. Thanks for the link anyway, +1 –  SkonJeet Apr 13 '12 at 9:44
6  
Basically means that it's complicated enough, that you can build consulting business around it ;-) –  vartec Apr 13 '12 at 9:58
3  
@SkonJeet: Companies like IBM and HP tend to abuse term "enterpise", and their business model is basically providing consulting services to deploy and maintain their solutions. –  vartec Apr 13 '12 at 10:19
7  
@vartec I thought it meant needlessly complicated and expensive software that extremely large corporations with bloated IT budgets purchase because of all the money they saved downsizing their IT staff and slave driving the ones who remain? –  maple_shaft Apr 13 '12 at 10:53
show 2 more comments

6 Answers

You need to widen your definition.

From http://dictionary.reference.com:

en·ter·prise  [en-ter-prahyz] noun

  1. a project undertaken or to be undertaken, especially one that is important or difficult or that requires boldness or energy: To keep the peace is a difficult enterprise.
  2. a plan for such a project.
  3. participation or engagement in such projects: Our country was formed by the enterprise of resolute men and women.
  4. boldness or readiness in undertaking; adventurous spirit; ingenuity.
  5. a company organized for commercial purposes; business firm.

As per the 5th definition that I have quoted above, Enterprise software or an Enterprise Licence is intended to provide a company-wide solution. As per the OP's dictionary definition, the "Project or Undertaking" in the cases quoted by the OP is a company.

A company-wide solution means that it will be used wherever a company has an office, or a site. So an Enterprise license will provide a solution for all of a company's sites. This differs to a Site license, which would only cover one location belonging to a company, instead of all of them. Anther use of the term Enterprise is simply to indicate an entire company, and isn't necessarily limited in definition to something software related. Thus you can have software, HR or Accounting, or even a supply of Jelly Beans for "The Enterprise". When used in either case, the word Enterprise in relation to the size of a company isn't relevant, as it applies equally to a small business, as it does to a megacorp.

Enterprise editions of software are intended to be packed full of the sort of features that you would typically need to suite a multi-site multi-server solution of some sort. In this case however, you'll find that it is just as likely to mean that you are expected to pay more to get more of the features that you probably wouldn't need in a smaller "enterprise", and therefore the word becomes as much marketing hyperbole as anything.

To answer the edited part of the OP's answer, an Enterprise Framework is a fancy name for an API that supports implementation of products designed for distributed data storage and communications, typically necessary for products designed with a multi-site product in mind. This is typically not intended for small businesses and yet can be used to create products which can scale from a single server/site to multiple servers/sites. The idea is to allow a product to grow to match the changing needs of a company (the Enterprise) as it grows, such as opening offices around the world, but sharing a common mail system for example.

So the issue of the word being used "vaguely" or "loosely" is really a bit of a non-issue, since the term Enterprise is always intended to mean "company-wide, regardless of the number of sites you need to service"... only Enterprise is clearly much less of a mouthful to say, and as per the examples that the OP has listed, the meaning of the word Enterprise remains clear.

share|improve this answer
    
Thanks for your answer, it's clarified a lot - and to be honest I feel like I have a better understanding of the word enterprise in a software context. However, it seems to be a common answer that enterprise is used to describe software that is intended for company-wide scalability - but isn't all software essentially designed to be scalable? Unless it's poorly designed that is. Also, please see edit. –  SkonJeet Apr 13 '12 at 10:16
1  
@SkonJeet No necessarily. Scalability is a matter of many factors, and I wouldn't call software badly designed if it didn't meet conditions it was never planned or designed to meet. Does the software work distributed across many servers? Does it parallelize its workload well? Does it localize text so it can be used in many countries? Will it build and run on different hardware? Are there many consultants/programmers who can use/modify it? All these and more are big factors in how useful a software is to an enterprise, depending on that company's specific needs. –  CodexArcanum Apr 13 '12 at 13:49
add comment

In my experience, the word "enterprise" in a software setting most often refers to software being written for a large corporation. It also often refers to internal software, rather than client-facing software.

This may seem like an arbitrary line to draw (and of course, what exactly is "large"), but having written software for a variety of different types of companies, I can tell you that the needs of large businesses is very different to the needs of small companies, which is again very different to the needs of individuals.

Issues that are often irrelevant (or rather, not worth investing in) for many small companies include:

  • High availability / seamless failover
  • Redundancy / disaster recovery
  • Privacy of customer data
  • Compliance to laws and regulations
  • Realtime monitoring, rich trace info for troubleshooting
  • A focus on reporting (typically allowing for intelligent management)

I would hazard a guess that this is because the overheads and profits of a large company are on a completely different scale to a large company. If a small company's payrolls go offline, you can pay by hand, or apologise to everyone personally. If it happens in a large corporate, there's an uprising. I've once had a bank throw around numbers of several millions of dollars being lost per hour until a bug was found - it puts the perspective on things. Reliability is a big thing for most large companies (well, at least on paper).

share|improve this answer
add comment

The use is rather vague but normally means software that is expected to work in large organisations - multinational ones, for instance.

share|improve this answer
    
Thanks for your answer, but it seems that that's not the only normal use of the word. Looking on the link Roc has provided (in the comments on the OP) you can see there are many many different uses for the word. One thing that really annoys me is that at a junior level - sussing out development and technologies is hard enough without words like this flying around the industry to cause confusion. –  SkonJeet Apr 13 '12 at 9:50
3  
@SkonJeet - Exactly why I state that the term is vague. –  Oded Apr 13 '12 at 9:52
    
Which is why +1, and probably going to be marked as answer. It's as if in the programming community (can even be seen within SO) there's almost a type of pretentiousness with the words used - designed by those at a senior level to showcase their knowledge and exclude those who don't posses it. –  SkonJeet Apr 13 '12 at 9:54
1  
@SkonJeet - "Agile" is another such word. –  Oded Apr 13 '12 at 9:56
1  
@S.Robins - I respectfully disagree. The use in this context is vague and depends on who is talking. It is mostly a marketing term and does not have exact meaning. –  Oded Apr 13 '12 at 10:07
show 3 more comments

In theory "enterprise solution" is any kind of solution that is apt enough for large scale corporate business. In practice however it means solutions developed with "nobody get's fired for hiring IBM" mentality.

On the other hand there are companies like Google, Facebook, Amazon etc. who have built their business on solutions not traditionally considered "enterprise level". For example they initially were using cheap, CotS hardware. Software they are using is Open Source, with great role played by dynamic languages, which also aren't traditionally considered "enterprise ready" (even though they are widely used by enterprises).

share|improve this answer
    
"that is apt enough for large scale corporate business" - what solution is not originally designed for scalability though? This is where my confusion lies. –  SkonJeet Apr 13 '12 at 10:12
1  
Quite a lot of software is designed to work first, scale second. Scalability is YAGNI for many solutions. –  Eoin Carroll Apr 13 '12 at 11:03
    
Why have you used the acronym YAGNI? 9/10 people probably don't know what that means and have to google it. –  SkonJeet Apr 13 '12 at 14:17
1  
@SkonJeet 9/10 non developers don't know what YAGNI means, but most developers do (or should), it's a fairly common acronym that comes up a lot (along with DRY, SOLID, etc). And nothing wrong in googling for an acronym, you learned something new by doing it. –  Yannis Rizos Apr 13 '12 at 16:43
add comment

Enterprise software typically is:

  • Internal facing;
  • Either mission critical and/or used by many people throughout the business; and
  • Integrated with other internal and/or external facing systems

Enterprise software doesn't necessarily have to be implemented in a large company. An example might be an electronic medical record system at a small doctor's office that is integrated with hospital lab systems and insurance claims processing systems.

share|improve this answer
add comment

The definitions are fine and good. In software this seems to be attached as a marketing term- a code word that says "buy this for your business, this is serious software where you can get support." Whether or not that's true depends on the product, but that's the message marketing is trying to send. The support part of that is important for many businesses- they want someone on the other end of the phone when they call with a problem.

In this context, it's a marketing term.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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