Software platforms can live and die on the strength of their developer communities. Just ask Microsoft. Remember Steve Ballmer's "developers, developers, developers" speech? As staunchly proprietary and hostile to open source as folks are up in Redmond, they're not dumb enough to deny the huge role ISVs have played in making Windows the dominant desktop OS.
Why should hosted apps be any different? As software begins its transition from the desktop to the Web, SaaS vendors and other online businesses are rediscovering what traditional software players knew all along: It pays to nurture an active developer community. That's why Salesforce.com began promoting itself as a developer platform early on, and why today even a seemingly frivolous service like Twitter is encouraging independent developers to build on its back end.
[ Cut straight to the key news for technology development and IT management with our once-a-day summary of the top tech news. Subscribe to the InfoWorld Daily newsletter. | Looking for deep insights on Java development? Check out JavaWorld.com. ]
What's the point of Twitter, you ask? Who knows -- maybe some enterprising coder will come along with an add-on application that can finally answer that question for you.
But unlike desktop software, opening a Web-based app to third-party developers isn't as simple as just offering a few APIs. The unpredictable nature of the Net exposes SaaS providers to challenges that OS vendors never had to confront. And in this early stage of cloud computing, models of success are hard to come by. As Twitter is finding out, providing a stable development platform for a large-scale Web-based service is harder than it sounds -- and the independent software developers are watching.
Twitter's growing pains
The biggest challenge facing anyone who wants to create a developer community is giving developers a reason to join in. Software development is no Field of Dreams, and just because you build it doesn't mean anyone will come. For example, few open source software projects actually enjoy the idealized, community-based development model that we're taught to expect. In most cases, the majority of code comes from a few key developers who were with the project from the beginning; outside contributions are rare.
So what's the best way to encourage third parties to add value to your software platform? Money, of course. The ideal independent software developer -- known in the industry as an ISV, or independent software vendor -- is an entrepreneur, someone who can recognize the untapped opportunities inherent in your platform and translate them into marketable products. The developers who access the Twitter APIs aren't just launching projects, they're launching small businesses.
But when you market your service as a business opportunity, you have to be able to hold up your end of the bargain. The invention of the telephone created dozens of new industries, from telemarketing to 24-hour tech support. Now imagine where all those companies would be if the global telephone networks regularly went offline for hours at a time. Poof!
Unfortunately for Twitter, uptime has never been its strong suit. For avid Tweeters, the infamous "fail whale" -- the image displayed when Twitter.com is experiencing technical difficulties -- is an all-too-familiar sight. Add a recent spate of DDoS attacks into the bargain, and the result is a painfully unreliable service, and by extension, some less-than-thrilled ISVs.
ISVs are along for the ride
Paul Kinlan of Twollo.com hit the nail on the head when he explained the problem to IDG News Service: It's not just the downtime that hurts, but who gets blamed for the downtime. "We are the interface to our clients, not Twitter," Kinlan says, "and we have to actively manage our customers' expectations of Twitter. We lose business when Twitter is down."
As a result of the recent Twitter outages, Kinlan was forced to issue refunds to unhappy customers who had paid for the premium version of Twollo.com's add-on service. It seems premium pricing just doesn't seem worthwhile when even the basic level of service isn't available.
This is the dilemma facing developers who hitch their fortunes to the APIs of burgeoning online services: Where your platform provider goes, you must follow. When you develop software for Windows, Mac OS X, or another traditional OS platform, each end-user is an individual. If one copy of the software crashes, other users aren't affected. A program that runs slowly on one user's PC might be blazing fast on another's. But each Twitter slowdown or outage affects thousands of users at a time -- or all of them at once. In turn, each and every ISV stands to be the fall guy for its own customers. "We know it's not your fault," they'll say, "but we won't be back."
And service outages aren't all that customers have to fear. As online services consolidate ever more uniquely identifying user data, privacy concerns are at an all-time high. In 2007, Facebook came under fire for invasive practices related to its Beacon online advertising system, and a new lawsuit alleges that the social network takes advantage of user data in ways that go far beyond what casual subscribers might imagine. If your third-party application relies on data provided by Facebook, someday you might find yourself called to account. If you can think of a way to limit your exposure in that scenario, let me know.
Is cloud computing mature enough for a developer ecosystem?
Given the challenges inherent in delivering large-scale online apps and the capital investment necessary to make them work, how many companies truly have the wherewithal to offer a Web-based developer platform that's as robust as a traditional OS? Google has invested billions in its online infrastructure, but that hasn't saved it from occasional serious outages. Banks have billions of dollars at stake, but not even they have been immune to phishing attacks and identity theft.
For some, the potential market created by a service as massively popular as Twitter is reason enough to get on board, whatever the risks. But unless you're prepared to deal with all the painful realities of this nascent software market, you'd be well advised not to put all your eggs in one basket. Today's consumers of online services are a fickle bunch, and if the fallout from the Twitter outages is any indication, the transition from a desktop software market to a fully online one might take a lot longer than some will have you believe.