Friday, August 6, 2010

Google Apps as a small business office system

I'll admit, setting up Harritronics was a spur of the moment thing. I had been asked to do some contracting work, was advised to set up an LLC, and jumped in to get everything up and running before the start date. Aside from the legal stuff (which the State of Florida makes phenomenally easy via sunbiz.org), I wanted to make sure I had the same, or even better, computing facilities available as I had at previous employers. That meant email and an integrated calendar, a web server, and somewhere where I can deposit documents, as well as a full office suite.

Now, I'm a nerd, I have a lot of that anyway. In my closet is a server box running three virtualized servers, connected to the Internet via DSL, and those servers include something to receive email on my own domain, and even a web server. With a Wiki. But while this kind of thing is fun to do for yourself, for a business it carries with it risks. I'm at the mercy of disk crashes, issues with my Internet link, and issues with software updates going wrong. It also wasn't enough by itself, I can read my email on my network, but not outside of it; I did not have an online calendar of any description; and while I love the Mediawiki system (which also powers Wikipedia), it's not something I would recommend as a general shared document repository.

So what were the available options?

The first was to set up something myself using something called a Virtual Private Server, or VPS. You can "rent" a VPS, which is a virtual computer sitting in a managed server room somewhere across the country, and then install virtually any software on it you wish. Thus, the services offered by the server are available anywhere on the Internet, the system is backed up and rock solid - you don't have to worry about your own Internet connection causing problems - and it's as flexible as the software you install. The downside of such a solution is that you still have to spend a lot of time or money installing the "right" software.

The second was to buy an out-of-the-box solution such as the Microsoft Exchange and Sharepoint suites. The issues I have with these are that they're (very!) expensive, they take time to install and get ready, they're overengineered for a small business, and unless you combine them with a VPS you still have the issue of your system being dependent upon your own computers and networks. I also admit that I'm uncomfortable with proprietary solution, and Exchange is infamous for working poorly with others.

The third was to get third party email and web hosting. And, in the course of researching this, I found something called Google Apps.


What is Google Apps?


Despite the name, Google Apps is not a collection of applications, or at least, not as we generally think of them. Google Apps is an integrated email, calendar, web site, and document repository system, based on GMail, Google Calendar, Google Sites, and Google Docs. The system is designed such that you register a domain name (like Harritronics.com), point the domain name at Google, and then you can set up users under the domain, each of which have their own email addresses, calendars, etc, and all of whom have shared access to certain common resources. It's similar to Microsoft Exchange and Microsoft Sharepoint, but it's all on the web.

And if you have less than fifty users, the system is 100% free. You see ads, and if you choose to create a public website using Google Apps, then your customers will see a message at the bottom of your website saying you're using Google Sites, but otherwise there's no cost, in any real sense, to you the customer. For over fifty users, or if you expect to be receiving and storing a lot of email, you need to subscribe to the "Premium" version, which costs a whopping $50 per user per year, which is probably affordable to any business that can afford to employ fifty employees, and certainly compares well to, say, an Exchange license.

As a subscriber, you create users as you see fit, and each user automatically has access to the services Google Apps provides. New users appear in the address books of every person in your organization, and you can easily assign them rights to access or change shared resources such as websites and calendars.

Let's go through the features one by one.

GMail

The most obvious feature of Google Apps is GMail. Email to your chosen domain is available to your users using the GMail interface. If you'd prefer to read your email using a normal, desktop, client, you can use any client that supports IMAP (or POP3), which these days is pretty much all of them. The same client can also be used to compose email as long as it supports "Secure SMTP". Google provides standalone email clients for Android and iPhone too.

I have to admit I don't find the GMail interface particularly attractive. Most email systems have two things in common: they present one email to the user at a time (multiple windows notwithstanding), and they provide the ability for the user to create folders in which to file emails once read.

Not GMail. GMail takes the approach that users should read "conversations", so when you click on an email, all the emails that are part of the same thread (the emails responded to, etc) come up at the same time. As you read emails, you either mark them read and leave them filed in an archive, or you can tag them with one or more tags that you can go to later.

