What do people consider Enterprise Software these days? Actually, what is it? I am going to broach the subject through a few simple questions. This is a relatively long post, I hope to cover enough interrelated questions to make it worthwhile.
What is Enterprise Software?
Let’s ask Wikipedia:
Enterprise software, also known as enterprise application software (EAS), is computer software used to satisfy the needs of an organization rather than individual users. Such organizations include businesses, schools, interest-based user groups, clubs, charities, and governments.
Hmm, this doesn’t seem useful be honest, Excel and Oracle database would both fit this definition. Let’s try Gartner:
Enterprise application software includes content, communication, and collaboration software; CRM software; digital and content creation software, ERP software; office suites; project and portfolio management; and SCM software.
This is not much a definition as it is an elicitation of examples, it does narrow down the purpose somewhat – probably as Gartner would prefer, hence not a fundamental one. One more attempt, Webopedia (cached):
An enterprise application is the phrase used to describe applications (or software) that a business would use to assist the organization in solving enterprise problems. When the word “enterprise” is combined with “application”, it usually refers to a software platform that is too large and too complex for individual or small business use.
Better. This is probably what most people have in mind when they invoke the term. The key qualifying elements are complexity and scale (too large), these notions can be equally applied to Gartner’s definition as well as Wikipedia’s and probably to many more.
From Business to Enterprise
Given the tremendous pace and breath at which software application changed over the decades, how has the notion of Enterprise Software fared? I don’t know who coined it first, didn’t do enough digging to find out. However, we may be able to get a sense by focusing on another term, Enterprise Resource Planning (ERP). I could have also considered Customer Relationship Management (CRM) to expand on the notion, but I wanted to go as wide as possible.What is ERP? Here is Wikipedia again (just a convenient and popular source):
Enterprise resource planning (ERP) is the integrated management of main business processes, often in real time and mediated by software and technology.
Sharp! Although, many systems out there wouldn’t do too well if scrutinised under this definition. Where does ERP come from? Here is Wikipedia’s answer:
The Gartner Group first used the acronym ERP in the 1990s to include the capabilities of material requirements planning (MRP), and the later manufacturing resource planning (MRP II), as well as computer-integrated manufacturing. Without replacing these terms, ERP came to represent a larger whole that reflected the evolution of application integration beyond manufacturing.
Alright, this gives some sense of complexity. Although it seems to be suggesting that a business that doesn’t have manufacturing isn’t targeted – just an interpretation not necessarily what they actually mean. Let’s see if we can get more specific than that. Wikipedia:
ERP provides an integrated and continuously updated view of core business processes using common databases maintained by a database management system. ERP systems track business resources—cash, raw materials, production capacity—and the status of business commitments: orders, purchase orders, and payroll. The applications that make up the system share data across various departments (manufacturing, purchasing, sales, accounting, etc.) that provide the data. ERP facilitates information flow between all business functions and manages connections to outside stakeholders.
A manufacturing process may involve a large number of parts, sourced from a variety of providers, all orchestrated in order to create one or more product ranges. Complexity in such case may be bewildering, likely distributed across the network of participating entities each dealing with its own part of it. The expressions core business processes and common databases make the definition so much broader that it can encompass nearly any kind of organisation.
Analyst Gartner’s choice of terminology may have come to stand for an entire industry. The incredibly wide variety of business types and sizes and industries, organisations may range from a couple of people all the way up to something like 600 000 (larger than the city of The Hague), gives a sense of both scale and complexity.
What is Enterprise?
This term can apply to so many different shape and size organisations that it’s not even worth looking at definitions, the Wikipedia entry illustrates it well. It may be better to look at the term business instead, Wikipedia:
Business is the activity of making one’s living or making money by producing or buying and selling products (such as goods and services). Simply put, it is “any activity or enterprise entered into for profit. It does not mean it is a company, a corporation, partnership, or have any such formal organization, but it can range from a street peddler to General Motors.”
This is a useful definition for exploring the term Enterprise Software. Instead of Enterprise Software, we could be talking about Business Software, which is also commonly used. Wikipedia has an entry on that:
Business software (or a business application) is any software or set of computer programs used by business users to perform various business functions. These business applications are used to increase productivity, to measure productivity and to perform other business functions accurately.
Then something strikes, people may have chosen Enterprise Software when referring to very complex (implying costly) Business Software. Enterprise Software actually stands for Enterprise-grade Software, the term grade is muted. This all make more sense. It also makes clear that the term requires more scrutiny, why, because the (business) world has changed so drastically over last three decades that definitions also ought to have evolved.
Enterprise grade Technology
Some Big Tech companies have grown to become technology platform providers in their own right, having originated some widely adopted technologies. Where big iron (IBM, for example) often created the early technology platforms such as ERPs, big tech ushered in the era of modern distributed computing platforms for workloads such as big data, messaging, audio and video streaming, container and clustering technologies, and many more. Such workloads can run on-premises or on the Cloud, often on hybrid environments for the classical Enterprise type – by Classical Enterprise, I really mean the very large companies that have built up a lot of legacy technology over their decades long existence, typically stretching back to well before the web era. One thing remains constant though, complexity, it hasn’t disappeared at all but rather it gets shifted around as the technology evolves. Enterprise Software buyer seems to be stuck with complexity.
Enterprise and complexity
When things were simpler, that an Enterprise perimeter could be defined by the boundaries of its building complex(es), the problems that needed solving often reflected this. If a user didn’t have access to a building, or not allowed on specific floors of a tall or high rise building, that would define how security for example was handled. Software by and large mimicked such organisation reality as well, in terms of capabilities, scaling and security for example. The tools used to capture and analyse enterprise problems were adapted to this reality, therefore the concepts used to describe and model the organisation.
Nowadays though, an organisation’s employees may work from anywhere. Organisations span all sorts of mixes of environments, systems, locations, and even time spaces. Services, entertainment, advertisement, social media, and myriad other non-traditional business activities have flourished wildly, the type and nature of software solutions exploded to meet the demand. Work can be conducted on private or public spaces, remote from the company’s facilities. Enterprise Software, still trying to mimic an organisational reality, has struggled tremendously to keep up. Complexity has deepened and expanded, dramatically in some cases. And yet, it’s never been easier to start and run a very capable business with a low barrier to entry. It almost look as though a billion dollar business can be sprung up in just a couple of years, thanks to the way technology has become affordable and broke down erstwhile insurmountable barriers.
Enterprise Software has evolved
What exactly defines the complexity limit or boundary at which point Business Software would tip over to qualify as Enterprise Software? In my early years in this industry I used to ask around this kind of question, the answers I got would inevitably include notions like scale, transactional concepts such as XA or 2PC, mission critical, security and compliance. Such characteristics were only available in expensive business and system software such as RDBMS, large financial software running on expensive hardware mainframes. The buyers of such systems were typically multi-nationals such Coca-Cola or Phillips, large banking and insurance companies, big oil companies such Royal Dutch Shell, many in the U.S. Fortune 500 companies.
But, we’re not a bank
It’s not unusual to hear someone quip, we’re not a bank!. What they may be implying is complexity and costs, most probably indicating that they are not willing nor able to afford a certain level of expenditure. Incidentally, you rarely hear such quip from banking executives or people experienced with banking systems, for they may be aware that the implied qualities of scaling and security or robustness not always reflect reality they experience.
The stands out include the perception of value and complexity, and perhaps an implicit assumption of high costs. Traditionally, large financial institutions were the ones laden with daily millions of transactions and endowed with high risk values. Large industries, oil and gas, manufacturing, transportation and aeronautics, all deal with lots of high value information. Large government institutions also belong here, dealing with citizen data and civil service activity administrations. Those were the days when most of the notions like ERP, CRM, SCM were born to capture and describe highly complex and expensive systems.
Over time though, fuelled by the growth of web technologies and the increasing commoditisation of large scale data centre grade systems, the nature of enterprise software changed. Almost overnight, large financial institutions and big industries stopped being the only ones facing the onslaught of millions of users and transactions. The world moved online, content production and consumption both skyrocketed. Transactions started to increasingly become more virtual, virtual goods exploding on the scene, advertising fuelled business models sprang up like mushrooms, all supported and enabled by information technology.
Running out of Three Letter Acronyms
Does Facebook, or Google, qualify as Enterprise? You bet, they do, obviously. Do they buy and deploy ERP, CRM, or SCM? Well, I’m not exactly sure, they might have something resembling, though they probably reinvented such notions to fit their newly created business models. Since the systems invented by such newcomers in the large enterprise space were often organically made-to-measure and in-house, not readily available to buy, analysts probably didn’t find the need to invent new acronyms. All we got was social media, ad tech and the like. The movement that these companies surfed to become behemoths in their own right, free and libre open source software (FLOSS), did give rise to an incredible variety and amount of new technology. One can argue that the floss movement helped to re-invent enterprise software, sometimes helping level the playing field by democratising distribution and market access. The ideology fuelling floss might have helped it challenge if not obsolete the erstwhile dominant enterprise software.
The New Enterprise Software
Entire new classes of business software emerged, ERP and CRMs alike are still around, but their original definitions and purposes no longer give them the edge. Some vendors were quick to ride the change, Salesforce (CRM) was built in this new world and became a world class concern. Big incumbents like SAP and Microsoft, having read the writing on the wall, started to revamp their offerings and sometimes rebuilding their large systems entirely to fit the new market reality. The new world of information age seamlessly arose and merged with the old world of hard transactions and manufacturing systems. All these changes challenged the established notion of enterprise software, actually the very notion of enterprise.
Articles like this (from 2016) “Why 40% of Today’s Fortune 500 Will Be Extinct in 10 years” abound. Information Technology companies, colloquially referred to as Big Tech, have risen tremendously with many ranking among the most valuable businesses in the world. The names that often get cited include Amazon, Microsoft, Apple, Google and Facebook, sometimes referred to as GAFAM.
Is it time to reconsider models and tools?
You would think that, with the abundance of choice, deploying and running business systems should have become easier. Well, ask any decision maker, the tyranny of choice can become extremely dangerous indeed. It’s not so straightforward to make the right choices, to understand one’s organisation’s challenges and come up with appropriate solutions. Complexity, it’s more ubiquitous than ever. Even the newfangled software systems don’t help clarify much, just read up on the literature and try to navigate, it’s messy out there.
Do people engineer complexity, does it just incidentally emerge? Enterprise Software is engineered by people, the complexity that comes with that may stem from excessive and outdated bureaucratic concepts. A mention of Enterprise Software immediately convey a sense of complexity, high acquisition and operational costs. In fact this is a given in most writings that I came across to date. Does it need to be so? Are we applying obsolete thinking to a new world full of entirely new classes of problems?
The legacy of enterprise technology is certainly marked by inherent complexity. The problem domain may be complex, but this does not necessarily mean that the solution options should be complex. Any mention of enterprise technology implicitly suggests complexity, high costs, and the lack of flexibility.
Enterprise Software is no longer what it used to be, the shape of it, its scaling dimensions and parameters, the granularity of its components, all of that have changed. Considering all that change, can we still use the same (original) yardsticks to measure things? Are we still relying on the same approaches to analysing complexity? Where does all of this leave us with Enterprise Architecture?