12.19.06
5 Ways to Avoid Migration Headaches
When you can’t just pull an image of a server and virtualize it, you are in for the dreaded Migration. A flawlessly executed Migration will make you feel almost invincible, but it’s one of the hardest things to pull off without collateral damage. Users get spooked when you talk about changing things around. Administrators start eyeing each other like strange cats inside a house. Faces turn grim, and people mutter as you walk away. Yes, it really can be THAT BAD. Botched Migrations cost companies untold amounts of money every year. There are several things you can do to help improve your chances of making a successful Migration. These “Ways of Migration” as I like to call them are pretty much just plain old common sense. I leave it for you to decide.
- Plan With the End-User in Mind
That’s right. I’ve seen good techs spend bad time trying to make things work “right” without ever considering the people that use the server every day. I could tell stories, but I’m going to focus instead on how to get usable info from the end-user. Go around and talk with them on-site if you can. Schedule some calls if you can’t, and find out how they actually use the server. Document as much as you can about their day-to-day usage of applications and try to get a feel for how they move data around. Don’t rely on what a manager tells you, speak to the end users who interact directly with the server. Don’t try to correct their “bad” behavior as they explain to you exactly what they do on their computer, or how they interact with the server. Instead focus on how you can smooth the transition from one machine to another. Try not to get bogged down in semantics, but realize this move is pretty scary to a non-technical person. Also as a nice source of follow-up revenue, you can get a feel for what training this person might need in the future and make a note for later use.
- Spend 80% of the Time Planning and 20% of the Time Executing
This is common sense as well but I cannot tell you how many times I have seen people jump right into a problem without even any planning, much less 80% of the time spent on the project. You have to have a good grasp of how a server is used in an organization before you can go around changing things. While planning, try to brainstorm ways end-users could hold up the process, and plan accordingly. Also, in the planning phase, you can test using a virtual machine. If you are migrating from a different version, make sure you install and test the Applications on the new server before you try to start using the server in production. You will run into problems you didn’t think about, make sure you have license and serial numbers, cdkeys and support numbers for any big ticket software you are working with. This information will save you valuable time once you move to executing the migration.
- Plan to execute in Stages
Most migrations are fairly simple, but almost every migration requires user input. End-users, managers, owners, and everything in between will have a “say” in any Migration. You will want feedback while you are testing things out, and the stages should reflect that. Every stage of your migration should be planned to lead into the next stage. Testing one or more pieces of software requires careful execution. You must take backups of data and restore them to the new server. Test the software, and have multiple end-users test the software and the data. Once all the software is working correctly, move onto security issues. Once things are working smoothly with backup data, plan a day to do the actual cut over.
- Schedule double the time you expect for any stage of execution
If you think that database will backup, copy and restore in 3 hours, schedule 6. If you are absolutely positive that it will take you 15 minutes to shut down the old server, schedule 30. Once you get into the execution of your migration, you will find that time slips away faster than you anticipated. It sounds counter-intuitive to schedule things this way, but it can have an almost magical affect on your ability to actually hit, or even exceed your estimates. When you come in under your scheduled time, the client is usually much happier than when you come in over your estimated hours. You will likely have time to spare at the end of the project if you keep your cool and handle anything unexpected as it comes up. That “extra” time comes in very handy.
- Have a fall-back position
Every plan has it’s weaknesses, it’s hidden traps. Problems can be any size, big or small. Don’t forget to have a backup solution ready to go. If you are under a deadline, be sure you think of a stop-gap measure you can quickly put in place if everything goes down the drain. This one Way can make or break you as a professional. I even suggest having a backup to the fall-back position, just to be on the safe side. An amateur will often fail to plan for a “worst-case” scenario, but as a professional you took it into consideration and know exactly what you will do to save the day. You didn’t anticipate every problem that came up, but you planned for the most important problem, the one that stops you in your tracks. It’s an old cliche but it bears repeating: Fail to plan and you plan to fail.
A solid migration plan with proper staged execution can make migrations move smoothly with a minimum of snags. If you spend your time planning carefully, and execute your plan, you will not be disappointed. There is no better feeling of accomplishment than finishing a successful migration. End-users will throw rose petals at your feet the next time they see you. People will whisper in hushed tones behind your back, telling other people who haven’t met you yet, what an amazing “computer guy” you are. A professional plans their moves meticulously and executes them flawlessly. Are you a professional?