In theory, it's a great system. In practice, it's one of those times where programmers have spent a little too much time trying to be clever. Presenting entire conversations at once gets confusing very quickly, and the tagging feature, while interesting, doesn't seem to, in practice, help with filing any more than folders did. Indeed, the combination of the two work against one another - whether intentionally or not, conversations, not individual emails, end up being tagged.

To a certain extent, all of this is mitigated by the ability to use third party IMAP clients. I'll discuss IMAP in a moment.


Google Calendar

The second major feature of Google Apps is the integrated calendar system. Again, this is the regular Google Calendar system, but enhanced to allow sharing between employees. Users can create multiple calendars, subscribe to other calendars, publish their calendars, and they can schedule appointments, sending out meeting requests and processing incoming meeting requests in a way integrated with GMail. Sending meeting requests to parties outside of Google Calendar system works too, if their system supports calendars (such as Microsoft Outlook/Exchange users.)

As with GMail, the system is integrated with Android and the iPhone, although the Android version is, right now, a little kludgy.


Google Sites

Google Sites is a tool that makes it easy to set up websites, both public and private. As with Google Calendar and GMail, Google Apps simply integrates their existing Google Sites service and allows users you set up to collaborate.

Google Sites takes an interesting approach to website development. Instead of having users hand-roll raw HTML, they edit predefined templates, with an editor that makes it easy to change fonts, create links, and so on. The feature-set is similar to that of a Wiki, but the service is much more user friendly, and there's more flexibility in terms of defining what users can do and see what. Google Sites users can also embed more complex applications, such as shared spreadsheets.

There doesn't appear to be any restriction on the number of websites you set up using Google Sites, and you can set up sites with varying levels of access. In my case, www.harritronics.com is set up as a public website anyone can read. I also set up some private websites for my organization - a company homepage, for instance, that shows all of the links to get to all of the different systems supported.

You can't do anything you want using Google Sites as Google has in place strict restrictions on the look and feel of the sites you build, but the service works fairly reasonably both as a way to advertise a business, and as a collaboration tool. If you were considering setting up a Wiki in-house, or you want to put together a basic website to explain your services, the system will work fairly well.


Google Docs

Google Docs is probably the most easy to misunderstand part of Google Apps. Again, the system is a commandeered service Google was already operating. Google Docs provides a spreadsheet, presentation editor, and a word processor, that all work within your browser.

And if that was all there was too it, you probably could stop right there. OpenOffice.org, for instance, provides word processors, spreadsheets, and presentation editors (and a whole lot of other great tools) for free that are far more feature-full. You would probably not choose to write your novel, or create an invoice, using the Google Docs word processor. You would probably prefer not to design an advanced report using the Google Docs spreadsheet.

But that's not what these tools are for. What makes Google Docs special is that these are dynamic multiuser applications that run over the network. Your employees can all access the same document without having to worry about different copies and one person locking everyone else out of the same thing. Two people on different sides of the planet can update a spreadsheet, which in turn is shown in real time on a website you've built yourself.

Back-up a bit. I said above "You would probably not choose to (...) create an invoice using the Google Docs word processor", but actually if the invoice is complex enough, you may actually want to involve several people in its preparation, and so you might very well use Google Docs to write the draft.

Google Apps provides a central repository for your company, making it easier for employees to share documents with one another.


Integration with the desktop

As I noted above, Google Apps has a web based interface that, on occasion, is supplemented by systems that allow you to make use of dedicated applications. For example, you can avoid the GMail interface and use any IMAP client. This means that in theory, you can use, say, Microsoft Outlook, for your email. It also means that your users, given the right email client, can have offline access to email. But that isn't entirely the case, and here's why.

Users of Microsoft Exchange are used to an environment in which everything is integrated. Your address book includes everyone in your organization, and everyone you've manually added to it. Likewise, GMail includes the same feature through its own email interface. What Google Apps does not do, however, is provide third party applications with access to the same information.

Now to be fair, there are workarounds, and some would argue that the process of synchronizing contacts is not exactly standardized anyway. There's a system called LDAP which can be used to store global address books, but Google Apps certainly doesn't publish user lists that way. For individual contacts associated with a single user, a system called SyncML exists, but this is a system with very little support: Google Apps has limited support, and client support is hit and miss. Outlook does not directly support the standard, but plug-ins exist to provide it. Unfortunately the available plug-ins don't appear to work with Google Apps.

