General

Software Migrations

This Dot
5 min read
Software Migrations
This article was written over 18 months ago and may contain information that is out of date. Some content may still be relevant, but please refer to official documentation for the latest information.

Welcome to the This Dot Labs podcast, today we'll be talking about Software Migrations.

As a consulting firm, we regularly field requests from companies looking to revise elements of their products. These changes often take the form of migrations, through which we might change:

  • Frontend Frameworks
  • Cloud Providers
  • Third-Party Integrations
  • Defence Platforms
  • State Management Systems

When discussing migrations, a lot of people find it hard to differentiate between migrations, refactoring, and adding new features. It's important to remember that when we refactor, a team’s developers usually understand the content already. In these instances, our goal is just trying to optimize how things work. With a migration, we not only have to move some code to a new framework, platform, etc., but the team has to be brought up-to-speed on the new concepts that are being implemented through this change prior to its implementation.

When simply introducing a new feature, a team expends effort, developers, time, or money to add new behaviors. The same goes for refactoring; we invest to get a more optimized system. Migrations require teams to invest just as much as refactors and new features, but give them the same system (essentially). Therefore, pitching migrations is difficult, because when you approach a business with a time and labor intensive plan, it is hard to convince them of the value in migrating when there will be no overtly apparent changes to the system functionality.

It raises a lot of questions around why we people migrate from one technology to another. Lately, lots of companies want to migrate to attract talent. As technologies fall out of date, it becomes harder and more expensive to find talent. Besides broadening the talent pool, migrating to new technologies also helps retain tech talent. Many developers like to feel like they're working with the latest technologies because it gives them a sense of career security. Sometimes, you see high-level architects join a team, and believe it's optimal to move to something else completely. Obviously pushing technology forward is great, but at the same time, that can financially burden their employer, and that's not always the ideal way to look at approaching the problem. Companies also migrate to keep their applications protected from security vulnerabilities.

Migrating frameworks doesn't come without it's fair share of problems. Proving that a migration offers enough value to justify the cost can be hard for developers since most times, it's impossible to measure that value. It can also be hard to keep track of new framework versions, and knowing which versions are worth migrating to can be difficult. Additionally, lots of people advocate for the use of lock files to control dependencies, rather than grabbing an entirely new set of dependencies that can instantly tank builds. However, migrations are definitely worth the costs when you consider benefits like higher talent retention, more secure applications, and technological longevity.

Most times, when carrying out migrations, the process is made much easier if there is a guide to walk developers through new versions. Many frameworks do this, and offer developers support during migrations. Angular, for example, does a great job with helping developers migrate to new versions. They have a CLI that can even update code to make sure the updates work properly. That being said, transition guides, and defined or automated processes, make it easier to update. Be it scripts, utilities, guides, or CLI, many frameworks make migrations easier.

We've talked about the arguments for and against migrations. I'm sure you're curious to know what the best way to carry out migrations is. Most people go with what we call the “Big Bang”, where the development team goes “dark” for a while, and implements the migration. Although the approach can be extremely tricky, it is the most time efficient way to do a migration. Some find it better to cut up migrations into milestones, and produce something deliverable, so that they can show their iterative progress, and can also stop working at some point in order to work on something that might be of a higher priority. Most also find it useful to have a good game plan that takes into account what pieces they're breaking up, how they are targeting them, and what they can expect to see, before they begin a migration. Something like this goes a long way towards both it being more efficient, and having better accountability to the people that are ultimately paying the bills.

Adding to that, you can introduce the concept of a Minimum Viable migration. Through this, you establish the minimum number of changes needed to do all new development in the migrated platform. This means running two different systems, and slowly porting things from one system to another.

Something worth bringing up, related to migrations, is that a lot of teams either don't have migration requirements, or the application was built bug-by-bug, or bug-fix-by-bug-fix, over a period of time. When this happens, most don't actually know where they are relative to where they started. Testing is such an integral part of all migrations. You need to know what you’re working with so you know when you've finished. When migrating the infrastructure of frameworks, it's important to have unit tests that aren't framework dependant, otherwise unit testing won’t work on the new system, which might be much more difficult for developers. It's much safer, and smarter, to rely on manual testing, end-to-end testing, integration testing, and other like processes. Sometimes such approaches might seem a bit non-traditional, but you want to make sure that you have the full suite of tests when migrating, because this is the best way to ensure that nothing has fallen through the cracks during the process.

