What makes an app an “enterprise” app?

MariaDB Corporation

Now, in 2019, everyone knows what an “app” is. Thanks in large part to the arrival of sophisticated smartphones and tablets over the past decade, even your grandparents probably know which apps they love the most and which ones they find difficult to use. But, despite the functionality, just about everyone knows what an “app” is.

So, given this criterion and the ubiquity of applications around us, how many of us know what an enterprise application is?

No angry birds

First, let’s address the obvious, which is that a business app is clearly an app that you can use at work, in a business, obviously. It’s not Angry Birds, Candy Crush Saga or Pokémon Go.

Second, let’s appreciate that there are non-business apps that have evolved and evolved into some form of enterprise use (such as Twitter or Facebook), where a business use case of the app’s primary function has evolved.

Third, let’s also remember that many casual users will use corporate applications (such as Microsoft Word, Excel, and perhaps Skype or various Adobe tools) for personal purposes.

We’re not talking about any of these basic formats, iterations, or instances of software usage; we’re talking about hardcore enterprise apps built for mission-critical use cases with a different kind of precision engineering.

These are, if you will, enterprise-grade business apps.

What makes the enterprise level?

If we look at what kinds of basic functionality, engineering, and features make an app a professional-grade app, we might be able to begin to understand why the tech industry tries to justify charging for certain kinds of software. .

A key pointer is open source. Most of the open source applications and data services you’ll read about come in a) a community edition and b) an enterprise edition. The community version will very often be free for non-commercial use, and its core libraries, dependencies, and codebase will often be mostly dynamic and updatable. Any enterprise edition of the same software will offer locked (i.e. non-dynamic) code and will cost money, with that fee covering maintenance, service, and support.

But the fundamental rationale and rationale for enterprise-grade software goes beyond whether or not you get support and updates; there is a difference in the internal engineering.

Deeper Differentiators

An enterprise application can provide a much deeper level of architectural consideration between development and operationalization (a state called ‘production’ in software developer language). In other words, it will be built for speed, built for scale, and built for all the down and dirty data streams it will have to endure in its post-operationalized state.

Additionally, an enterprise application can offer a much deeper and finer level of auditing. This will ensure that the data we (the company) feed into it can be more accurately verified for business reporting which may relate to profit and loss, or may also extend to compliance regulations etc.

Additionally, an enterprise application will often offer higher levels of reliability, more extensive end-to-end encryption, and will likely have undergone rigorous quality assurance and testing for improved stability. It will also often be pre-configured to meet the requirements of secure production environments.

“We find that our enterprise customers have very different needs than the average user in the community,” said Max Mether, vice president of server product management, MariaDB Corporation. “These customers are working on a completely different scale with a strong focus on stability and security. In order to be able to meet these requirements, it is clear that we need to focus on a different solution by creating another version of [our software] specifically focused on enterprise production workloads.”

Platform.sh CEO Fred Plais agrees that enterprise software development should be predictable, reliable, verifiable and repeatable. It also suggests that we may not think much of the occasional consumer software glitches, but enterprise software – especially e-commerce – needs to work every time. His company specializes in managing the testing and deployment of customer applications on cloud infrastructure.

“A continuous and automatic overview of the development process at all levels of the software stack, from infrastructure to code, is essential. The pole star for enterprise development – constant deployment without human intervention (and potential human error) allows for smaller increments and therefore less risk. Increasingly, automation helps mitigate risk while implementing major changes with confidence, even on a Friday night,” Plais said.

Largely agreeing with Plais, Wael Elrifai, VP of Solutions Engineering at Hitachi Vantara. Elrifai says what it means to be enterprise-grade has certainly changed over the past few years – just think about source code availability.

“In the [absolute] early days of enterprise computing, all software was effectively open source. Shortly after, there was a trend towards 100% ownership…and we saw the pendulum partially swing back with the GNU Manifesto of the 1980s and with the work of Linus Torvald to create Linux in the early 1990s. Even today, companies like Hortonworks (now Cloudera) would categorize the enterprise level as a matter of sun tracking support and open source components amenable to full customization. I would also expect enterprise software to have robust system documentation as well as a regularly updated roadmap or vision,” said Elrifai.

The chief marketing officer of infrastructure, integration and analytics software company Tibco is Thomas Been. Arguing that eEnterprise applications must not only live up to their mission statement, Been reminds us that they must also demonstrate the robustness, scalability and agility that enterprises require.

“What really makes a business app [and gives it enterprise-grade status] it’s when software gives companies enough confidence to run the most critical parts of their business with it. While this definition could have been given as it is 20 years ago, digital transformation is now taking the meaning of these words into uncharted territories. The most critical parts of a business cover customer experience, operations and digital services. Robustness requires addressing a much larger audience instantly, while scalability requires addressing all relevant internal users with the right capabilities, such as relevant analytics,” said Been of Tibco .

Been also points out that agility is key for an enterprise application; he explains that enterprise software must be able to easily connect to the rest of the company, its customers and its ecosystems.

Architectural responsibilities

So yes, you can use enterprise software at home…and yes, you can even safely use consumer software at work (under approved circumstances), but for building business-critical software, there are a number of architectural responsibilities that must be assumed before you can run with them.

No one seems to have found a commercial application use case for Angry Birds, Candy Crush Saga or Pokémon Go yet, so far no enterprise edition is needed…and please don’t not necessarily trying to find one.