My company has recently switched to Google Apps (paid edition). It is not cheap: $50 per user annually, but we decided it is worth it, comparing to cost of supporting our own email infrastructure. Google was kind enough to assign as a support engineer to help us with migration. We did migration on our own, and just needed help with few small issues. Before boring you with details let me go straight to conclusions, in case you do not want to read the rest:
1. Core functionality of Google Apps works pretty well - we are happy
2. Do not expect much support. My impression is that Google is doing whatever they think they should be doing, and do not care about you or your money. Just be grateful to be able to use their stuff and shut up. [This is similar to Apple's attitude, except Apple cares about your money]
3. Knowing all this, would I still switch to Google Apps? Emphatically YES.
Problem: There is no way to browse global address book, although you can search in it.
1. Export CVS and email to all your employees. Ask them to import to their private address books.
2. Use API (they actually offered to send me a link to API docs!) [I guess the assumption is that I should write my own interface to their address book]
Problem: There is no way to change owner of documents on Google Docs from @gmail.com address to google apps user (it complains about different domains)
Suggested Solution: Export all documents in Ms Word/Excel formats and re-import them, losing history, sharing settings, etc.
Problem: Some problems with IMAP mailbox migration (Feature of apps control panel)
1. Although it is offered via Control panel it is deprecated and should not be used. It is not supported.
2. Although I am not using Microsoft Exchange, I should install "Google Apps Migration for Microsoft Outlook". It will import IMAP as well. It requires Outlook to be installed. I will need Windows machine for this. Then it will proceed to download 4Gb of my mailboxes via IMAP and will re-upload them to Google Apps.
Problem: There was typo in name of one of users which we fixed. In the list of accounts it shows correctly, but in auto-completion in email and elsewhere it still shows mistyped one, one week after it was fixed.
Suggested Solution: Usually changes to user real names take 24 hours propagate. [When I pressed on saying that a week have passed, they said that this is known issue which will be fixed, eventually. No ETA, no workaround)
Problem: You can create calendar, and in sharing options make it shared with all people in the company. But co-workers have no way to find it - search does not show it.
Suggested Solution: You need to get cryptic calendar ID from sharing settings (it looks like email address) and email it to all your employees, and as them to add to their calendars using this ID.
Shared contact list is a popular issue.
There are some paid-for third-party apps that kind of solve this. We're settled on CapsuleCRM (we're using it as a sales/crm tool but it also supports "pushing" contact book to google apps -- hackish but solves the issue).
Google is a platform company, the usability of their UI sucks. People praise GMail's UI, but it only looks great compared to other *web-based* UI's - it's good, but it sucks compared to a proper desktop app.
Don't get me wrong, I have half a dozen Google Apps accounts for my various ventures and I switched two other companies to Google Apps - the prices are hard to beat and the reliability is better than anything else I tried. They do screw things up from time to time, but far less often than others, it seems. Backup is ALWAYS a good strategy.
That said, I would NEVER use their web-based UI. I use them as a back-end and encourage my users to do the same. And that, I believe, is how Google intended it. That's why they have extensive API's and that's why they are not in a hurry to fix various usability issues.
That's what I am trying to do. I am using their mail via IMAP using Apple Mail and Android K-9 Mail. This part works pretty well.
Working with Calendar using CalDAV is not so smooth. It gives me random errors and I learned that the best way to accept events is not via iCal on Mac, but clicking on link in the invitation and accepting it via Google web interface.