That’s all we have on migrations today. It was great, as are all our conversations on performance and architecture. The conversation will not stop here. There's a lot more that we can cover, so you know we'll come back and have a chance to explore some of those at a later time. Till then.

About the author

This Dot

This Dot

Keep reading

View all posts →

FinTech Transformation for 2020: Tapping the Millennial and Gen Z Markets to Drive the Direction of Your Digital Transformation Journey

The era of regional and national banks securing geographic areas to ensure a healthy customer base is coming to an end. Small and growth level fintech businesses are attracting Millennial and Gen Z users who are less likely than their parents to identify a single financial institution as their primary bank, and who use a greater diversity of platforms to engage in financial transactions, deposit paychecks, and save their money. Surveys suggest that Millenials are choosing banks based on perks including low interest rates, zero fees, and the ability to access the full range of their banks services through mobile banking. Gallup polls have further shown that this group is 2.5x more likely to switch their banks than their parents are, so the pressure not only to attract new account holders, but actually retain them, has never been higher. It is difficult for historic leaders in the banking sector to ignore the meteoric growth of mobile financial platforms such as Ally, which reported a 23% YoY increase in the number of retail users in its 2019 3rd quarter report. Even applications with functionality limited to single services are seeing considerable growth. PayPal’s part payment part social media app Venmo reported a 73% YoY increase in payment volume at the end of 2019’s first quarter, and at this time last year, robo investment app Acorns reported a valuation that had tripled in just two years. So what are the reasons these new fintech platforms are so popular among Millennial and Gen Z users, and what can long established financial institutions, looking to improve their web based technologies, learn from their successes? Is it all about providing the most advanced, seamless technologies, or are these technologies simply a conduit for providing services that meet evolving user needs? Are there steps that banking enterprises can take to lay a groundwork for advanced technologies while providing the sort of features, perks, and experiences that your current and emergent customers are demanding? What Inspires Young Account Holders? Traditionally, financial institutions have relied on geographic strategy and brand identity to secure account holders from particular areas and within entire families. However, market research is proving that a bank’s relationship to a customer’s community or family is no longer driving the majority of young adult (18 34) customers’ choices. Instead, Millenial and Gen Z markets are looking for features and perks. They want high interest rate checking accounts, fewer fees, and cash back options. “Millennials struggle with the transition from savings to investing and making money work for long term goals,” say Fidelity’s Director of Young Investors, Kelly Lannan, “That difficult transition is what sets us apart from previous generations where life stages were mapped out for you.” In an interview with Next Gen Personal Finance , Lannan discusses the disconnect between Millenials and financial institutions, citing metrics reporting that, despite 60% of Millennials having investment accounts, only 10% consider themselves to be investors. And she feels that this is due, in part, to disconnects among financial institutions, their processes, and young adult users. While Millennials may not always be interested in the nuts and bolts of banking processes, they are interested in growing their wealth and securing their financial futures. Some fintech platforms have already tapped into this. Remember Acorns, the mobile based robo investor that gives users the option to invest pennies every time they make a purchase with their credit card? Their promotional material and in app experience repeatedly invoke the concept of users planting seeds now to watch “mighty oaks” grow. Robinhood, the 6 year old, $7 billion mobile stock trading app’s very title conjures images of young individualists seizing riches from the very financial institutions and big businesses that they resent. While 71% of Millennials would rather “go to the dentist than listen to what banks are saying”, these companies, which both report that their average users are 32 years old, are carving out space for themselves within the market. This is likely due to two reasons: Perks : Many emergent FinTech apps offer new users perks like free trials to premium versions of the app, small cash deposits to start their savings account, or free shares of stock. Gamified Experiences : These platforms offer features that facilitate fast, daily use. Users see their accounts’ performances displayed in attractive and interactive layouts, read news updates, reference general information about the activity of other users, and learn about investing and financial literacy. Forward thinking companies will look at this era of scrambling to compete for shares of the young adult market not only as an opportunity to expand their mobile banking services, but to more importantly look at how mobile banking can be a better tool of meeting new customer needs, as well as monitoring how those needs are changing. The Big Data Trade off In order to secure the current Millennial and Gen Z market, financial institutions need to introduce and refine digital technologies in order to create customer centric experiences. By procuring data from account holders, companies are able to better track, identify, and meet specific user needs. Research shows that Millennials are 3x more likely to share their information with preferred brands than Baby Boomers. And when we look more specifically at the parameters under which data trading occurs between companies and users, we see that 81% of the total market is willing to share passive data (location, preferred language, device used) with companies, and 75% will share active data (name, demographic information, personal preferences), in exchange for personalized experiences. Of course, fintech applications have an advantage over other platforms in the sense that users are required to provide a baseline of active information to secure their accounts and ensure their identities. However, some platforms have discovered novel ways of increasing the volume and diversity of insights that they are able to glean beyond what’s necessary to set up an account through: Cashback Incentives Discounts on 3rd Party Products Premium Functionality Of course, offering all of these monetary perks will likely increase a financial institution’s cost of maintaining its users’ accounts. And with the average bank already shouldering a $250 $400 annual cost of maintaining a checking account, it is imperative that financial institutions are able to best leverage insights that they will receive through data exchanged for cash and asset incentives. Making The Most Of Your Investment In 2019, corporate banking giant JP Morgan allotted a $11.4 billion budget to developing their technology program, with Bank of America, Wells Fargo, and Citigroup trailing not far behind. However, mid size and emergent fintech companies do not need to look at these numbers as goal posts, or mold their technical programs to resemble those of some of the largest financial institutions. In this age of rapid advanced integration, it is no surprise that fintech companies are eager to introduce tools that are more flashy, boast higher metrics, and reflect the most advanced technologies currently available to the market. However, an overwhelming majority of companies will most benefit from first understanding real time customer behavior, and having well organized, performant systems to represent and utilize customer data. The journey to advanced digital transformation is one of small steps, not overwhelming leaps. Fintech companies need to look at transformation as a holistic process. This process includes identifying unique customer needs, introducing novel features to both meet those needs and procure data, and then developing systems that best prime that data for application towards advanced analytics technologies as those technologies become necessary to their services or operations. At This Dot Labs, we understand the important intersection between strategic business development and industry leading technologies. Our trusted web development and creative brand consulting services have been leveraged by some of the world’s leading financial enterprises, including ING, American Express, Bank of Mexico, and Veterans United, in order to improve existing technologies, and pave the way for future digital achievement. Advanced analytics technologies will be the strongest tools for fintech companies as we enter the new decade. However, these technologies are wholly dependent on the quality and relevance of the foundations from which they’re built. Let us help you understand where your technology and data assets fall along the spectrum of advanced integration, and set you up for technological success, no matter what that might mean for your company now, and in the future. If you are ready to take that first step with us, or simply want to learn more about how This Dot Labs can help your project gain new energy and direction, contact us at hi@thisdot.co....

