3 min read

Salesforce Makes On-Demand Apps Easier To Customize

New programming language will let customers modify Salesforce's services or write their applications
It's difficult or impossible to customize most on-demand applications, which has limited the adoption of software-as-a-service. While a standard feature set for all customers can keep prices low, large companies are reluctant to sign up for a service they can't modify to match their processes. hopes to overcome that shortcoming with a programming language called Apex that lets customers make changes to the vendor's apps or write their own.

Apex moves Salesforce into uncharted waters. Mainly a vendor of on-demand CRM applications, it may find itself competing in the crowded market for application development platforms and frameworks, such as IBM's WebSphere, Microsoft's .Net, Oracle's Fusion, and SAP's NetWeaver. It's an interesting play for a company whose mantra is "No Software."

Insurance provider Phoenix Cos., which ran into roadblocks when it tried to customize Salesforce apps to generate proposals for its agents, sees Apex as a way for the vendor "to get a whole lot more functionality into their standard product," says John Caine, technology strategy director.

App Builder
Customers also can use Apex to build completely new applications--even ERP and e-commerce apps--and have Salesforce store and run them in its data center on its Apex service platform. "It's going to enhance [and] streamline everything we're trying to do," says Jessica White, process manager VP at eSpeed, an electronic trading service company. Apex could be used to build reminders and alerts into the company's business processes that run on Salesforce apps, she says.

The Apex platform, built into the upcoming Salesforce Winter '07 release, includes real-time messaging, data relationship APIs, and other middleware. The development language is due to be available in the first half of next year.

Rival RightNow Technologies doesn't offer development tools. Instead, it lets users customize its on-demand services by switching features on or off, which CEO Greg Gianforte describes as "very deep configuration capabilities." SAP offers both approaches: configuration features and programming tools. Salesforce execs emphasize that Apex is very "Java-like" and easy to use. The company is offering it to customers because it's closely tied to the company's SQL database engine and data structures.

The Apex language and platform will appeal more to the IT crowd than the sales and line-of-business managers Salesforce targets with its on-demand CRM apps, and it could expand the vendor's sales to large companies, says Gartner analyst Sharon Mertz. Salesforce's chief strategy officer, Tien Tzou, is quick to point out that customers now include Merrill Lynch and its 6,000 users and Citizens Bank and its 1,800 users.

Time to learn a new language, Dreamforce CEO Marc Benioff says

Time to learn a new language, Dreamforce CEO Marc Benioff says
Jeff Guillot, product and technology executive VP at Hoover's, the business data research company, worries that Salesforce is spreading itself too thin. "They risk distracting themselves, getting too broad-based and too complex," Guillot says. And running lots of additional customer-generated applications could strain Salesforce's infrastructure and degrade service, he says. The vendor experienced a number of service outages in late 2005 and early 2006, problems Tzou attributes to starting up a new data center.

Salesforce execs also take issue with the contention that the vendor's applications are difficult to integrate with other vendors' on-premises apps. They say 45% of the 3.1 billion transactions Salesforce processed in the second quarter were conducted through Web services APIs, meaning they involved a system outside Salesforce.

CEO Marc Benioff, speaking at the vendor's Dreamforce customer conference last week, focused instead on the "dramatic change in customization" Apex will render for Salesforce apps. The bigger question may be whether the world really needs another programming language.