The uncertainty of code migrations

by Oscar Poveda, on May 5, 2024 12:30:00 AM

Confessions from a newly minted migration engineer

Have you noticed that as we grow in our careers the tasks that we deal with tend to become more challenging and complex? And sometimes, the complexity is not precisely about solving the actual problem but planning and making assumptions with very little information and time. In other words, your new best friend is “uncertainty” and getting along with it is not easy. Part of its nature is making you believe that you got everything under control but it may collapse at any time. So be careful. It is tricky but not unmanageable … Just pay attention to details.

Migration Tools are Good But Not Enough

Code migrations take place because we want to preserve the effort put in the business rules. The business rules were captured in code, which is our raw material to work with. So at this point, we can tell that the problem we are trying to solve here is to preserve the business rules no matter where they are captured (old code vs new code). But that problem is already solved. We've got the best tools to do that, so do we really have a problem to solve? Yes, we definitely do and it's how to predict how the migration process will behave when running our tools. So here is where our dear friend uncertainty says “I'm back”.

8otavj

Hello Uncertainty My Old Friend

Every project is different, there are no two alike. And much of that uniqueness is the environment where it resides and the tools that it uses and how the application is used by people. Here comes the first lesson: Get to know the context of the application. To better explain this point I’ll share an example from the medicine field. Before any surgery takes place (big or small), patients need to go through different tests in order to plan the surgery. Doctors need to know how resistant the patient is from anesthesia, they need to know if they suffer from other sickness and so on. And this is eliminating uncertainty - the less surprises we get in the migration process the better for the customers and us.

The Users are the Key

Also, don’t forget that we must understand the expectations set by the users when using the application. Do they expect an immediate response from every transaction? Or are there some batch operations running in the background? Are the components of the UI set in such a way that any change on them will impact the user’s experience and performance? Are there shortcuts, right-click menu items that ease the user's experience? So even though it’s obvious, day to day user’s experience with the application is extremely important to consider when running migrations. It determines how much the company is expecting a "like for like" migrated application. Hitting that target is what takes the most time in a migration - and those are generally the most time-consuming tasks in the migration process.

Knowledge is Power (and Avoids Costly Mistakes)

So yes, we’ve got the best tools to migrate code and we’ve got experts in all of them.  Nobody said that eliminating uncertainty is a standalone task. It's key to share the code with our experts to get input on what to consider during the migration process. And setting aside time to migrate a sample of the code (could be a Proof of Concept (POC)) is a very wise move and helps remove uncertainty. It will definitely offer valuable insights to consider when planning the whole migration.

It's Going to be Alright!

Running migrations is not easy-peasy at all. Blame that on our friend uncertainty but with the lessons learned from above plus trying new strategies we can drive this process to be successful.

Oscar Poveda is a seasoned software engineer who's beloved by every customer who meets him. He's new to the code migration business so he gets to enjoy the experience of being a newbie (for a few months, at least).

Topics:application migrationmigrationcode migration

Comments

Subscribe to Mobilize.Net Blog

More...

More...
FREE CODE ASSESSMENT TOOL