This Dot7 mins
Digital Transformation

This Dot AI Field Notes - Anatomy of a Coding Harness

A coding agent is not magic, it’s a loop. We call this a harness. The harness is a deterministic layer of code that wraps an LLM....

1 min
AI

AI Is Speeding Up Development. But Where Are the New Bottlenecks?

AI is accelerating development, but it’s also exposing everything else that’s broken. At the Leadership Exchange, leaders unpacked how AI is reshaping the SDLC and what organizations need to address beyond just coding to make adoption successful. Moderated by Rob Ocel, VP of Innovation at This Dot Labs, the panel featured Itai Gerchikov at Anthropic and Harald Kirschner, Principal Product Manager for GitHub Copilot & VS Code at Microsoft. Panelists explored the current state of AI adoption across the software development lifecycle and shared practical insights into how organizations can effectively integrate AI tools. Panelists discussed how companies are investing in AI tools, skills, and managed competency programs to support developers. While AI can dramatically accelerate coding, the panel emphasized that adoption affects every stage of the SDLC. Bottlenecks now appear in testing, DevOps, product delivery, and marketing as AI speeds up development. Organizations that address technical debt and process inefficiencies are better positioned to extract maximum value from AI tools. The conversation also focused on opportunities and risks. Security, governance, and workforce education were highlighted as critical factors for adoption. Panelists stressed that AI initiatives should be aligned with broader business goals rather than pursued in isolation. They noted that companies experimenting at the cutting edge need to consider organizational readiness just as carefully as technical capabilities. Panelists also explored how leading organizations are navigating the early stages of adoption. Those ahead of the curve are using structured experimentation, prioritizing process improvements, and continuously evaluating outcomes to refine their AI strategies. Learning from these early adopters allows other organizations to anticipate emerging trends and prepare for the next phase of AI adoption rather than simply replicating past approaches. Key Takeaways Investing in AI skills and tools should be done thoughtfully, with clear alignment to business objectives. Examining the full SDLC helps identify bottlenecks that AI may accelerate or expose. Organizations can gain a competitive advantage by learning from early adopters and planning for where AI adoption is heading. AI adoption is not just a technical initiative; it is a strategic transformation that requires attention to people, process, and technology. Organizations that balance innovation with operational discipline will be best positioned to capture the full potential of AI across the software lifecycle. Seeing similar challenges in your own SDLC? Let’s compare notes. Join us at an upcoming Leadership Exchange or reach out to continue the conversation. Tracy can be reached at tlee@thisdot.co....

