oreilly.comSafari Books Online.Conferences.


Have Your Cake and Eat It, Too
With Perl, SupportWizard Avoided the Usual Compromises

by Ed Stephenson

Just how flexible is Perl? Larry Wall calls his creation the "perfect servant," a programming language so accommodating that it allows--in fact, forces--developers to rely on their creativity. The focus becomes not the problem itself, he says, but the person solving the problem. When Integral Solutions Corporation (ISC) in Redwood City, California used Perl--and nothing but Perl--for an enterprise class help-desk application called SupportWizard, they provided an extraordinary illustration of Wall's axiom at work.

Four years ago, ISC set out to tackle what their engineers now admit was a rather bold plan. The company wanted to develop a Web-based customer support solution with high-end functionality comparable to the best available--and sell it at one-fifth the price. They wanted an application so quick and reliable that it could be installed in minutes and deployed in days, and yet they wanted something thoroughly customizable, both through the Web (look and feel), and with a completely exposed API (for functionality).

"That was really the marketing folks saying, 'We want to have our cake and eat it, too,'" recalls Jocelyn Earl, ISC's V.P. of Engineering. "They wanted it to be better, faster, and cheaper. We looked at each other and said, 'Well, how are we going to do that?'"

With Perl, ISC engineers delivered everything marketing asked for, and then some. SupportWizard, it turns out, is so powerful and easy to use that, although it was developed with mid-range businesses in mind, the application's greatest growth in sales today is with Fortune 500 companies like AskJeeves and AT&T.

Immediate Gratification

Web-based customer support is high on the list of many corporations these days as a way to replace expensive, labor-intensive, 24-hour 1-800 help lines, and all the extended phone conversations, walk-throughs, and callbacks required to keep customers happy. Good help-desk solutions let users access a database of support information via the Web, with a full text search so they can find solutions to known problems. Yet, setting up a comprehensive support system to match the rest of the corporate Web site or Intranet can take weeks or months to develop and cost more than $50,000. Some support systems go as high as $1 million, and then take months to deploy.

"Our team at ISC had used pretty much every help product out there, and the thing that we really hated about all of them is that they were so difficult to modify," Earl explains. "If you wanted to add a new choice field, you had to submit a request to MIS two weeks ahead of time. You practically had to plan a budget for it. We wanted SupportWizard to provide immediate gratification: You want to change something, click-click, it's done."

How would ISC deliver on lofty intentions to sell such a high-end application for under $10,000 without submitting to the usual compromises--simplicity versus power, cost versus functionality? While deliberating the use of different programming languages, Earl saw an article that said Perl had been banned from a programming contest sponsored by UCLA's Computer Science Undergraduate Association. Apparently, the one student using Perl vastly outdistanced competitors using C, C++, and Pascal. As it turned out, the article wasn't accurate about why Perl was excluded from future competitions, but Earl was sold anyway. Although very few full-blown applications were written in Perl at the time, ISC would try it out.

Along with quick development time--the key factor in allowing ISC to produce such a low-cost package--Perl let them have their proverbial cake in several ways. Having SupportWizard run on multiple operating systems such as Linux, Unix, and NT was no problem. Inbound and outbound email integration for automatic response was a breeze because the Perl library modules did 90 percent of the work. And Perl's DBI layer provided multiple database compatibility for the application.

Learn how large and small companies are putting Perl to work by reading more Perl Success Stories.

"When we first evaluated using Perl for this project, it almost seemed too good to be true, and we were worried that its flexibility would cost us in performance," Earl admits. "There were claims that Perl's processing speed was only half as fast as C++, but what the customer cares about is the performance of the whole application, including the back-end database. We ship SupportWizard with MySQL, one of the world's fastest databases, and benchmarks show that 85 percent of the CPU time is spent in the database. So, even if Perl is half as fast as C++, the impact on overall performance is less than 10 percent. Actually, Perl improved performance because it's given us the time to concentrate on removing the bottlenecks."

Fully Exposed

Unlike traditional help-desk products that add a Web front-end to proprietary client/server architecture, SupportWizard is a pure Web application. Companies that deploy it can change data fields, choice tables, user groups, escalation features, menu items, and even SupportWizard's look and feel, directly at their Web site with a simple point-and-click interface.

That much ISC could have done in other programming languages, Earl says, "although it would have been harder." But ISC's ability to add completely customized functionality through an exposed API that is extremely easy to use was an attribute Perl alone provided. ISC first created an API for all the low-level functions and then built the GUI on top of it. Because SupportWizard ships with the compatible version of Perl, the time it takes to write an API program is the time it takes to boot up the text editor and type in a line. There's no need to maintain a compatible set of compilers and libraries.

"We wanted to empower users to customize the system without spending weeks setting up a development environment," Earl explains. "Everything is exposed via the API. By definition, you can get at everything. You don't even have to bring the system offline." That's a powerful feature for people like Nick Baggarly, Quality Engineering Manager for AskJeeves, who remarked that, "It's amazingly configurable. I can make changes to a live database on the fly and feel comfortable doing it."

Earl suggests the API serves as a "safety net," but it's something, he believes, that 95 percent of ISC's customers will never need because SupportWizard's biggest selling point is its speed of deployment. ISC's newest customer, Sharp Technology, got the application installed and completely customized (including online documentation) in just three days, with no break in routine.

Surprising Developments

Perhaps that's why, among the more than 100 companies that have purchased SupportWizard, Fortune 500 companies have been among its biggest proponents. "The fact that SupportWizard has done well in large corporations has really surprised us," comments Bridget Conrad, V.P. of Business Development. "It starts off with a department using it 'for a few months' while they're waiting for the MIS solution to come on line. Then other departments hear about a powerful tool that 'just works,' and doesn't need any maintenance, so they start using it. After three months, half the company is using it and it's doing everything they need."

Isn't ISC concerned that SupportWizard is too much of a bargain for companies like Chevron and 3Com?

"You can argue that we're leaving a lot of money on the table by being so cost-effective, because these companies are obviously willing to spend a lot more than $10,000 or $20,000 on a customer-support system," Conrad explains. "But we don't see it that way. The first-level manager in the initial department would not have ordered from us in the first place had we been expensive. And being inexpensive has forced us to pay close attention to QA. We simply cannot afford the support costs that come with bugs."

Customers can buy and install the application themselves, or have ISC host them through its ASP option. SupportWizard is free to small companies, universities, libraries, and charities as well as open source organizations--gratitude for what Perl has enabled them to do.

Given ISC's goal to create a low-cost Web-based customer support solution with high-end functionality, Earl says, "either it would turn out that Perl was four times as fast to develop in as other programming languages, and that it was reliable and powerful, and you could write robust applications in it; or we'd just have to give up the dream and say, OK, we're going to develop another C++ program, sell it for $50,000, and hope that our marketing is better than anybody else's." As it turned out, Perl's remarkable flexibility let them have their cake and eat it, too.

Sponsored by: