What makes an application or a software development process “Enterprise”? [closed]

StackOverflow https://stackoverflow.com/questions/617380

  •  03-07-2019
  •  | 
  •  

Question

After reading Wolfbyte's answer on Enterprise FizzBuzz I have thought about what constitutes a program as "Enterprise".

What makes an application or a software development process as Enterprise?

EDIT: It seems like there is a lot of negativity around the word Enterprise. Are there anyone who actually enjoys writing Enterprise-Level applications?

Was it helpful?

Solution

What "enterprise-level" really means is:

  • Compatibility with architectural schemes and long-term technical plans that overarch anything you or your team will ever do, and thus cannot be changed.
  • Conforms to governance requirements
  • Expensive to build and maintain ;)

Has the following qualities:

  • Maintainability
  • Scalability
  • Functionality
  • Reusablility
  • Reliability
  • Understandability
  • Usability
  • Modifiability
  • Testability
  • Portability
  • Efficiency
  • Flexibility
  • Modularity
  • Interoperability

As far as "enjoying" writing Enterprise-level apps, it can be difficult to do so because one of the characteristics of an enterprise system is that it's larger than any one person. People usually enjoy their work because they can take ownership of it, but enterprise development isn't really "owned" in that sense, rather it's "produced" through a rigid, complex project path guided by acceptance gates and steering committees and business project owners.

OTHER TIPS

Think about all the things that you, as a programmer, care about in a software product. Now think about all the things that you, as a user, care about in a software product.

Now forget about all of those things. Enterprise software isn't purchased by users or programmers. Requirements like "intuitive", "fast", or "interoperable" just don't apply.

Instead, they must meet requirements such as, "vendor published big fat whitepaper full of words like 'fast', 'intuitive', and 'interoperable', so when the peons complain that it makes their jobs more difficult we have something to point at while writing 'difficult' into their employee records".

Slow. Hard to use. Expensive. Based on obsolete technology. See the rails plugin "acts_as_enterprisey"

I kid.

Seriously though, it generally refers to things written for use by Fortune-1000 types, where there are large numbers of users and complex business rules.

If you're an ordinary developer, it's anything bigger than what you're working on now.

If you're an architect, it's the stuff you did at the last client.

If you're the CIO, it's all the stuff that "really matters" -- the stuff above baseline, keep-the-lights-on operations.

If you're in sales, it's what you're bidding on.

If it's your product, of course it's enterprise-ready. You just spent a year making it "scalable" so it would grow to support "the enterprise".

If it's open source, of course it can't be enterprise-scale. Nor, for that matter, is your competitor's product.

And, of course, it varies by client. For the $1B per year companies, a few Oracle financial reports was an Enterprise Initiative. For a Fortune 100 company, almost nothing is really "enterprise" because the entire enterprise is so big and globe-spanning that it's hard to comprehend any one thing that actually fits all the nooks and crannies of that conglomerate business.

Usually Enterprise is used in the negative. "Your software/service/product/offering isn't enterprise ready" or "Open source isn't suitable for enterprise computing".

An Enterprise Application usually something that has multiple tiers and runs on many machines and is designed to fulfill the needs of an larger organization. In practice it usually has a database backend, business logic middle tier, and some kind of frontend like a web interface. Likely has performance and high availability requirements, as well as backup, logging, auditing, and authentication.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top