Over the past year and a half, I have done a number of SharePoint migrations, and I’m frequently asked about them. Because every SharePoint installation and usage profile is unique, every migration has had its own issues and solutions. In this blog, I’m passing along some tips and tricks I learned from real-world experience. They are presented in the form of questions that a SharePoint Administrator should ask when they are planning a SharePoint migration. This is not necessarily a complete list, but it includes the questions I always ask when I’m brought in to help an organization with their migration planning.
Planning your environment
Your SharePoint migration may require some environmental changes. Here are some important questions to ask:
- Are there new features that you are planning on implementing?
- How will the new features affect your farm infrastructure?
- Are you skipping SharePoint versions? If so, you will have to use a 3rd Party tool for your migration.
Know your customizations
Your existing SharePoint installation will likely have some customizations. Now is the time to take an inventory and plan for migrating them to the new environment.
- Do you have a complete list of customization that have been deployed?
- Will they run in the new environment?
- If they were built in-house, do you have the source code in case your solutions need to be rebuilt?
- Should your customizations need to be rewritten in order to leverage new APIs or remove deprecated ones?
- Have you found all of your customizations? Have you checked the /_layouts directory?
- Are there other asp.net web sites that you’ve deployed in IIS that your users rely on?
- Are you using any 3rd party solutions? Have you contacted the vendor to obtain newer versions?
- Was SharePoint designer used? If so, what was it used for?
- Were out-of-the box SharePoint files modified?
Clean up before migrating
Doing some basic housekeeping is really important. The more you are able to clean up, purge, delete, etc., the less you will have to migrate. Cleanup also helps you find and fix issues that may become problems in the new environment.
- Does everything in the existing farm need to be migrated? You might want to delete or archive content that will not be migrated.
- If you’ve had SharePoint for a while, you may have hundreds of document versions. Do you need to migrate all those versions?
- Do you need to migrate sites that haven’t been accessed in more than, say, 6 months or a year?
- If your organization is a heavy user of SharePoint Designer workflows, you may want to purge back the workflow history list.
- To be more efficient, would you consider writing or using PowerShell scripts to scan your environment?
Check your content databases
- How many content databases do you have?
- How large are they?
- Do you need to split them?
- Is there a plan for splitting up the sites?
- Will all databases be moved?
- Which services databases will you move?
- Will your users My Sites be migrated?
Test your migration
It is good practice to set up a virtual machine (VM) to test your migration. Running a test migration can help you determine how long the actual migration will take, and a test run will find issues that you can mitigate in your current environment. The more issues you resolve in your test environment, the smoother your actual migration will be. An added benefit is that you can run multiple test migrations to ensure a successful production run.
Coordinating the Production migration
Carefully planning the timing and resources needed during production migration is very important, because you are now potentially impacting the user community.
- When will you do the migration? Are there time slots that might be more advantageous than others in terms of minimizing user impact?
- Do you plan to migrate the entire site over a specific period of time (e.g., a weekend), or follow a phased approach?
- If you’re planning a phased approach, do you have a plan for selecting which sites to migrate in sequence?
In addition to discovery, migration planning, and migration testing, there are a few other areas that should be considered:
- Communication: Do you have a plan for communicating the migration to your users?
- User training: Do you have a plan for training users on the new features and ways to work with the new version?