Strategies to Consider for Your Code Migration Project

Are you planning to start your code migration project. Have you been looking forward to accelerate your code migration project while ensuring that the quality is not compromised? Following are some of the strategies that you may want to consider for your code migration project:

  • Development Methodology: As code migration requires greater team collaboration and frequent testable releases, it may be advisable to adopt agile development methodology such as SCRUM. With agile development methodology, the features to be migrated could be put in the backlogs and the migration is done based on this backlog. Agile development method ensures that you have complete visibility at all times on what is done and what is remaining to be done, thereby planning appopriately. One could plan the entire migration project in 3-4 releases spread across multiple sprints. The development methodology like Waterfall may not be very effective given the Agile models.
  • Parallel Development: One may want to make more than one development team working on independent discreet modules which has clear boundaries and lesser dependencies. Once development is done, one could have effort put on integrating these modules. If you adopt agile methodology such as SCRUM, it becomes much easier to have different SCRUM teams working different features in different sprints and have a couple of sprints for integration.
  • Unit Testing Automation: If possible, one may want to have developers write as much as unit tests (JUnit, NUnit & other XUnit frameworks etc) and have the unit tests execution configured as part of build automation done using continuous frameworks such as Hudson, Jenkins, AntHill etc.
  • Static Code Analysis Automation: One of the important aspect of code migration project is to ensure that the migrated code is of high quality rather than plain line-by-line conversion which may introduce several code smells in the new code. This could be achieved by making use of static code analysis tool such as Sonar which could raise flag on some of the following aspect of code quality:
    1. Duplication
    2. Lack of cohesion
    3. Code complexity
    4. Testability
    5. Rules violation: As part of code migration, it has been found that customers require one or more coding rules to be met for which manual code review is done. By creating custom rules and configuring tools such as Sonar, it does the code review in precise manner, report rules violation and cut down on time required for manual code review.
  • Code Review using Tool: Another area where lot of time is spent in any code migration project is code review. In usual practice, it has been found that code review is done using manual methods such as sharing source code file in email and using email for collaboration on code review. It has been seen that using a tool such as Crucible or Code Collaborator for code review shortens the overall time required for code review and also increase collaboration.
  • Continuous Integration: A code migration project without continuous integration framework used for build and deployment automation may not be very effective in terms of time taken for this process, and chances of error that exists.

 

Ajitesh Kumar
Follow me

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. For latest updates and blogs, follow us on Twitter. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking. Check out my other blog, Revive-n-Thrive.com
Posted in Migration. Tagged with .

Leave a Reply

Your email address will not be published. Required fields are marked *