At April's SaaScon show, Salesforce.com's head of platform development Steve Fisher demonstrated a vacation booking application he'd built with a colleague in a weekend using the (since renamed as) Force.com platform. As with all demonstrations, of course, what made it all look so easy was the preparation that had gone in beforehand: "it took eight years before we were ready to do that," he told me when we met this week.
There are still some important kinks to iron out (more on those in a moment) before Force.com finally delivers on the grand vision that Steve's team adopted a couple of years ago. But he's confident that the eight years of development experience that's gone into it will keep it ahead of any competition.
"It's actually quite tough to build a secure, multi-tenant, on-demand application that's customizable and integratable," he explained. "Our goal as a platform was to make it so that it was easy."
What makes that goal particularly ambitious is its scope. This is not about giving developers the ability to elaborate their own variations on top of Salesforce.com's existing application (which is the approach NetSuite is taking with its new SuiteBundler proposition — more on that in a separate post later this week). Force.com is intended to be a generic platform capable of supporting any conceivable enterprise application.
The vision hasn't always been so all-encompassing. The turning point came a couple of years ago when what was then called the AppExchange platform was still in its early days. At that stage, the objective had simply been to enable customers and partners to customize the Salesforce.com application and extend it with mashups. There was no firm plan to extend the core application platform beyond its forms-driven database model. Two events changed that.
The first was an attempt to use the new AppExchange platform to write a quote application — which unsurprisingly with a sales automation product had always been a frequent request. The project hit a brick wall: "We did not have transactional integrity," said Fisher. "That's when we had to decide, do we become a platform that we could use [for all forms of app] or were we going to be a mashup platform and a database-forms application platform."
The other stimulus was the sheer creativity that AppExchange, even in its early form, began to unleash among partners — for example an application to manage Google keyword ad campaigns that a four-person startup called Kieden created in a matter of weeks (Salesforce.com subsequently bought the company). "That was a lightbulb moment for me when I saw the Kieden application," said Fisher.
The quote application had shown the need to move beyond the forms-and-database paradigm. Companies like Kieden showed the opportunity that might reward the effort. That sealed the decision to move ahead with creating the Apex programming language and reforging the platform to support whatever kinds of applications people wanted to build. "We made the decision we'd be a platform that enterprise developers would really want to build on," said Fisher.
The intention is to provide a platform that takes out all the "grunt work" of building an on-demand enterprise application — in effect productizing what Salesforce.com has learnt from developing its own applications — and thus shorten the development cycle for ISVs building new on-demand applications by a factor of years.
"We hope that the trailblazers will have an advantage," said Fisher, while admitting the first wave of early adopters — such as UK-based accounting ISV Coda — have had to contend with a beta platform that doesn't yet solve every challenge. "There's always a risk and a benefit in being the first."AppStore through which customers will be able to buy AppExchange applications, the Wealth Management Edition built for Merrill Lynch and the AppSpace customer portal. Fisher told me it was a high priority to move a large proportion of development to the platform. "That is the way we see we're going to parallelize our development and deliver value more quickly."
The team has encountered a couple of major obstacles along the way that they're currently working to resolve. One of the most important is to remake admin functions originally designed to support a single application that now have to support multiple apps. For example, each user created in Salesforce.com has a single global profile — but the privileges you'd assign to a user in a salesforce automation application probably aren't the same as those you'd assign to that user in the payroll app or a product development app. So the platform has to accommodate the ability to support application-specific user profiles.
"The administrative side of managing multiple applications is clunkier than it ought to be and we're working on that," admitted Fisher. Salesforce has a keen self-interest in fixing this, he added, with forty applications in use internally on the platform: "That's a challenge."
Another challenge is in the area of collaborative development — allowing individual developers to 'check out' specific parts of an application to work on while colleagues work on other aspects. "We have a sandbox but it's a little clunky right now. So we're working on that," said Fisher. The aim is to allow developers to check out XML metadata files that govern certain workflow or configuration elements of an application and manipulate it externally before checking the revised metadata back in for testing.
Fisher said these two items should be ready next year to coincide with the production release of the new visual development tool announced last month. "By the time VisualForce is available, all these other things should be in place," he said.
That's when Salesforce.com will begin to find out whether its ambitious bet on 'platform-as-a-service' has paid off. It seems the release of VisualForce has really fired up developers. More people tried it in the first month than tried the Apex programming language in the prior nine months of its availability. And it's been surprising to see a number of companies — some startups, some established ISVs — plunging into substantial development projects on the platform. With several key elements still to fix, those early experimenters are having to tiptoe along the bleeding edge of platform-as-a-service. But it's evident that Salesforce.com is putting a lot of effort into getting it right — not only to create a viable platform for partners but also to boost its own internal development capabilities. Even if its partners fail, it will still gain the benefit for itself. If they succeed, then the entire ballgame changes for Salesforce.com, transforming it from a single enterprise application company into the platform for an entire new generation of enteprise application providers.