Tuesday, June 09, 2009

BizTech Dilemma of The Day: Google vs Microsoft

== To be used as an illustration for a Dilemma-busting session (Separation Principles) ==

Background

The tandem of the Microsoft e-mail client (Outlook) and server (Exchange) has been a dominant force in corporate IT world for years. Now, Google is trying to break into this lucrative market by offering companies a competing product - Google Apps, a software-as-a-service suite of cloud applications for e-mail and information sharing. Unfortunately for Google, there's a problem:

there apparently is a sizable enough number of workers that refuse to move off Outlook, meaning that IT directors who want to sign up with Google were forced to maintain a Microsoft Exchange server to placate those folks while moving everybody else to Gmail. An alternative where Outlook users are connected to Gmail through IMAP got the job done, but at the expense of a severe performance hit, said Chris Vander Mey, a senior product manager with Google.

Dilemma formulation

Thus, we can formulate the first-level dilemma:
- on one hand, IT managers need to continue maintaining the Microsoft software, because it is familiar to their company's workers (Condition 1)
- on the other hand, IT managers need to stop maintaining the Microsoft software, because, for some of them, Google provides a more cost-effective solution (Condition 2).

By separating in space, we arrive at a configuration, where Outlook remains on the client (Condition 1), while Google Apps becomes the new server (Condition 2).

The IMAP solution moves us in the right direction, but it doesn't go far enough. The dilemma it tries to avoid can be formulated as follows:
- one one hand, the e-mail client should use the MS Exchange interface, because it provides the best performance (Condition 3);
- on the other hand, the e-mail client should not use the MS Exchange interface, because the new IT infrastructure runs GoogleApps servers (Condition 4).

In other words, the client should speak natively both "languages". The question is: When? By separating in time, we get a client that at one time speaks Exchange, and at another time speaks GoogleApps.
When does it need to speak Exchange? When it talks to Outlook user interface application. When does it need to speak GoogleApps? When it talks to a GoogleApps server.
As a result we get a solution of a plug-in that leaves Outlook unchanged, but "fakes" an Exchange interface for it.

An alternative solution would be to separate in space, i.e. have a server-side Exchange-GoogleApps translation module (e.g. a virtual implementation). Does it makes sense? Maybe for Microsoft, but not for Google. Mostly, because Google wants to, eventually, get rid of Outlook clients altogether. Also, e-mail clients that don't have Outlook, e.g. mobile devices, can sync with GoogleApps directly, and they don't need an Exchange translation module.

The end-result: a set of configurations where legacy Outlook clients (PCs) with lots of processing power and bandwidth use a plug-in, while mobile clients use native GoogleApps interfaces.

==

Notes:
Also, see Principle #24 (Intermediary) in the contradiction resolution matrix. It would be ok to apply it here right away, but it won't be specific enough to provide adequate criteria for configuration choices.

Three diagrams are needed to illustrate various problem configurations.

No comments: