Saturday, August 10, 2013

Software can work, really

Facebook and Twitter have shown us that big customer bases are possible. They have also shown us that the software for big customer bases must be reliable, predictable, and without defects.

A long time ago, I worked on a project for a large company that provided software to customers. That software let the customers do business with the company, and let the company get clean data about transactions. The software was, in effect, a large data entry system (complete with verification).

The software ran on PC-DOS and MS-DOS. We issued updates on floppy disks (and performed some gymnastics to keep the updates to one disk). We had a help desk to provide around-the clock support to customers. Our software was complicated (partly because the business rules were complicated) and not always easy to use. A help desk was necessary, to keep users happy (and using the software).

We provided this software to 5000 customers, and we thought it was a large customer base. (And it was, compared to a lot of other companies at the time.)

One day, our project manager announced a new goal for our customer base: 50,000 customers. We, the development team, were stunned. But despite our amazement, we did expand the customer base. Such an expansion required a number of changes: we delivered updates electronically, not on floppy disk. We added remote diagnostics to the software. We automated our tests. But some things remained unchanged: the business rules remained complicated, the software remained complicated, and the help desk remained in operation. We expanded it to handle the increased number of calls from the larger user base.

That help desk was expensive.

Compared to today's big social media businesses, a customer base of 50,000 is tiny. Facebook is growing towards 1 billion customers. Twitter and LinkedIn have user bases in the multi-hundred-thousand range.

And they do *not* have help desks.

With a user base of one billion, a failure rate of one percent would result in ten million calls. Staffing a help desk to answer and resolve that many calls (even spread over a few days) is not expensive; it is horribly expensive.

In the mobile world, users must be able to use the software without assistance. But going without a help desk has a price: The software must "just work". If the software fails (for any reason, including server outages), customers abandon it and don't come back.

This is what big user-base operations have taught us: That software can "just work". Facebook, Twitter, and other companies with large numbers of users have successfully designed, built, and deployed software that is reliable and simple enough to use without a help desk (or help pages). Part of their success is due to simple business rules. But part of their success is that their software works as it should; they have developed software with high quality.

No comments: