We often hear the term “Enterprise” thrown around, and as web developers many of the applications we build are considered enterprise applications, but what does the term really mean?
Here I take a look at what enterprise applications are and what challenges they pose.
There are negative connotations to this term in some circles, but what does it really mean? ‘Enterprise application’ is a loose term for a type of software that solves fairly big problems. Martin Fowler describes it as:
the name I give to a certain class of software systems: the data intensive software systems on which so many businesses run. Another, and perhaps better, name for them is Information Systems since these are systems that process and manipulate information.
| Enterprise | Not enterprise |
|---|---|
|
|
Capterra, a company specialising in recommending enterprise software, broadly defines the term in the following manner:
So, generally but not exclusively, we’ll define enterprise applications as business-facing rather than customer facing.
Enterprise applications are generally complex and expensive to build due to their scale and complex requirements. The technical challenges involved in producing Enterprise software may include:
There are also business challenges in producing and maintaining enterprise level applications, as large teams of developers and QA staff often need to be co-ordinated.
This question basically means: can this technology or product cut it dealing with the challenges in the types of systems we’ve outlined here? This can be a bit of a loaded term thrown around defensively by people who aren’t really sure what Enterprise actually means, and “enterprise” can even be used as a dirty word to imply excessive complexity. It can also be a valid question, asking “does this software meet the needs of a large organisation?” Some technologies are not mature and stable enough to be robust in an enterprise application.
When we as application developers create an enterprise level application, we have to very carefully examine our technologies to see if they are able to deal with these challenges. We cannot just pick the current “flavour of the month”.
For many software houses, the default go-to languages for enterprise application development are currently Java and .Net: they are robust, fully enterprise platforms ready with transactions, web services, security, versioning features built in or available. This isn’t the end of the story, however: other languages are increasingly stepping into the enterprise application market. PHP, for example, is a language that is being used in several systems that could be classed as Enterprise Applications (e.g. Facebook). In a future blog post, we will examine whether PHP meets the criteria for being Enterprise Ready.
“Enterprise Application” may be a loaded term for some, but it does have meaning. We can consider it to mean software that deals problems faced by enterprises as opposed to individuals and small businesses. Enterprise Applications have a set of identifiable challenges and it is important to choose the correct tools and processes to address them.
Comments
There are no comments on this item