I've been testing Microsoft's new Office 2010, along with its equally important companion SharePoint 2010, and trying to decide where it lies between brilliance and disaster. It's certainly an improvement on Office 2007. I was relieved to find that Outlook 2010 performs much better than Outlook 2007 did on its first release. Still, the perenniel question with Office is whether you will actually notice the difference, other than a slightly changed colour scheme, as you get on with typing documents in Word and calculating spreadsheets in Excel. While there is the usual laundry list of new features, there's nothing here as dramatic as the switch from menus to the Ribbon in Office 2007.
The real difference lies elsewhere, in how Office is entering the realm of cloud computing. The likes of Google and Salesforce.com have a straightforward proposition: ditch your desktop applications, store everything on our servers, and run your applications in the browser. Microsoft cannot afford to take that line, since Office is its biggest source of income after Windows itself. It has come up with something more nuanced, offering what it hopes are the most beneficial aspects of the cloud without displacing desktop Office.
Therefore we have Office Web Apps, with in-browser creation and editing of Office documents, but still tied to the desktop applications if you need to go beyond basic features. Office Web Apps can live on Microsoft's servers, such as SkyDrive and the recently announced Facebook tie-in docs.com, or on your own servers as a feature of SharePoint 2010. You can use them from various browsers on Windows, Mac and Linux. Suddenly, opening and editing that .docx or .xlsx - these being the controversial Open XML formats - on Linux is not such a problem. I was pleased and surprised by how much the Web Apps improve SharePoint and change the way I use it.
At the same time, as I dug into the Office Web Apps, I found more and more frustrations. The Office Web Apps use the very same formats as desktop Office, but not all their features are available. For example, you cannot insert a new sheet into Excel via the Web App. In fact, there are so many things you cannot do that listing them would take many pages. That doesn't mean the web apps are useless, they are fine for the basics. Microsoft's solution if you need an unavailable feature: just open them in desktop Office. But what if I'm on Linux? Tough.
This same issue leads to problems which are close to being bugs. Let's say I'm in an Internet cafe using a machine that does not have Office installed, you are in the Office, and we are happily collaborating on an Excel spreadsheet - Office Web Apps even lets us edit it simultaneously. The spreadsheet is nearly done, you feel it needs a little jazzing up, and you open it in Excel to add some Word Art. Oops. Not only is the Word Art invisible to me, but I can no longer edit the spreadsheet. Sorry, says Excel Web App. Incompatible features.
It's something that cannot happen in Google Docs, or Adobe's Acrobat.com, where the web application is the only one that you use. I can see this kind of thing causing endless frustration. Note too that you get no warning when editing a document in a way that introduces web app incompatibility.
Office Web Apps is something we did not have before, and you can see it as glass half full, or glass half empty. Personally I expect to use the web apps, and if they help bring an end to the terrible practice of collaborating by emailing documents to all and sundry, I will be grateful.
Nevertheless, as a cloud offering the Office Web Apps are somewhat broken. It will be fascinating to see how this evolves. My guess is that the Web Apps will improve over time, to the point where installing desktop Office becomes unnecessary for many of us. Microsoft may not like the sound of that, but it is better for the company than the alternative, which is not using Office at all. Never bet against the cloud.
Image via Wikipedia
I attended Microsoft's Professional Developers Conference last month, with one of my goals being to learn more about Azure, the company's cloud computing platform. I have been meaning to write a post on the subject for some time, but it did not come together until this week, when I listenened to Marc Benioff expounding the Salesforce.com version of cloud computing.
Benioff is ebullient and outspoken; a contrast to Microsoft's Ray Ozzie who gave the Azure keynote at the PDC and conveyed little excitement. Of course, it's easier to be ebullient when your company is growing at 20% per year; but another factor is that the Saleforce.com vision is easier to articulate. Throw out your servers, says Benioff, and move everything to the cloud, that is, to us.
In reality Salesforce.com has a significant integration story, so you can have your on-premise applications talk to your cloud applications, but it is not something Benioff talks about much. Why should he? His company profits when you migrate stuff to his platform; the integration piece is merely an enabler.
Microsoft by contrast makes its money from on-premise software. Its internet services lose money, according to its own accounts. It also has a vast partner infrastructure that is sustained by installing and maintaining its products.
Still, Microsoft knows that it has to do cloud, because the economic benefits to its customers are unavoidable, and because any IT company without a cloud strategy will be punished by the financial markets. In consequence, there is an array of consumer services under the Live brand, and an emerging platform of enterprise services under the Azure brand.
Azure is Windows server in the cloud. You get SQL Server; you get IIS; you get ASP.NET; and it is all pay-as-you-go. So is Microsoft suggesting that we throw out our servers? Considering the profitability of its server division, that would be madness; and indeed, the PDC presented mixed messages about the company's cloud strategy.
This was brought home to me by a session I attended on Bridging On-Premise and the Cloud, given by Windows Azure Distinguised Engineer Yousef Khalidi. Cloud computing, said Khalidi, is a "style of computing with dynamically scalable and virtualized resources provided as a service through the network ... this definition doesn't even say if it has to be on the internet or not. It's a way to think about how an application is structured to fit in a cloud-like model."
Khalidi went on to describe a "spectrum" of computing platforms, from the traditional server or datacenter to private and then public clouds. The forthcoming AppFabric Server will make it easier to run cloud-like applications (according to the definition above) on your internal network, with the option to move it to Azure later should you so desire. "Our strategy, our basic thesis guys, is that there are benefits across the whole spectrum and we'll continue to support the whole spectrum," he said.
The snag is that co-ordinating cloud and on-premise gets complicated, as a glance at one of his slides illustrates.
Well, computing is a complex business and I can understand the appeal of this model to Microsoft-platform companies that require some specific benefit, like pay-as-you-do scalability. As an overall proposition though, it is less attractive than the kind of thing Benioff talks about; it can feel like adding complexity rather than reducing it.
Another issue with Azure is that while it lifts much of the IT administrator's burden, it does little to speed development. You still have to write the code, test it, debug it, deploy it, maintain it. Saleforce.com on the other hand is not only a multi-tenant platform, it is a multi-tenant application. If you are lucky, a little bit of customisation is all you need.
You might not be lucky. You might end up having to write mountains of non-portable code in Apex, the Force.com language. You might run into limitations of the platform, like its difficulty with long-running data processing operations that can interfere with the responsiveness of the system. Salesforce.com is also an expensive platform, with per-user per-month fees for ever.
Still, at least Benioff has a coherent story. I'm not sure that Microsoft does.
The latest news is that Microsoft has re-organized Azure into a new Server & Cloud Division. So now the internal division that has most to lose if Azure succeeds is running the whole show. Technically that makes sense; but the marketing message is going to be even harder to articulate.
I'm at the Salesforce.com conference in San Francisco, called Dreamforce. The slogan made me smile: the future is looking up. Perhaps it is; but up to which cloud? Microsoft Azure, announced with much fanfare last week at the PDC? Google Apps and AppEngine? Amazon's virtual machines on demand? Or Force.com, the Salesforce.com platform being plugged here? Although Salesforce.com is a CRM application, it is also a platform on which you can create other kinds of applications using the Apex programming language.
As you might expect, Microsoft's announcement is the subject of much discussion here at Dreamforce, with the Salesforce.com executives keen to explain why Azure (which CEO Marc Benioff derides as Azoon) is no match for its own cloud offering. Lindsey Armstrong, co-president EMEA, went so far as to say that Microsoft's effort is not actually cloud computing at all. Her reasoning: with Azure you write your own application and host it on Microsoft's servers. The maintenance of that application remains your responsibility. By contrast, the Force.com platform encourages multi-tenant applications.
The point highlights how the cloud computing buzzword is being used and abused by various vendors, to mean whatever they want it to mean. Underneath though, there are interesting issues. There is pretty much consensus in the industry that more data and more applications are heading for the Internet, with benefits including multi-device support, zero-install applications, availability from anywhere, off-loading of server maintenance, and scale-up on demand. There is no consensus though about what that cloud looks like.
It is easy to see the trade-offs here. The more you run your own code, the more control and freedom you have. On the other hand, the more you build on vendor-specific services, such as Amazon's S3 and SimpleDB, or Microsoft's SQL Services, or Google's Big Table database, the less code you have to write, but at the expense of less flexibility and greater tie-in to the cloud platform you are using. At the extreme is something like Salesforce.com where you share the maximum amount of code, but hand over almost all control to the third-party. App running too slow? Yell at Salesforce.com. App offline? Yell at Salesforce.com. Want to move to another cloud provider? Not easy.
To be fair, the cloud providers like Amazon, Google and Salesforce.com realise that their platforms stand or fall on what they deliver in terms of availability, performance and security. Salesforce.com, for example, has a pretty good record of late, though Amazon's is more spotty. Still, even if the platform is 100% robust there are business issues as well. I've talked to a number of Salesforce.com customers here, and while they are generally happy with the platform, I've heard concern about the cost. Once you commit to the platform, there are limits to what you can easily do if you become unhappy with it in future.
Benioff is open about this lock-in - he even used that word at the press Q&A, explaining how making the platform programmable was increasing his hold on his customers. Does that mean you should not use Salesforce.com? Not necessarily; it is not as if lock-in is anything new in our industry; and the platform itself is impressive. Nevertheless, it strikes me as a significant factor. The question "how do I move away" is important in evaluating next-generation computing infrastructures; and some clouds are harder to escape from than others.