In this blog, I’ll discuss a key insight recently gained on how app modernization projects (including a SQL to NoSQL migration) can be done using AI with ~30% or more savings in time and cost.
TLDR; Make your AI agent a developer on your team, not just a developer’s assistant. Just as developers need good inputs, so does your AI agent.
Let’s explore.
Legacy applications face several challenges:
- Difficult to update (innovate)
- Poor personalization
- Inability to use analytics to improve processes
- Poor security and performance
- Subpar UX
- Use of unsupported libraries or packages
- etc.
So, there comes a time when one must simply bite the bullet and modernize the application(s).
But almost 79% of app modernization projects either fail or significantly exceed their schedule and budget.
I personally have been at the receiving end of several of these over the years. Needless to say, it causes a lot of headache across the organization.
So what goes wrong?
Modernizations Become Rebuilds.
The key drivers to modernize an application – or a set of applications – are generally related to cost of innovation.
So the key considerations that go into app modernization are also oriented around those.
First, before we jump in and start breaking up an application, we step back and think about:
- What is our pain?
- What functionalities do we really need?
- How does UX change?
- What kind of analytics are needed?
- Which systems would we integrate with to meet our goals better?
- How does CX affect key goals for the better – customer activation, good behaviors, loyalty etc.
In addition, we also need to finalize the migration methodologies very quickly, e.g. architecture assessments, build vs buy, 3rd party product integrations, strangler or modular approach, code refactoring, microservices catalog, database migrations and storage, analytics strategy, DevOps, and so on.
By the time we are done thinking about these, we are typically off to the races with:
- A full fledged software project
- But with the expectations that this is a modernization or refactor!
So how to reduce modernization efforts and time.
How Can AI Save ~30% of the Effort & Time?
The adoption of generative AI has significantly changed the dynamics of not just content generation but also software development.
Notwithstanding the problems of hallucination, given the right prompts, models such as OpenAI’s GPT have the capability to generate highly accurate and scalable software on multiple technology stacks.
The trick is not in using co-pilot to complete function snippets or individual components, but by designing the right holistic prompts so the AI can work as a versatile developer to write substantial chunks of a full stack application on its own.
Treat the AI as a developer who needs the right inputs to do a good job.
The reason that works is because modern genAI applications can use RAG (retrieval augmented generation) & have larger context windows. So we have a lot of flexibility in the inputs we can provide to it.
Case study 1 – Modernize a SaaS Application Stack
A SaaS application with live customers interacting daily with it was in need of an upgrade. It was built on older .NET technology and had a monolithic architecture – no APIs, front end and back end bundled together, and so on. It worked well but was a pain to quickly launch new features that customers were demanding. The UX was pretty old too.
It was a medium complexity app, so the cost of app modernization (baseline functionality) was a team of 3 working for about 20 weeks to design and develop the new software as per the new UX and modern architecture. There would be Agile delivery every 2 weeks. The target tech was ReactJs for the front end, and .Net Core C# APIs in the backend. The database would not change (SQL on Azure, and AWS S3 for other objects).
Given the AI hype, the team tried a different AI enabled approach. The requirements were defined and the HL design and architecture was completed in the traditional way. It took about 5 weeks (AI assisted of course). These output included the new screens and visual mockups, the overall target architecture, list of ReactJs components, an API catalog, expected database table changes, and required changes to make a more flexible 3rd party integration architecture.
Then, and only then, a front end developer and a senior back end developer worked with open AI’s ChatGPT (yes, the good old browser based chat) to generate and integrate the entire code in 6 weeks! This includes the front end ReactJs, the C# API layer, and also the database scripts to migrate the data to the changes in schema. Agile delivery was maintained at a weekly frequency (new features came up every week).
So the time taken to bring up the application was reduced by ~30%, and the cost were significantly lower too The quality of the code was very high as expected.
Of course, the most important thing was providing the right prompts to ChatGPT, i.e. the HL design.
Case study 2 – SQL to NoSQL Migration
This is not a fully live production case study but pretty close. We had a Python application running on MySQL. Before going live, it was desired to migrate the application to NoSQL (MongoDB).
While utilities existed to migrate the MySQL schema to a MongoDB schema, the migration of the application itself was another matter. The estimated effort was a team of 4 working for about 12 weeks to carefully review and migrate the application, generate the missing test cases (of course!) , and validate the application.
So, there was significant time and effort involved.
Once again, we used a combination of automation and AI to accomplish this task.
The platform we used was Coderbotics which uses a combination of automation & generative AI.
As a result, we completed 70% of the migration in 1 week! We had to follow this up by manual developer assisted upgrades for another 3 weeks. Finally QA validation took another 2 weeks.
So we reduced the elapsed time by ~40% and the cost was reduced by ~50% as well.
Once again, the magic was in developing the right AI prompts, which were done by an automated utility in about 8 hours! This was a “like to like” migration of course. Typically, you should do that before you upgrade, and this approach made everything much easier.
Conclusion
To reduce the costs of app modernization by ~30% or more, and to improve success rates, we need to think of generative AI as a good developer that will need the right inputs. Don’t just think of it as an assistant that can generate functions and snippets.
In both cases, we were able to reduce both cost and time significantly by providing the right upfront inputs.
- In case of the SaaS app, we worked with the big picture as input to the AI so we didn’t have to spend a lot of time integrating things.
- In the case of SQL to NoSQL migration, Coderbotics was able to parse the existing code and then work with gen AI to reduce hallucinations.
Results will vary of course.
Who benefits from this?
- Software development service providers who can deliver projects much faster
- End user clients who have applications to modernize or migrate
If you’d like to explore if this will work for you and design an approach please get in touch.