Calypso Hernandez2 mins
AI AdoptionAILeadership ExchangeEngineering Leadership

Making AI Deliver: From Pilots to Measurable Business Impact

A lot of organizations have experimented with AI, but far fewer are seeing real business results. At the Leadership Exchange, this panel focused on what it actually takes to move beyond experimentation and turn AI into measurable ROI. Over the past few years, many organizations have experimented with AI, but the challenge today is translating experimentation into measurable business value. Moderated by Tracy Lee, CEO at This Dot Labs, panelists featured Dorren Schmitt, Vice President IT Strategy & Innovation at Allen Media Group, Greg Geodakyan, CTO at Client Command, and Elliott Fouts, CAIO & CTO at This Dot Labs. Panelists discussed how companies are moving from early AI experiments to initiatives that deliver real results. They began by examining how experimentation has evolved over the past year. While many organizations did not fully utilize AI experimentation budgets in 2025, 2026 is showing a shift toward more intentional investment. Structured budgets and clearly defined frameworks are enabling companies to explore AI strategically and identify initiatives with high potential impact. The conversation then turned to alignment and ROI. Panelists highlighted the importance of connecting AI projects to corporate strategy and leadership priorities. Ensuring that AI initiatives translate into operational efficiency, productivity gains, and measurable business impact is essential. Companies that successfully align AI efforts with organizational goals are better equipped to demonstrate tangible outcomes from their investments. Moving from pilots and proofs of concept to production was another major focus. Governance, prioritization, and workflow integration were cited as essential for scaling AI initiatives. One panelist shared that out of nine proofs of concept, eight successfully launched, resulting in improvements in quality and operational efficiency. Panelists also explored the future of AI within organizations, including the potential for agentic workflows and reduced human in the loop processes. New capabilities are emerging that extend beyond coding tasks, reshaping how teams collaborate and how work is structured across departments. Key Takeaways Structured experimentation and defined budgets allow organizations to explore AI strategically and safely. Alignment with business priorities is essential for translating AI capabilities into measurable outcomes. Governance and workflow integration are critical to moving AI initiatives from pilot stages to production deployment. Successfully leveraging AI requires a balance between experimentation, strategic alignment, and operational discipline. Organizations that approach AI as a structured, measurable initiative can capture meaningful results and unlock new opportunities for innovation. Curious how your organization can move from AI experimentation to real impact? Let’s talk. Reach out to continue the conversation or join us at an upcoming Leadership Exchange. Tracy can be reached at tlee@thisdot.co....

Calypso Hernandez2 mins
AI AdoptionAILeadership ExchangeEngineering Leadership