Simplify Your Organization's App Sprawl with an Enterprise Micro-Application Architecture
Friday, May 3, 2019
Posted by: Kaylin Berg
Dan Wilson, Senior Product Marketing Manager for Mobility Technology, Progress
Enterprise micro-application architecture just makes sense from a software development perspective. See how it can help improve your company organization and reduce app sprawl.
We’ve all got that one drawer in the kitchen that contains all the bits and bobs with no other place to go but are too important to throw away. If you are like me, and you need something, it’s often just too hard to find in that drawer. That’s how I end up with a bunch of random bolts and clips.
As organizations, we spend a lot of time and money building applications that are important. Over time, those applications grow in complexity. What results is a landscape of custom apps each helping an employee do part of their job. These apps are usually designed around a business concept, not the needs of a user, with a jumble of permission levels to divide up who can do what. Rarely are these permissions rationalized across apps. Neither are UI structure, navigation nor user patterns. It’s an app free-for-all with no standardization. Most users need only a fraction of the application’s functionality but must navigate an outsized learning curve to get to it.Most users need only a fraction of the application’s functionality but must navigate an outsized learning curve to get to it.
Don’t Repeat Yourself
This architecture makes sense from a software development concept. After all, we are told time and time again, “Don’t Repeat Yourself (DRY).” By keeping all the logic around a certain business concept in the same app, we avoid functional drift and inconsistency.
Yet, as we optimize for software architecture, we impair both human usability and productivity. Our poor users must learn and manage several different apps to get through their day. Worse, once you add up the apps foisted upon employees from support organizations like Human Resources or IT, you have a sprawling landscape of many different apps with many different user interfaces.
Pro Tip: Often you can tell the age of an app by which design philosophy was popular at the time.
Employee user experience is important. Employees who can’t or won’t use an enterprise app to accomplish a business goal often find more expensive ways of accomplishing their goal. Rather than file their expense report, perhaps they email a finance person a collection of receipts. Rather than enter a trouble ticket, perhaps they send emails to a support group, creating an out-of-band workstream to manage.
It’s also important to reduce costs inside of an organization. Our internal complexity increases as we increase the mound of apps IT must support and maintain. Apps continue to accumulate as digital clutter. Isn’t it funny how almost nothing ever comes OFF the pile? Often the business partners telling us we need to be more agile are the same ones adding more apps to the IT support pile.
How IT Departments Can Manage Workload
Let’s imagine a scenario where all of an organization’s apps perform some currently important function. How can an IT department manage their workload effectively? One option is to reduce user interface testing, support, and maintenance.How can an IT department manage their workload effectively? One option is to reduce user interface testing, support, and maintenance.
What?! You may be screaming into your screen, How can less testing/support be a good idea?! Let’s examine this by conceptually dividing each app into a backend layer and a frontend layer. Maintenance and support of the backend layer is straightforward as backend code is usually in a consistent form and almost never has platform inconsistencies. There exist many testing frameworks to create and automate backend quality assurance.
The frontend layer is much harder to test because of platform inconsistencies like screen resolution, rendering version, orientation, form factor, and other conditions. User interfaces tend to get new functionality bolted on over time in a non-encapsulated manner, complicating testing. Plus, frontend code gets dated very quickly as features fall out of use or the user interface patterns age. Remember that users typically only actively need a fraction of the app today—in which case, why must we maintain a complex architecture of numerous other windows, menus and features?
On the administration side, as the company scales and the application grows in functionality, it is burdensome to continually adjust the roles and permissions of specific apps. This is especially true when an enterprise organization has many apps written to many different standards. There is almost no economy of scale. Making an authentication change across all apps would be a large complex task requiring many teams to work in a coordinated fashion, just so you can release new versions of each individual app at the same moment.
How Enterprise Micro-Application Architecture Helps Organizational Agility
A solution to the dilemma is to streamline the user interface by creating microapps. Microapps provide a user-focused, consolidated view of an app portfolio in which the user has the apps and functionality they need, avoiding the 90% of app functionality they don’t. In a microapp architecture, the user interacts with application functionality running inside of an application container. The user can receive notifications, respond to messages, and handle workflow steps as needed.
You may find it is possible to convert the entire frontend of an application to a series of microapps. Doing so means you will avoid future maintenance on the frontend code. This is excellent for cases where the user interface has not aged well, there has been much feature-spread, or maintenance expenses and risk have grown to unacceptable levels.
You’ve Already Used Microapps
You’ve already interacted with microapps and just may not have been aware of it. Microapps are a common pattern used on your smartphone and on the web. Google Cards, Google flights, WeChat, and others have been delivering slices of functionality using the interface you are already in.
The Many Benefits of Microapps
With microapps, IT departments can become more agile as they get rid of a myriad of interfaces using different design elements, frameworks, and user patterns. Further, deploying changes with microapps is easier since the changes are delivered as instant updates through the microapp container.
Properly implementing microapps is a great way to reduce application support costs. Standardizing the application interface with a microapp enables more confident and efficient users. Users become less confused by application choices and user interface variations. IT departments will see a reduction in password, authentication, and capacity support tickets. Security and compliance are straightforward because the security mechanisms are consolidated into the microapp architecture, not spread across many apps and custom implementations. Microapps reduce the time it takes to audit compliance and security.
If IT departments can sensibly cut down on existing support and maintenance, they will be more successful at embracing transformational agility. Microapp architectures offer one way to clean up application sprawl, deliver more optimized experiences, and reduce support and maintenance costs.
Interested in learning more about how it could help you? Find out more about microapps today.
This post originally appeared on the Progress blog, here.