A Year of Platform Modernization: Assess Your Current State and Determine Your Approach

In case you missed it, earlier this year we kicked off A Year of Platform Modernization — a 12 part blog series covering everything you need to know to undergo a successful modernization project.

Last month you prepared your team for the task with our 6 Tips to Modernize Your Team.

This month we will take a look at your current platform and give you the tools you need to determine your modernization approach. Think of it like making the decision to move or not, you need to know what you love or hate about your current home before deciding what to do next.

Need a partner to help guide the process?

GET IN TOUCH WITH KMS
 

What Does Your Dream Application Look Like?

Before we dive into your current platform, let’s take a moment to think about the features of your desired application…your dream home, if you will.

Consider the infrastructure, user experience, and expected outcomes. A good understanding of what you hope to gain from this modernization project will help you best determine what steps you need to take to modernize.

A couple of episodes of House Hunters will show you the basic idea, but in this step, you need to:

  1. Establish your goals
  2. Prioritize those goals
  3. Establish Your Timeline
  4. Understand Budget Constraints

 

Assess Your Current State

With wishlist in hand, let’s work our way through the checklist to assess your current state. Think of this step like a homeowner’s inspection.

Keep in mind that this process should be metrics-driven. Numbers allow you to objectively understand your platform’s shortcomings and determine the success of the project once it is completed.

  • What is Your Application’s Infrastructure?
    • Is your platform currently hosted on premises, in the cloud, or hybrid? What are the challenges your platform faces because of this infrastructure?

 

  • Review the Code in Your Tech Stack
    • For this step you will want to perform a thorough code review. Look at your data layer, mid layer, and user interface (UI). Is the code language outdated or cloud compatible? Are any aspects particularly fragile? Knowing the stability of your current code will allow you to determine what, if anything, is worth keeping.

 

  • Calculate Operational Costs
    • What are the current costs to run your platform? Dive deep and think of costs involved in infrastructure, data centers, hosting servers, routine maintenance, adding new features, specialized engineers, etc. How might modernization reduce these costs?

 

  • Understand Production Experiences
    • Once again, turn to the numbers. Look at quantitative and qualitative data on platform downtime, meantime to recover, performance, platform availability, customer feedback, application security, and more. Review anything and everything that might affect application experience.

 

  • Assess Your Organizational Readiness
    • Is your organization ready to undergo a major application change?

 

Determine Your Approach

With a good understanding of your current platform, we can now strategically determine the best approach for you. For a modernization project, there are typically 4 approaches:

1. Complete Application Rewrite – Building Your Dream Home

Take your wishlist and your assessment. If your current state not even close to your desired state, a complete application rebuild might be the best option.

While this does seem like a daunting task, it actually opens up a lot of possibilities for your company. By completely refactoring the application, you can dive into and explore different features, change the organizational framework, and even leverage existing technologies, saving your team additional work.

6 kids, 2 adults, and a puppy crammed into a 2 bed, 1 bath ranch style, with a crumbling foundation? Yeah, it might be time to build something new.

2. Incremental Improvement – Remodel, One Room at a Time

If aspects of your platform work and the code is not fragile, you might consider an incremental approach.  In this approach, you take your priority list and begin to refactor your platform, layer by layer.

Say your house is outdated but functional. You might start with the rooms you use most, kitchen, bathroom, etc., and work room by room to remodel it into your perfect home.

This gives you the flexibility in your budget to take on the project more slowly and re-architect your biggest pain points first.

3. Patch and Replace – A Few Simple Repairs Should do the Trick

Let’s say your application works well for the most part, but there are one or two particularly frustrating features. For example, some simple UX updates, or refactoring some application code to make it more performant or resilient, may free up critical resources spending time on operational issues. In these cases, an entire re-architect is probably not worth the money or effort.

I mean, you would not build a new house because of a broken window, would you?

4. No Change — The House is Fine and Besides, it has Character

So why might you stick with your current platform? Well, look at the longevity of the application. If the platform will not be an essential part of your business for much longer, modernizing might not be worth the investment in time and resources.

For a couple planning to retire to the Bahamas in a few years, it does not make sense to tear down their house and build-a-new.

The reality is, while there are many benefits to modernization, it is not right for every application.

Want to know more about the benefits and challenges to platform modernization? Take a look at our whitepaper, Platform Modernization in Action.

 

Needless to say, however you decide to go about obtaining the home of your dreams, the right contractor makes all the difference. The same goes for platform modernization. KMS has the expertise and tools to help you assess your current platform, determine your approach, and guide you through the whole modernization process. Let us know how we can help!

GET IN TOUCH WITH KMS

Schedule a Free Consultation

Quickly ramp-up teams and accelerate the delivery of your new software product.