Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

E-This and E-That


January 2001: E-This and E-That

E-business, e-commerce, e-this and e-that: We are living and working in a B2x world. From B2B (business-to-business) to B2C (business-to-consumer) and even B2G (business-to-government), the dot-coms are involved in all manner of trade and are defining a New Economy that has become everyday fodder for the mainstream press. Having spent five months designing user interface architecture at a dot-com start-up, I can attest to the frenetic demands of this environment (see "Cutting Corners," Management Forum, Feb. 2000). Not everybody will face the challenges of management within the fast lane of the Web world, but we can all learn from the perspective and pointers provided by Tony Wasserman, this month's guest columnist.
—Larry Constantine

Thousands of companies have sprung up with the goal of transforming business-to-business and business-to-consumer markets. Unlike traditional companies, where information technology is largely behind the scenes, in dot-coms, the technology is front and center. If a company's Web site is down, business stops altogether—no transactions and not even advertising revenue. If the site is slow, unstable or difficult to use, it quickly drives customers away, never to return. The Boo.com fashion site was but one well-publicized example of this phenomenon.

While the technology is still evolving, consumer expectations for e-commerce Web sites are already quite stringent. Customers expect 24-by-7 availability, secure and reliable end-to-end transactions, acceptable performance at modest connection speeds, and a visually attractive, easy to use and easily navigable site.

Web applications must connect a wide variety of client-side browsers and devices to multiple layers of application software and databases running on the server side, which potentially includes an application server and middleware that provide scalability as traffic to the Web site grows. Sites often include connections to external servers, including those used for content caching, credit card verification, order fulfillment, ad serving, visitor tracking, e-mail processing, file transfer and discussion or chat forums. High availability sites also use multihoming to increase reliability and site performance. High-volume, e-commerce Web sites are among the most complex applications to build and maintain.

Management Challenges
The complexity and customer expectations impose stiff requirements on development, including minimal downtime, extensive attention to software and site architectures, early consideration of information design and user scenarios, careful selection of outside services, and extensive functional, performance and usability testing.

The needed engineering activities often must take place within a "start-up" culture, which emphasizes time-to-market and meeting company milestones to obtain continued funding. There isn't much leeway for error, since every company activity is strongly influenced by when sites go live and by the "burn rate" of investor capital. With the shift from high capital burn rates to an emphasis on near-term profitability, the pressure on developers and managers has increased even more. The tenet that being "first to market" is key to success is still widely held even though hard data doesn't always support it.

The Outsourcing Decision
In many start-ups, the vice president of engineering or the chief technology officer is initially responsible for the site infrastructure and development. However, that individual is unlikely to have strong knowledge in all of the areas related to site development and deployment. In addition, there is a big difference between knowing what has to be done and actually getting it done. This difference is compounded by the difficulty of hiring the development and system administration staff to do the work. Even the best funded and most visible start-ups need months to build their engineering teams.

As a result, top management must strongly consider outsourcing part or all of the development and deployment work, even if the company's long-term plan is to do ongoing development with an internal team. Indeed, some founders make outsourcing decisions even before hiring their technology executive, leaving everyone to live with the consequences of those decisions. The dot-com economy has led to the creation of many different consulting firms that will work on all or part of site development. Of course, each of these firms has its own preferences and specializations, so that one choice may get you a "pure" Microsoft solution using Active Server Pages, Microsoft IIS and SQL Server running on Windows NT platforms, while another will get you a Java-based solution, such as Bluestone Software's Total-e-Business using an iPlanet Web server and Oracle on a Solaris machine. Clearly, these alternatives have significant implications for the ongoing development of the site, as well as for its reliability and scalability.

Other firms may focus exclusively on the site look-and-feel, creating a corporate identity and blending it into a site structure based on an informal description of intended site functionality. Such design firms deliver the visual structure of the system, which may then be passed along to yet another firm responsible for the back end, putting hooks in the HTML code for invoking the various actions, ranging from scripting languages (Perl, Tcl/Tk or Python) to Java Server Pages with embedded scriptlets and calls to JavaBeans and EJBs. Other firms may specialize in functional and/or performance testing of Web sites, using simulated system loads and automated testing tools in addition to real users performing the site functions on a variety of platforms and browsers.

Web-site hosting is also often outsourced as well. Hosting services not only include co-location, but also continuous monitoring of site and server activities. New companies have been created to provide the necessary hardware and middleware, as well as the co-location of services. In principle, it's now possible, though not necessarily a good idea, to have an entirely virtual organization by outsourcing all the development and site hosting.

The advantages of outsourcing are quite apparent, including delegation of tasks to service providers, access to expertise outside the company, and reduced need to hire staff to perform these functions. The potential disadvantages are equally apparent, including reduced control over technical decisions, difficulty in bringing the ongoing development in-house after initial development is completed, and higher costs, particularly when requirements are changed. Nonetheless, the pressures of meeting a tight schedule and building a reliable site infrastructure suggest that it is impractical to do everything internally. In particular, site co-location and visual design should almost always be outsourced. Part or all of the back end development can be outsourced as long as the chief technologist or an expert outside consultant participates in defining some of the key technology decisions, such as, Windows versus Unix, application architecture, database and the like.

Staffing
Hiring and retaining good technical people is hard, but it's often harder in a dot-com company. The reasons are numerous, including:

