IT IS NOW well over five years since the Internet made its first inroads into the homes of American consumers, and e-commerce
was born. Since then, many dot-coms have come and gone, as has the early volatility of the market. Today's e-commerce players
feature a more measured range of products and services from companies with recognizable brands. Consequently, for established
e-commerce businesses, the challenge today is not so much about staying viable, but more about staying ahead of the competition
by providing a fresh, compelling experience for the customer.
For the CTO, this represents a critical challenge. Although there is no shortage of opportunity for adding new Web site
features or the supporting technologies, we must set a strategic course that promotes business growth without allowing our
systems architecture to grow out of control. To remain manageable and cost-effective, systems architecture must retain a reasonable
level of structure and cohesiveness. This takes discipline, because there are countless "solutions" addressing such well-known
"problems" as content management, CRM, and Web site analytics.
In each case, we begin with a real business need, are seduced by industry standards, wooed by vendors bearing "solutions,"
engage the inevitable consultants to provide the necessary customization, and wake up one morning with another strange-looking
limb grafted onto our systems architecture diagrams. There must be a better way.
I believe the answer lies in a single-minded focus on the original business goal. Let's examine the problems mentioned above.
Content management, for example, is often less expensive and more effective when home grown. At TheStreet.com where I worked
prior to coming to Barnes&Noble.com, we demonstrated that an in-house custom solution provided better results at substantially
lower cost than the original system built using a well-known content management product.
In July 2002 after four months of development, we deployed our third-generation content management system, developed completely
in-house and closely integrated with our core business processes. In each case the application was designed from the ground
up based upon the needs and requirements of the in-house creators of content. Although we are not yet using them, our recent
work is allowing us to explore Web services.
CRM is another well-intentioned application wreaking havoc with systems architecture. These systems invariably require a
database implementation that imposes the CRM vendor's view of the enterprise upon us. From a seemingly reasonable beginning,
the typical CRM implementation project becomes a nightmare of custom data transforms, ancillary data feed processes, and missed
deadlines. I recommend a clear-eyed assessment of the real needs of the business. What do you want to learn about your customer?
In many cases you will find that the data you need lies ready-to-use in existing databases.
Web site analytics is an interesting area in which technology capabilities currently far exceed the needs of even the largest
e-commerce Web sites. The danger here is a loss of focus. Sure, I can tag every one of my pages so they report into a central
server when loaded, and I can license a service that will create rich graphics that portray site activity in multidimensional
splendor. Or I can choose to use a local data collection solution, which will require that I invest heavily in hardware to
load and process the massive flood of site activity data. With so much raw data, it is easy to lose sight of the business
goal: understanding in a timely fashion how customers are using the Web site or determining the effectiveness of a marketing
promo.
My recommendation: Start with a clear and narrowly focused definition of what you need to measure. In many cases you will
find that everything you need is already in your Web server log files. Any good scripting language can be used to extract
the desired information. While you are at it, collect some statistics about Web server behavior and feed that back to your
systems administrators, to help them tune the Web farm. You won't be spending a lot of money, everyone will benefit, and you
can maintain consistency with the rest of your technical architecture.