Migration testing is incomplete, slow
I have just two real users on my domain, but I made sure to learn and test at least some of the tools for larger organizations. Google has put together a wide variety of options for migrating your email installation from Exchange (and from Lotus Notes, which I did not test) to Google Apps Premier. If you have more than a handful of users, your main migration tool from Exchange will be Google Apps Migration for Microsoft Exchange (GAMME), which performs bulk migrations of users from the Exchange Server to Google Apps through an intermediary system running the migration app.
The Administration Guide for GAMME made a great impression on me. Google has the approach to this exactly right. The guide stresses the importance of pilot migrations and phasing in the actual transfer, and provides extensive guidance for this approach. In fact you'd be nuts to try this without a test migration. Even I did one for my puny domain. Fortunately, you can test Google Apps Premier for free for 30 days.
The tricky part is that you can't change the MX records on your mail domain until you do the real migration. Because the test users won't have their real email domain in their address (otherwise, their email is down while you are testing), testing can be awkward. For example, I had to use the test account
firstname.lastname@example.org, but my normal mail comes in to
email@example.com. I finessed the mismatch by forwarding
firstname.lastname@example.org and using a reply-to on the .net address, but that of course means testing under abnormal conditions.
When it came time to do my actual GAMME migration, parts of it failed, returning errors that Google's support staff wasn't entirely able to explain. On Google's advice, I switched to the command-line version of GAMME to specify particular parameters. It still didn't work quite right, but running it twice migrated all my data.
GAMME is a slow process. As the docs recommend, you want to shut off email for a weekend -- maybe a long weekend -- when running it. You could scale the performance and decrease the total downtime by running multiple GAMME systems to port different groups or users, or perhaps in different virtual machines on the same computer, or even different sessions on a Terminal Server.
For smaller installations or special cases, GAMMO (Google Apps Migration for Microsoft Outlook) migrates a single Outlook user profile from a client to Google Apps. This tool worked flawlessly for me.
You have a choice of email clients -- which you'll appreciate
After the migration is complete, you have some choices for how to handle email: You can work in Gmail or you can work in Outlook, using GASMO (Google Apps Sync for Microsoft Outlook). This tool has a pretty bad reputation, but it works surprisingly well for me. Google also supports IMAP.
Half of the users in my installation (that would be my wife) were adamant about keeping Outlook. GASMO is both a local MAPI provider and a tool for creating Outlook profiles for synchronizing the Outlook account with a Google Apps account. There is a slow, one-time process to synchronize the Google Apps mail, contacts, and calendar data with the Outlook equivalents. It took many hours each time I ran it, but the further you get from that initial sync, the faster Outlook feels -- as fast as with Exchange, I'd say.