Technology /

Want to build flashy apps? You need to fix your core first.

By Justin Bingham | July 25, 2017

Does this scenario sound familiar?

Your company’s legacy systems have been running for a long time. They hold a large amount of data about purchases, services, and customer behavior over the years. The systems used to run just fine and handle everything you needed from them, but lately things are starting to feel a bit … ancient.

You’re feeling the strain at the same time that your customers are beginning to expect a more modern experience. They want to be able to access their information quickly and easily and receive real-time updates and information through a variety of mechanisms such as a robust customer portal or mobile apps. Because your various systems were one-off development projects that didn’t consider future dependencies or integration, you simply aren’t built to deliver that.

As a result, you’re missing out on revenue that your current offerings can’t drive or, even worse, is getting directed towards your competitors. Developing a portal or mobile application are the best methods you’ve identified to honor customer expectations and continue to remain relevant in your market space.

The problem: The business logic that would be useful for these new app is tied up in your legacy platforms, making it very difficult to build upon data history for something new and valuable.

Take time to build the foundation

If this landscape looks familiar, it’s with good reason. It’s happening all the time at organizations of every size. With a history of built-on-the-fly applications that haven’t followed an integration-friendly roadmap along the way, they often find themselves unable to meet the modern expectations of their customers.

Exciting new initiatives are inevitably appealing and there is always a strong push to “get something out there” as quickly as possible. Unfortunately, striving to get new initiatives into the hands of the users as rapidly as possible often leads to neglect of the core backend architecture that’s needed to support expansion beyond the first release. When this happens, you’ll undoubtedly outpace your ability to scale and grow, creating even greater technical debt as a byproduct.

In order to enable those sought after next-gen experiences, it takes a lean, thoughtful, and scalable backend architecture with an extensible API that brokers access to both new and legacy information and services. Achieving this takes a bit of extra planning, talent, and effort that many organizations often aren’t ready to commit to.

The reason for the hesitation is that they often don’t have the architecture and infrastructure in place to support the sort of development they’re being asked to perform. This means they simply can’t produce the applications that their customers want. You need to be able to produce new offerings that can meet the demand just as quickly as that demand changes, but unless you have a foundation to build upon you won’t be able to achieve that goal.

Ask the hard questions

Sometimes it takes a good hard look at exactly what you have in place in order to identify what your organization is capable of. Once you know what you can do, you can compare that to what you want to do and then work to fill in the gaps.

Chief among this exploration is defining the technical architecture you need in place to meet the goals laid out by the business. While it is tempting to focus solely on the initiative directly in front of you, it is imperative to look beyond to the initiatives that will follow in the months and years ahead. No one can see the future, but a flexible, expandable, and scalable architecture pattern can help ensure that you’re in a position to support those future initiatives. You also need to take stock of all the systems, hardware, data, and personnel resources you have in place, identify the deltas between the current state and the ideal, and ensure that you factor support for them into your plans.

It is unrealistic to think that you can just flip a switch and have a brand new shiny architecture with no legacy dependencies. Devising a strategy that allows the legacy systems to participate in the new world will create the opportunity for updating or replacing them when the time is right.

While you’re planning your initiative, ask yourselves these questions:

  • What are the problems you’re trying to solve for yourself or your customers, now and in the future?
  • What are the desired business outcomes that your technology would power or enable?
  • How are you going to measure the success of your initiative?
  • What software, hardware, data, people, and other resources do you have in place now? Do they have the skills you need or should you be looking to hire or bring in outside help?
  • What is the technology architecture you will need to facilitate the outcomes you’re after? To the previous point, are you sure that you have the right people in place to answer this correctly?
  • How can you bridge the gaps between where you are now and where you need to get to?

Get to the core of the issue

As you begin to assess your organization, team, needs, and goals, you’re likely to discover that, ultimately, you need a flexible, expandable, and scalable architecture in place to provide uniform access to information across the organization. In most cases, this thinking leads to a services-based approach. For efficiency, many development initiatives run those services on a cloud-based infrastructure with modular frontend components.

To that end, here are some of the key elements that you’ll want to include:

Microservices

A microservice architecture allows for tightly focused and independently deployable application components. It has three core objectives: development agility, deployment flexibility, and precise scalability. You’ll want good services in place that make use of best practices and pragmatic implementation patterns to provide security, caching, event processing, and more.

Big Data Handling

All data is now big data. In your new systems, you’ll need to be able to deal with different types of data quickly and efficiently. New technology and new initiatives means new information that you may not be used to handling in your organization. As that data is stored and processed, often in real-time streams and hybrid data architectures, you’ll want a uniform way to interact with it that will scale as you grow and as your traffic or demand evolves.

Security

As you build your new system from the ground up, you’ll need to keep security in mind. Design a uniform security model that works across the UI, Service, and Data tiers. You should have full customization of roles and permissions to account for all of the various types of users who will be working with your applications now and in the future. This provides an effective and manageable way to administer access and ensure that the right data is available only to the right people.

Cloud Scaling

Most likely you are going to want infrastructure flexibility and scaling. A cloud infrastructure, such as Azure or AWS, is the best way to get there. A good cloud infrastructure will allow clean and elastic scaling in the future, even if your on-premise deployment is able to handle your current demand. Even more importantly, it gives you the flexibility to add and remove systems, adjust resources, and manage network configuration with lowered overhead or less delay.

Production-Minded

Design your infrastructure with a focus on centralized monitoring, auditing, and continuous release. If you have the core in mind from the very beginning, it will be easier to extend outwards at a later date. Without that core, it’s more likely you’ll end up with a siloed environment that will require even more complicated problem-solving in order to build a connection at a later date. Plan for the handling of expansion from the very beginning or pay a bigger price further down the line.

Notifications and logging

To keep your core systems running smoothly, design ways to capture and disseminate updates and alerts to those who need to see them and can help troubleshoot. If the system smartly ties notifications to workflows, you’ll prevent troubleshooting downtime and be sure that the right people are getting the right information at the right time.

Strategize from the start

Most modern systems will likely require good answers to each of these core needs in order to fulfill all of the requirements and expectations. So, be sure you map out your strategy for achieving them from the start.

By being clear from the get-go, you’ll not only save money by avoiding costly adjustments along the way, but you’ll also save the sanity of your team and development partners.

→ Need help getting your initiative off the ground? Get in touch.

[Photo by Patrick Fore on Unsplash]

RELATED CONTENT

Building a culture of innovation in a large enterprise

There’s a well-documented need to innovate in your organization in order to stay competitive. We’ve written about it and so…

Read more

Your Competitors are Innovating. Are you?

Organizations are at a crossroads.  There’s business as usual and there’s data-driven innovation that lies ahead for large enterprises. Progressive organizations…

Read more

Cover Your SaaS: Three Areas of Consideration Before Investing in Software as a Service

With the pace of today’s business environment, anything that can help us deliver more quickly or maintain less code is…

Read more