Characteristics of Web Development
Web development has characteristics that make it especially daunting for an organization to manage. The chemistry of web development brings together three key ingredients: a group of highly skilled people, a stream of incoming projects, and a business environment that rewards rapid execution and punishes mistakes. Understanding some of the workings of web development will help to clarify the role that workflow plays in improving productivity and facilitating a smooth relationship among people, projects, and the business environment.
Developing web assets involves many people with differing skills spanning many steps over an extended period of time. Web assets take many forms, touching our senses in varied ways: image, text, color, video, sound, layout, logic, linkage, and design. This multifaceted nature of the assets introduces inescapable complexity into the development process. Producing a rich visitor experience on a web site requires a near-perfect blending of disparate skills. A project sponsor confers blessing and provides resources. A marketing genius cooks up a scheme to attract a steady stream of visitors. A server-side Java developer encodes the logic behind a page. An artist designs the backdrop and design elements that inform our visual context. A writer selects words to evoke thoughts that guide us through the web visit. A lawyer keeps a legal watch for questionable material. A tester verifies that everything functions as a seamless experience. This blends the work of many contributors: a sponsor, a marketer, a developer, an artist, a writer, a lawyer, and a tester.
Many people contribute to the development effort. Contributors are physically separated, sometimes by multiple time zones. Skills vary widely, in terms of ability level and skill type. Distractions abound in the hectic world of web development. Consequently, tools must be easy to use. In particular, tools need to satisfy the needs of highly technical developers, as well as less technical folks that deal almost exclusively with web content, especially for the "creative" folks: writers and artists.
A project forms the common framework in which a group of talented contributors collaborate to create the finished product. The goal might be relatively modest, such as a repairing a misspelling in a corporate announcement on a high-traffic web page. It could be more ambitious, such as introducing an Olympics memorabilia section on an auction web site, combining the efforts of developers, artists, marketers, and business development hotshots.
A successful project fuses the team's accumulated knowledge into machinery of the web. Through collaboration, the process of web development distills and refines the collective wisdom of the team into the web assets. When completed, the web assets run unattended on the production web site, ultimately embodying the creative knowledge and energy of the team.
The challenge for the development infrastructure is to make the collaboration run as smoothly and efficiently as possible. For instance, an asset is often sensitive to its context. Because of this, a project to modify or create context-sensitive assets needs to make sure that the developer can see the effect of a change in the appropriate context. For example, a graphic element is often placed on a page juxtaposed against another design element, such as another graphic. Let's suppose that elements don't align properly. A specialist assigned to the task must be provided the context in which to make the change. For example, it isn't enough to merely attach the offending file into an email message that says, "Hey you! The blue arc in this needs to be nudged up and to the right because it doesn't line up with the continuation of the arc in its adjoining image." Nor will it be enough to attach all the images to the email because the page into which the images are placed matters. Solving this kind of problem with an asset requires the appropriate context in which to make the fix. Solving this problem and also confirming that the fix has been done requires viewing files in their proper context.
In this regard, web assets are similar to source code assets, where context has a strong influence. Just as a source code file uses the context defined by header files, and just as it provides linkages for other code files, a graphic asset uses its enclosing page for placement information as it juxtaposes against other elements on the page. The challenge is to provide a way for many people to collaborate on many assets in a tightly integrated manner. We'll see later how separate workareas provide for a collection of changes, and we'll see how this can be implemented within a workflow process.
Multiple people collaborate in multiple steps and must do so as efficiently as possible. As with any multistep job, the time can be divided into "work-time" and "wait-time." It is work-time (also known as think-time) when the contributor does his part to advance the progress of the job as a whole. This is time spent in Photoshop altering the color and shape of a graphic element, or it is time spent reviewing a source code change. Sometimes, especially with multiple collaborators, work-time can be overlapped so that the overall duration of the job can be reduced. In technical terms, there is a critical path, where the sum of the work-times along the critical path represents the shortest possible time in which the job can be completed. We'll define the shortest-possible time for a job as the sum of the work-times along the critical path.
In many typical jobs, the actual time is often much longer than the shortest-possible time. We refer to the difference as wait-time. Consider the example from the introduction. The structure of the job is simple: a task for a developer to create new web assets, followed by a task for a reviewer to approve or not approve the changes, followed by a task to present the approved work to the originator. A delay anywhere along the chain delays the completion of the job by a like amount.
Web development is a people-intensive activity. Although computers obviously play an important role, people are almost always the scarce resource and the gating factor for success. Notification minimizes wait-times by making a person aware of an incoming task as soon as it is ready. Factories in early nineteenth-century America drove down production costs by improved efficiency through the use of the factory assembly line, combined with related innovations of interchangeable parts and skill specialization. In the same way, a workflow and its interrelated tasks act like a virtual assembly line.
The work products "flow" from person to person, as defined by the workflow definition. Just as an assembly line in a factory physically arranges the flow of partially assembled goods to move past people at workstations, a workflow moves web assets through various stages of completion and approval through a predefined set of steps. Like physical locations on a factory floor, the workflow steps relate to the requirements of the procedural flow as codified in the workflow definition. These correspond to checkpoints required by the business and organizational environment. For example, Dana's workflow embodies a distinct step where the web developer's work is reviewed and explicitly approved. This is analogous to an inspection station in a physical assembly line.
Web development differs in one important respect from physical manufacturing processes. There is an overlapping mixture of quick turnaround and long-term projects, which means that a given person may be involved in several projects at the same time. Different people participate in each project, and it becomes impractical to arrange people contributing to successive steps to be physically adjacent. In comparison, the assembly line boosts efficiency by arranging manufacturing steps into physical proximity. Despite physical separation, the workflow binds the participants together.
The rate at which assets change to keep up with the pace of business continues to accelerate. Even as the different skills come together to create more elaborate web properties, the speed at which people and organizations are expected to move continues to increase. In part, competition drives the pace. If technology allows a company to move quickly, then the company will do so, or the competition will pull ahead.
A workflow reinforces an organization's ability to codify its key business processes. A workflow adds a process infrastructure to assist the members of the organization to ensure that key steps in the process are followed. For example, a workflow ensures that all content deployed to the production site has been formally reviewed and approved by a quality-assurance team.