Calendar support is certainly better, but this too is hampered by a lack of universally promoted standards. Google allows Calendars to be published using the open iCalendar protocol, and edited using the open CalDav protocol. Unfortunately, Outlook only supports read only access to the former, and nothing at all concerning the latter. Other clients have mixed support. The Mozilla Foundation produces an excellent email client called Thunderbird, that has a plug-in called Lightning that supports CalDav, but I found it somewhat unreliable when connecting to Google Calendar.

In fairness, third party plugs exist to do most of these, but their ease of installation, and their reliability, I found questionable. One Calendar synchronization app I used, that'll remain nameless, kept popping up a requester asking me to select an Outlook profile, every time it tried to synchronize. Nothing worked until I uninstalled Office 2010, which was initially installed using Click-to-run, and re-installed it using the separate download Microsoft conveniently forgets to tell you exists.

The issue with not having the three (email, contacts, and calendar information) available to a single application is more of a concern than you might realize. Mix a desktop client and the web interface, and without a lot of syncing you'll have problems keeping track of which calendars have which appointments, and you'll be constantly finding yourself wondering what happened to your contacts. The reality is that the only way to use all three together is to use the Google web interface, and the clients Google has written for specific platforms.


Advantages and Disadvantages

Google Apps has various advantages and disadvantages over its more conventional cousins. Let's compare, for the sake of comparison, to Microsoft's Exchange suite.

Pros:
  • It's cheap. For up to 50 users, you don't have to pay a penny. Moreover, it's free as in freedom - you don't have to be tracking licenses, as you would with a typical Exchange configuration.
  • You can run your entire business using some office-grade laptops, a DSL connection, and a Wifi router you bought at Office Depot. I'm serious. The age of the "server room" for anything but the largest enterprises is rapidly coming to an end. You can hire some guy from Harritronics (ahem) to come over and set everything up, and then just call him, or someone similar (Geek Squad?) if you actually have a computer problem.
  • It's fast. While the 15 second launch time of Outlook might not be dramatically greater than the 5 second launch time of GMail (on my system at least), it certainly cuts down the annoyance factor!
  • You can access everything everywhere. People can work from home, or even from their cellphones, without the need to configure VPNs or other complicated inter-network systems. I found it astonishing that for the first week or so I was effectively running Harritronics from my Android cellphone 90% of the time.
  • Disaster recovery is built-in. If a hurricane destroys your office, you can be up and running as soon as you find a coffee shop with a working Wifi system. Your email, calendars, contacts, and important documents will all be waiting for you.
  • It's easy to administer. Just go to the website and add or delete users as you need to. No special software required, and no concerns about the right people being locked out of the system, as long as you've set everything up properly.
  • It's easy to set up. I had the system up and running within ten minutes, and that included registering a domain name at register.com
  • The system is entirely cross platform. Your users can use Internet Explorer, Firefox, Safari, or Google Chrome, on Microsoft Windows, Mac OS X, or even Ubuntu GNU/Linux, to access everything in the system. The only other recommended tool is Adobe Acrobat, as various tools "print" by exporting a PDF file. Your employees can run the operating system and web browser they feel most comfortable with, which improves productivity and makes for happy employees, as well as reducing the risks of monocultures - where running the same operating system throughout an organization makes that organization exceptionally vulnerable to viruses and hackers.
Cons
  • Desktop applications always feel better on a desktop, no matter how well a website is designed, and GMail really isn't that friendly. At this stage, it's hard to recommend the use of Google Apps with desktop applications because of the difficulty configuring the two to work together seamlessly.
  • You may have legal restrictions that prevent you from making full use of the service, in particular the collaboration services may not be useful to you if you work in the healthcare field. The important thing to note is that the entire system is hosted on servers outside of your direct control, and while there's no reason to especially distrust Google's security over, say, a firewall on your own network, legally there is a distinction.
  • Unless you pay for the premium version of Google Apps, you will not be able to (easily) integrate your office network's security system with that of Google Apps. In practice, this means users will need to remember two sets of passwords, the password they use to log into their computer, and the password they use to log into Google Apps.
  • You don't manage the security, and you can't lock out access to the system to computers not on your network. While Google's security is fairly robust, there's nothing ultimately stopping someone from, say,  China hacking into one of your user's accounts if he or she can guess the password, something less likely to be possible if the email server was behind your own firewall. This means you need to have policies in force requiring users to set strong passwords, something easier said than done.
