Empathy as a driver to application modernization
It seems everyone is talking these days about application modernization, microservices, and cloud native applications. In all my client interactions I have not found a single client who stated they were able to retire their entire legacy application portfolio and replace them quickly with cloud native application or modernized versions in a very short period of time.
That raises the question how does one prioritize which legacy applications to modernize first and what are the expected key outcomes. Is it increased revenue, decreased cost, increased customer satisfaction and loyalty, or maybe an increased competitive edge over the competition?
I know recently I thought about challenging flying conditions with airline delays and cancellations based on the weather issues. I think back what it was like not long ago and the customer experience which occurred. Dozens to hundreds of people queuing up to one or may two gate agents trying to understand what options each passenger had with long wait times and a good chance of missing some, if not all, of the alternate choices to get you where you are going. If one creates an empathy map of an airline passenger including what they are thinking, saying, doing and feeling it is clear that the rebooking applications needed to be modernized and delivered in an alternative way to avoid those long waits.
A recent freak snow storm was causing disruptions across the country and as I headed to the airport for my flight I received that dreaded your flight has been delayed and you will miss your connection message. Prior to the airline modernization I would have had to queue up behind dozens of people, but now with mobile applications which have been modernized enabling self service I was immediately presented with a few alternatives and allowed to pick the best one for me to get where I was needing to go. It is likely there is a cloud based application behind the mobile application I was using based on microservices and modern 12 factor programming techniques, but the point I want to focus on is how does one prioritize which applications to modernize first. It comes from design thinking techniques, understanding who you are trying to create a better experience for, and ensuring there is a stakeholder user that the application developer and product owners are collaborating with and showing them with early playbacks leading up to an MVPs through a full rollout to ensure it is addressing the user wants and needs.
My advice is don't set off with the idea of modernizing every legacy application all at once, as it is not realistic, and it likely it will not achieve your true business goals. Some applications should simply be retired, others might just need a different way of accessing them like a Backend for a Frontend (BFF) via a mobile application, and others might be a very quick modernization but one does not know without an assessment.
Every journey to cloud and application modernization needs to start with an assess phase and understanding of the business outcomes which are desired. That is followed by the creation of a set of user stories on what one is trying to accomplish and how it aligns to the business outcomes before one starts rewriting code or it will miss the mark. While DevOps, microservices, and agile allow one to fail fast, and those techniques allow for trying alternative approaches quickly, one really needs to define the hills and user stories which deserve to get placed into a groomed backlog of work to be the most effective.
Always put yourself in the customer's shoes and understand how to create a better user experience for them with your business, and you will surely be focusing on the right things for your business as well.