The need for a broad range of specialized skills. You need access to people who can design Web-based user interfaces, write code in chosen languages, design and administer databases, and select and configure Web servers, application servers, firewalls, routers and load balancers. You also need people who can perform usability, functionality and performance testing. Managers must strike a balance between outsourcing this work and hiring employees and contractors.

A start-up isn't for everyone. Many who are attracted to start-ups may not be suited to the environment with its rapidly changing and often conflicting requirements, long hours and uncertainty about long-term business prospects. They may also have unrealistic expectations about what it takes to create a publicly owned company. At a company with only 15 employees, minimal Web presence, no revenue and only a round of seed funding, I once interviewed a candidate whose first question was, "When is the IPO?" Managers need to assess this cultural fit as part of the interview process.

Absence of loyalty. Within two blocks of the corner of Second and Folsom in San Francisco, you will find hundreds of start-ups. With such density, a developer can easily hop from one company to another. A declining stock market can leave employees with "underwater" options at prices exceeding the current stock price. Signing bonuses and other incentives encourage people to switch companies at the first sign of trouble. Managers, too, are regularly approached by recruiters offering attractive opportunities elsewhere.

Competition. With far more positions than people available, candidates can be selective, evaluating not only the technical work and salary, but also the company benefits, culture, location and policies. Managers must not only evaluate a prospect's technical skills and cultural fit but must also quickly sell the opportunity before the best prospects go elsewhere.

Contractors. Many talented developers prefer to work as contractors, moving from one company and project to another, forgoing benefits but often obtaining small amounts of equity as well as higher take-home pay. Dot-com managers must consider judicious use of contractors, even when they might prefer full-time staff.

New development versus maintenance. Many developers much prefer working on new projects rather than modifying or extending existing code. If original development is outsourced, then it will be harder to recruit for ongoing development when the work is eventually brought in-house. Timing is also important, since you have to start searching for potential candidates early, but hiring too soon will leave your developers with little or nothing to do.

Technical Issues
In dot-coms as everywhere, it's hard to create a defined, let alone repeatable, process for development. Dot-com developers have little use for formalisms or principles of software engineering, but great interest in any tools or techniques that can help reach scheduled milestones. Managers joke about supplying developers with clean T-shirts and pizza to encourage long hours, but this working style has major disadvantages, chief among them that fatigued developers are more likely to make errors.

Steve McConnell's Rapid Development (Microsoft Press, July 1996) provides excellent guidance for dot-com organizations. It lists 27 best practices, many of which are particularly relevant to developers of Web applications, including evolutionary prototyping and development, staged delivery and "signing up" for an unconditional commitment to seeing that a project succeeds.

Managers must pay careful attention to four technical areas that are particularly critical for Web applications: architecture, performance, change management, usability and security.

Architecture. Web applications involve both site infrastructure and software architecture. Site infrastructure includes basic infrastructure, such as the machines that host the HTML code and code generation routines, and extended infrastructure that includes servers providing additional services, such as image caching and payment fulfillment. Software architecture must be designed to accommodate frequent change and redeployment as traffic builds. For example, Web pages built with multiple levels of nested tables, carefully padded for pixel-perfect layout, can be difficult to update.

Performance. Achieving consistent site performance is among the most difficult tasks in Web development, partly because performance is influenced by external factors, including Internet traffic, the performance of extended infrastructure and connection speed. It's also difficult to predict site traffic volume, especially prior to launch. Promotions or unexpected publicity can create huge traffic spikes, even crashing the site. Even without such surprises, performance degrades exponentially with more users, more contention for server resources and larger database volumes.

Load testing tools are needed to simulate various levels of traffic and to monitor the site after it goes live. Scalable architecture and platforms are critical when traffic builds. Food.com and iMotors.com are among dot-coms that had to redevelop sites using different technology.

Change Management. Many sites have parts that are relatively stable and others that change frequently. Both the architecture and change management processes must support the rate of change. Traditional version control and configuration management can be transformed into content management for the various items comprising the site. It is essential to manage individual contributors and to control change authority for the various components. Change management must address which changes will be extensively tested and how updates will be uploaded to production sites. Changes to content cached by an application server from a database may necessitate restarting the application server, which may require redundancy or transaction rollback for the site.

Change management involves a tradeoff between moving quickly and accepting the risks of limited testing. Some changes present little risk, while others must be thoroughly tested. It's essential to have a testing site apart from the production site, with at least four levels of versioning: the production site, the test site, the development site and versions checked out from the development site by individual contributors.

Usability. No company wants its site featured in "Web Pages that Suck" (www.webpagesthatsuck.com), but opinions differ as to what makes a site easy to use and navigate. Whatever it means, usability makes a difference, and users will quickly abandon sites that are difficult to use. Sites differ widely in the percentage of trouble-free transactions. Although live customer support may help, simple processes and fast response are better for successful transactions.

With no user interface standards for Web sites, designers often show off their creativity, sometimes at the expense of modifiability, usability or speed. Project managers should guide those designing the front end, then invest in usability inspections, focus groups and testing with real customers to get an accurate picture of site usability, especially for business-to-consumer sites

Security. Protecting against such vulnerabilities as denial-of-service attacks, security holes in servers and theft of unencrypted credit card numbers is an essential part of Web application development. Site security is such a specialized and complex domain that few dot-coms will have the needed expertise. It would be wise to bring in a specialist to perform a security audit prior to site launch.

Managing development in a dot-com isn't for everyone, but it can be a chance to test the limits and shape the future. For someone with the right constitution in a suitable situation, it can be an intense and potentially highly-rewarding experience.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.