Useful links and workarounds

I used Register.com (sponsored link) to register my domain name. You don't need to buy anything other than the domain itself, although depending on your needs, you might want to buy the web hosting service if you'd prefer your public website to have no Google Apps branding at all.

Once you have the domain name set up, you can go in Register.com's control panel to set up specific domain names to point at Google. For example, I set up www.harritronics.com to point at ghs.google.com using the following:
  1. Go to register.com, and click on "Your account"
  2. Log in, using the same registration details you used when you bought the domain name.
  3. User "Services for account", you'll see your domain name (and some additional services underneath that you can ignore.) Click on the domain name itself.
  4. Scroll down to the bottom of the screen that comes up, and you'll see a set of options under the heading "Advanced Technical Settings". Click on "Edit Domain Aliases Records" next to "CNAME".
  5. Enter "www" in one of the empty boxes on the left, and enter "ghs.google.com." in the box to its right. Hit Continue, and Continue again to confirm the settings.
You'll be asked to set up aliases to point at ghs.google.com frequently when setting up Google Apps, so it's worth keeping this in mind. Setting up the email alias is slightly different:

  1. Go to register.com, and click on "Your account"
  2. Log in, using the same registration details you used when you bought the domain name.
  3. User "Services for account", you'll see your domain name (and some additional services underneath that you can ignore.) Click on the domain name itself.
  4. Scroll down to the bottom of the screen that comes up, and you'll see a set of options under the heading "Advanced Technical Settings". Click on "Edit Mail Exchanger Records" next to "MX".
  5. Leave the two boxes on the left blank. Set one of the rows Priority=HIGH and Mail server = "aspmx.L.google.com", and the other "Medium" and "alt1.aspmx.L.google.com". Hit "Continue" and "Continue" again to confirm the settings.
I'm using Office 2010 on Windows 7, and as you might expect the system suffers from being new and from developers not being quite sure how to deal with it. The critical thing to remember is when you install the system, do not use the "Click to Run" installation that is downloaded by default. On the download page, if you're downloading Office from Microsoft, you'll find an "Advanced Download options" button (or something similar), make sure to select the 32 bit or 64 bit version only.

Once you install Office, you can, kinda sorta, use Outlook with Google Apps, however:
  • Without paying for the premium Google Apps product, there's no easy way to automatically sync contacts between the two systems. You however can tell your users to manually export and import contact lists between the two systems.
  • If you want to create a common address book, you'll need to build a separate LDAP server and ensure any changes made on the Google Apps side are also made on the LDAP side.
  • You will need a third party plug-in on each user's PC to synchronize the calendars, otherwise accepting an invitation on one system will not reflect on the other. At this point I have not come across a calendar synchronization tool that I can recommend. The tool I'm using right now, for instance, insists on prompting for an "Outlook profile" despite being told "which one to use", and despite there only being one profile on the system!
  • The other tools are built for web browser use. You can't integrate Excel with Google Docs, for example, but you wouldn't want to, the two applications are built for different tasks.
There are alternatives to Office! Consider using OpenOffice.org (from, uh, www.openoffice.org) It's a complete and extremely powerful office suite from Oracle (formerly Sun) and it's free. For email and calendar support, you might want to consider Thunderbird, from the Mozilla foundation (famous for the Firefox web-browser.)  With the Lightning plug-in installed (which is also free), the system works as a high quality replacement for Microsoft Outlook. Be aware though, that at the time of writing Lightning does not work with Google Calendar...

So...  have you used Google Apps? Would you like an office collaboration system that "just works" and has no licensing complications?


    No comments:

    Post a Comment