Methodologies, although lacking in glamour, are often the process backbone of significant Web development projects. Software engineering methods are currently evolving in ways that impact major Web sites, both developmentally and through ongoing enhancement. Lean/agile methods meld best practices from manufacturing-with team empowerment that would make an organizational development expert proud-and prototyping acceleration. These methods avoid some pitfalls of prior approaches to software development and implementation.
To fully understand the benefits of lean/agile Web site development, it is useful to review the maturation process of other development processes.
Many Web sites have their roots in an organic development process that was logical and useful for relatively simple sites. Well intentioned and technically literate Web site managers and teams built credible and effective sites based on common sense. They listened to stakeholders and employed a natural cycle for building and improving sites. Ad-hoc development, however, is not a method; it reflects the lack of a formal method. Advantages of ad-hoc development come from translating direct dialogue with customers into immediate action. When in-depth planning falls short during the project, quick rework patches things up.
Ad-hoc development works well for small and simple Web projects that have minimal interdependencies to other processes or systems. Sites of a few hundred pages, all generated from HTML, do not need the formality of a methodology to get a successful result. However, this changes when the sites become more complex.
Disadvantages of an ad-hoc approach are significant and painful. Fearsomely high failure rates of projects that involve implementation of new technology or other significant complexity result from:
* lack of clarity in sponsorship.
* unpredictable schedules and costs.
* morphing of requirements and drifting of overall project direction.
* high potential for "surprise factor" upon implementation caused by significant risks overlooked during development.
Projects with an infrastructure that makes sense from the perspective of each individual project often end up being suboptimal, expensive, or even impossible to maintain at an organizational level. The risks of applying no formal methodology to projects can multiply, driving consideration of formal methods for delivering Web projects.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
SDLC and similar methods depend on a rigorous, planned flow of activities guided by analysis and thought. The approach can be applied to Web site development, system integration, and other significant software projects. SDLC assumes that the effective transformation of an idea to a new capability goes through predictable phases and that applying common processes at each phase can increase the success rate. The phases may sound overly regimented, but follow a natural evolution of ideas into execution: ideation, feasibility, definition, design, development, implementation, and close.
Business and technology personnel develop an idea and then carry out analyses to decide whether it's feasible. If not feasible, or if the economics don't make sense, the project is shut down. If feasible, the next phase aims to define the intent of the project by eliciting, understanding, and documenting what the particular capability is intended to accomplish in the form of high-level and detailed requirements. The design phase evaluates different approaches that enable these requirements to be satisfied. The construction or development phase includes working to build out the solution or to customize the implementation of a software package. This work occurs in alignment with the design. It includes testing to ensure that requirements are satisfied. Rollout or implementation puts the solution in place. The close phase wraps up the work and the product goes into maintenance mode. …