Many e-commerce sites lose money for three reasons:
They have been mismanaged, and over-invested based on assumptions of unrealistic growth rates. An annual growth of 30% is fine in most other industries, but many e-commerce companies have had fixed costs that assumed 200% growth.
Sites continue to make it too hard for users to shop. Most sites violate two-thirds of the usability guidelines for e-commerce design. This leads to reduced sales.
Sites have been too expensive to build because everything has been handcrafted on a site-by-site basis.
Imagine if we built physical stores the same way we implement e-commerce sites: You couldn't just call up the local mall and sign a lease on the number of square feet you want. Instead, you'd have to go out and dig mud and bake bricks. You could then use the bricks to build your store, but if you wanted electricity installed, you'd first have to go to the copper mine and get some metal for the wires. And, you'd have to connect the wires to a generator in the back yard, not to the power grid. Not much business would get done under these conditions. Traditionally, each company has had to design and implement all of the services it wanted to offer its website users. This approach leads to incredible waste, unprofitable websites, and lowered usability for several reasons:
Because basic features are designed differently everywhere users go, they never learn how to operate them and thus usability is reduced.
When everyone has to reinvent the wheel, many people invent square wheels. Most projects don't have the time or the talent to do a superb job on all aspects of the user interface, and features outside the company's core competency are most likely to suffer.
Programmers are expensive. Qualified interaction designers are even more expensive. Projects should channel these resources into features that are unique to their site and outsource the rest.
Web Services: The Network is the Website
There are already many examples of site-enhancing services that are hosted offsite. The first example was probably the affiliate program, which lets any site use Amazon or B&N to fulfill orders for books it reviews or recommends. Other examples include:
mailing lists hosted on third-party servers;
offsite search engines, which free the webmaster from having to install and maintain the specialized software; and
syndicated content, such as live stock-quote tickers.
Another classic example of a hosted Web service is providing maps and directions: A company can link to a third-party mapping service to give users directions to company locations from any address. Unfortunately, such generalized maps often don't follow the usability guidelines for store finders and location finders, so it is usually best for a company to have its own graphic designers draw the static maps showing each branch location. However, arbitrary directions cannot be pre-drawn and must be outsourced to a generic mapping service.
Some of these examples are several years old, but many new Web services will come online soon. The most eagerly awaited are probably the unified login promised by Microsoft's Passport (and competing services) and the ability to release funds without using credit cards, which are a stupid technology for Internet payments.
Personal Example: Selling on the Yahoo Store
I recently started selling my report with 207 usability guidelines for e-commerce design through the Yahoo Store. It's somewhat embarrassing to admit, but this sales channel violates several of my own guidelines. For example, you can add a logo to the product page, but you can't give it an ALT text to help users with disabilities. And, the "buy" button is placed too far from the product photo.
Sure, give me ten programmers for half a year and we could build a more elegant solution, but the cost would be excessive since I only have one SKU. Losing money is the worst guideline violation of them all.
Even though the Yahoo Store doesn't have perfect usability for end users, it is reasonably good. Most small websites are probably better off with Yahoo's default set-up than anything they could design themselves. And, most important, the usability for website owners is fine. It took me less than one hour to complete everything and plug e-commerce capability into my website.
The physical reports are manufactured and warehoused at a turnkey service, ALOM Technologies, which easily imported orders from the Yahoo Store into its shipping system. Because several of its other clients use Yahoo as well, the fulfillment company already knew how to integrate with Yahoo Store. That's an important point: When you're working with a more networked and distributed set of web services, it's not just an issue of whether your site can work with outside services one at a time. Multiple outside services must exchange information and work well together.
One, Two, or Many Standards?
For web services to work, it must be easy to combine several hosted services into the desired end-user service. This will drive the need for standardization. If everybody has their own way of doing things, a combinatorial explosion of complexity will restrict web services to individual, stand-alone services.
In principle, a single standard will facilitate the job of building the component services' user-oriented features. At this time, if a single standard were to emerge, it would be Microsoft's dot-net. Microsoft was famously asleep during the Web's early days from 1991 to 1995, but they have been leaders in promoting the view that the network is the user experience and in going beyond stand-alone sites.
Although a single standard has some benefits, there are also risks in letting one company determine the Internet's fate. To preserve competition, it might be possible to support two standards for Web services and ensure that they're interoperable. Much more than two standards, though, and the entire idea will be for naught, as it is very difficult to connect elements following different standards.
In any case, within the next two years, one or two standard systems will evolve. Let us hope that they keep a focus on two levels of usability:
Solid default designs for end users: Most web projects are not good at interaction design. As a result, advanced features easily end up unusable unless the default design is so good that they won't touch it.
Simplicity for web builders: Although it is often overlooked, programmers are people too, and they appreciate increased tool usability. Sure, they can figure out a complex API, but why waste their time?