Why app modernization shouldn't hold back digital transformation [Q&A]

Digital transformation projects often rely on the updating or replacing of apps, but that can put a brake on the speed of progress.

Many enterprise apps rely on established systems like Java which have been around for a long time but still remain popular. We spoke to Kim Weins, VP of products at open source web development platform Vaadin, to find out more about the challenges of bringing enterprise apps up to date.

BN: What is the role and prevalence of Java in enterprise applications?

KW: Java continues to dominate as the workhorse for enterprise applications because it's easy to use and can handle heavy performance loads. Java has a huge ecosystem of frameworks, components, and tools. For the last 25 years, organizations have been building applications using Java, so the number of enterprise Java applications is enormous. Even today, Java is still one of the most popular programming languages (number three according to RedMonk and Developer Nation). With a huge ecosystem of components and tools available, I don’t see its enterprise users becoming less satisfied.

BN: What are the biggest challenges developers face when building enterprise applications?

KW: The two biggest challenges that developers face are developer productivity and user experience. Developer productivity means how quickly and easily developers can build, enhance and maintain this application. Better developer productivity leads to several important business benefits, including lower development costs and faster time to market.

User experience is a way to describe how quickly and easily the application's users can get things done in the application. A better user experience improves critical business measures, including the time and effort required to complete tasks and user satisfaction, which in turn can drive employee or customer retention.

BN: What factors should be considered when designing enterprise apps?

KW: Developers want to build apps that users love and when users love an app, it can impact your bottom line. A study by Forrester found that design-led firms have a significant business advantage, with 70 percent of design-led companies reporting having a stronger or best-in-class digital experience compared with competitors.

Today's users are digital natives accustomed to self-onboarding on intuitively designed apps and expect an excellent UX. Simplicity may reign in consumer app development, but in the enterprise, there are complex business processes and often lots of data to be presented.

Designing for enterprise apps necessitates a solid understanding of workflows and each specific user's role. For enterprise apps, you may need to build capabilities for efficient data entry, and support for collaboration. The change that needs to happen is a shift to designing apps that are user- or workflow-centric instead of feature-centric. This is how you build apps that users love.

BN: What is the role of app modernization in digital transformation and cloud migration?

KW: The first decade of cloud adoption was largely focused on greenfield applications. It started with social, gaming, and technology companies that had few legacy applications to contend with. They were able to build applications from the ground up using cloud-native principles. Traditional enterprises across industries followed in their footsteps by building new cloud applications to meet new business needs. Now organizations are moving beyond the low-hanging fruit in their cloud journey. They need to find ways to modernize existing applications to meet the expectations users have today -- and that means migrating these applications to the web and cloud.

BN: Why has app modernization been slower than other areas of digital transformation?

KW: App modernization is hard. It's a lot for developers to focus on application maintenance and I think it can feel overwhelming to turn the focus to modernization. Often developers might prefer to start over with a clean slate.

However, each business application can represent millions of lines of code that encapsulate critical business logic and workflows. Starting over is often not an option. As a result, many organizations need to find ways to leverage their existing Java backends, while providing a modern web-based interface and the ability to deploy their applications to the cloud.

While modernizing isn't easy, the business benefits can be significant. Modernizing applications can reduce the maintenance burden, improve agility by making it easier to deliver new features, and bring down costs.

In fact, a recent survey found enterprises realizing a 52 percent reduction in downtime, a 45 percent reduction in the time to market for new features, and a 12 percent post-migration cost savings after migrating their tech stack to the cloud.

BN: What should developers take into consideration when choosing between building from scratch or migrating from legacy platforms?

KW: Migrations done well require preparation. Start with a migration assessment to assess the characteristics of the application, uncover the dependencies in your application code, and help determine whether you have adequate developer resources to support the migration.

You may have strong application architecture but have heavy interdependency of modules that will make it harder to modernize. Interdependency can be fine operationally, but it can force you to commit to a big bang approach vs. a phased one. Both approaches have benefits depending on the context. One common approach that includes both types of migration methods is to first do a big bang migration that targets feature parity and has lower user impact, then follow it up with a phased modernization of the application with high user impact focused on critical most-used views.

With the rise in cloud computing, stateless applications have become more common, especially for consumer-scale applications. These approaches make it easier to scale applications up and down 'horizontally' to meet user demands by simply adding and removing virtual machines in a cloud environment. Think about the online shopping site that needs to serve more users in the evening or on weekends, or scale up to meet huge demand during holiday shopping surges. With a stateless architecture, scaling infrastructure down as user load goes down doesn't interrupt any current user shopping sessions. The user session can continue on any of the remaining VMs.

If your legacy application uses a stateful architecture, you can still deploy it to the cloud. However, if you want to scale up and down horizontally in the cloud, you will need to do some development work to enable user sessions to move between VMs when you scale down. Alternatively, you can rebuild the application with a stateless architecture.

Image Credit: isak55 / Shutterstock

Comments are closed.

© 1998-2024 BetaNews, Inc. All Rights Reserved. Privacy Policy - Cookie Policy.