With new technology evolving everyday, the old technologies are becoming obsolete. It has become necessary for every company out there to stay updated to survive in today’s market. Any company that provides various services and platforms to its users must be ready to cope-up with the daily upgrading technologies. At such times, migration comes into the picture. A company can always migrate to a new and better platform. Now, one might think that what is migration? The answer is short and a bit complex at the same time. Migration is a very simple term for the non-tech muggles out there which means migrating from one place to another. But when it comes to tech wizards like us, it has a slightly different meaning. So, let’s take the first step and understand migration in technical terms. Migration means moving from current platform to another platform. In most of the cases, migration takes place to a better platform because it provides a better working environment and user experience. Sometimes, the security concerns may also lead to migration. There are many types of migration and here are some of the most talked migration topics you might want to know about:
- Technology Migration
- Front End Technology Migration
- Backend Technology Migration
- CMS built website Migration
- Database Migration
- Domain & Hosting Server Migration
Migration in technical terms is a much wider topic than you can ever imagine. It is a bit difficult to cover all the migration topics and its types into a single blog. Hence, this topic is divided into different parts, explaining the importance of migration along with its types. You can read them in the upcoming blogs.
Migration is a crucial task and if questions like when to migrate, how to migrate, defining the scope of migration, etc. bothers you, then you might want to continue reading this blog to clear your mind.
Why is there a need for Migration?
- When your current technology on which you worked for so long, is no longer able to meet the expectations of your business requirements.
- When the technology gets outdated and vendor support is also not available for the outdated version.
- When your customers are important to you and you need to be at the top of your field.
- When you don’t want the huge licencing cost of the current stack anymore by shifting to an open source platform.
At that time, Migration will be your best option. Migration is a complex process and it takes lots of planning.
The first step towards the process of migration is that you need to set some definition and ground rules which can carry out the migration process smoothly. Depending on the project’s requirement:
- First, you need to analyze the current state of your project or application that needs to be migrated.
- You will prepare a roadmap of calculated risks and possible solutions that may occur during the migration.
- You need to select a proper technology that fulfills all the requirements of the project.
- Next, you will need a proper plan to execute the migration process
- At last, when the migration process is completed check whether the application is functioning as expected on the new platform or not.
There are few points you need to keep in mind before moving forward with the planning phase of migration.
- Decide a project budget and timeline before the planning phase of migration depending on the business problem.
- Decide a working model like set hourly charges or weekly charges for any new client who wants to migrate from any existing system to the new one. There are several grey areas which we will discuss in the future blog series and they can only be encountered when a new development team starts their work. Migration cannot be treated with a fixed estimate job for any new team.
- If the client is a nontechnical person, then it’s always recommended that you have a contract signed off stating the scope of migration before the planning phase of migration or the client can also hire a contractual project manager in place that can liaise with the development team.
Define the Scope of Migration
For any developers team working on the migration project who are unaware of the current system, the client should spend time with the new team inorder to make sure that the team understands the flow of the system. The new team must take sufficient time to analyze the existing system and to come up with a migration plan. Meanwhile, the client can always raise what are the business problems that he is facing with the current system.
To define the scope of a project, the client must share a detailed project requirement to successfully complete the migration. The developers and the client must be on the same page with the migration plan and there must be a proper discussion on all the aspects of migration to safeguard the from all the future problems.
Sometimes, it may happen that the development team does not create detailed documentation of the business logic mapped in backend technology. If the migration is done by the same team, then it will not create any major problem, but when the migration is done by a new team, the documentation is really important. So it is highly recommended to have a detailed documentation of business logic.
Make sure to clearly state in your scope document that any kind of work outside of the original scope will be considered as extra work and it will be subjected to premium charge including the original budget. This will help you prevent possible Scope Creeps that may occur in future.
How to cater to the Scope Creeps?
Before we understand the handling of Scope Creeps, let me tell you about the term Scope Creep and how it affects the developing team. Scope Creep is the result of changing technical requirements that are being introduced in the project without the extension in timeline or increment in project budget.
There are many reasons that result in Scope Creeps and some of the very common reasons are listed below for you to avoid these creeps in your project migration.
- Misunderstanding the project requirements is one of the most common reasons behind scope creep that creates trouble for the developers in later phases of migration.
- Avoid the traps, such as frequent feedback from the end user. No point entertaining all feedback points. But it is not like you don’t take feedback at all. Only select the most repetitive and show-stopper ones.
- Agreeing to all change requests may help in building the positive relationship at first but it will end up in the client’s dissatisfaction on the project. So before agreeing to a feedback or change request, just make sure the priority and urgency of the same and inform the end client about the impact on the efforts.
- There are countless other factors that impact the project scope which is not under your control like new features added to the existing technology, economical changes in market, personal emergencies, etc. so it is better to prepare for these possibilities.
Now that you have understood the term Scope Creep and know the possible causes that ends up, one thing is clear that preventive plan is the best possible way to avoid any creeps in the scope of your migration project. Regardless of all the planning you have made, there is no possible way where you can accurately assume every future request for feature change in your project requirement. At times like this, the documentation for scope of migration can rescue you.
Selection of technology stack
As a developer, there are many options present in front of you like MongoDB to MySQL, AngularJS to React, MEAN stack to LAMP stack and cloud hosting servers like Amazon AWS to self hosting servers like Apache. These options can confuse anyone. So it is the developer’s responsibility to select a planned technology stack for migration. You need to be prepared for every future need also.
In case, if you want to select the migration platform and do not understand the requirements for new platform clearly, then there is an option where you can hire a Solution Architect who has experience and has worked in complex systems. Ideally, it would be a 3rd party consulting so either client can hire the Solution Architect on his own or can pay to the developing company. This should be negotiated and agreed upon task that should be done before planning the phase of migration.
You need to be sure that the new platform’s features are tried and tested. Definitely, you don’t want to be the first one to know about the drawbacks and pitfalls of the new platform. You need to make sure that all the data is securely preserved and other features do not require much modification after migration to a new platform. Migration is a complex process but if done correctly, it can give a new start to the old, out-dated technology.
Make sure that you check whether the current system has DevOps in place or not. DevOps helps to shorten the system development life cycle and provides continuous delivery. If the current system is already using these tools, then you can go for the upgraded version or can continue with the same. It is always recommended to use some sort of CI/CD tools as it makes the migration process a bit easy and systematic for developers. Also, the development team should follow a strict code review and code push approach, for eg. GitFlow model or GitHubFlow.
After you have the project’s requirements, the scope of migration and technology stack, you can easily select a better replacement for your platform. There are different types of migration and before moving forward with it, let me make one thing clear that not every migration is the same and each of the migrations requires proper planning and execution. Migration and its types are much wider topics so there are 3 different parts in continuation with this blog where you can get the detailed information about each of the migration. In the upcoming blog, we are going to talk about Technology Migration with its types. So, stay tuned!