Factors Leading to a Complex Design for Enterprise Software

A poor design software would cause confusion and negative experiences for end-users. It is noticeable to consider what reasons causing these common mistakes for enterprises in order to improve your own software.
Factors Leading To A Complex Design For Enterprise Software- Feature Image
Image Credit: Press Associate
By | 7 min read

Why is enterprise software often so complicated? originally appeared on Quora: the place to gain and share knowledge, empowering people to learn from others and better understand the world.

In enterprise business applications, complexity stems from complex enterprise needs. To give you a flavor of these, here are just a few examples of requirements that lead to creation of complex platform infrastructures that make up the complex enterprise software.

User Interface

  • Translation for multiple languages
  • Localization for different areas (e.g. currency, dates etc)
  • Complex Query Needs (custom fields, saved queries etc)

Customizability/Extensibility

  • Adding custom attributes, objects
  • Modifying out of the box functionality e.g. business processes
  • Modifying the look and feel for personalization by end users (e.g. MyYahoo)
  • Verticalization needs (e.g. industry specific flavors)

Operational

  • High Availability (for planned downtimes)
  • Selective feature uptake (to avoid re-training thousands of users)
  • Performance requirements for high volume, latency, throughput etc.

Functional

  • Complex security needs (users, roles etc)
  • Organizational setup (e.g. business units, divisions etc)
  • Error handling and compensation for rolled back business processes

In addition, there are a few additional factors to consider for large enterprise software products:

Development Scalability

For multi-product application suites, economies of scale is achieved by consolidating common functions into a common platform, which then have the same complexities that the applications face when trying to develop products for a wide range of customers. This adds a layer of “knobs” to tune over and above the functional knobs that the application software provides.

Integration

No enterprise software lives in an island and integration with other systems is usually one of the big costs in application deployments. Integrations are inherently complex due to the nature of trying to tie together heterogenous applications with different data models, granularity, cardinality, semantics and protocols.

Standards

To allow for a plug-n-play model, most platform level APIs are driven with facade style interfaces that can plug-in to various implementations e.g. jazn; that add a layer of complexity. Use of standards-based technologies (BPEL, ESB, Web Services) also contributes to some level of complexity, as those standards are aimed towards satisfying requirements from all the participating members who created those standards.

Perception

I do not pretend that all enterprise software are absolutely user-friendly, but do realize that large chunks of enterprise software are targeted towards specific roles, which may seem very unfriendly to users who are not in that role. For example, a snazzy, graphical UI is not necessarily “simple” for data-entry clerk as it is to a knowledge worker.

When you think about it, a large percentage of the world economy depends on enterprise business software (ERP, CRM, HCM etc), and requirements such as above tend to add complexity.

Note that while the software can be complex, there is no excuse for not making the end-user experience as smooth as it can be. Although in my experience, some complexity does tends to bleed into the user experience, especially in on-premise deployments. The SaaS model, to some extent, shields end-users from most of the complexity, but once you start getting into requirements such as integration, complexity does find its way through during implementations.

Contributed by Rajesh Raheja, Experienced in developing enterprise business applications and platform technologies.

  • Quora is a website where you can post any question and get real answers from people with firsthand experience. It is the place to gain and share knowledge, empowering people…