Web-based applications pose unique challenges to developers: “first to market”, “marketing the right product or service”, and “making the product sticky”. To “make the product sticky”, that is, to keep customers inside your application and keep them coming back, it is important that the product delivers high value, all the time, with acceptable quality. Under the constraints of scope, schedule, and resources, quality is often sacrificed. A product must have an optimal mix of value, stickiness, and quality to survive in the web marketplace.
Web development is in its infancy. Often developers are faced with difficult choices between languages, tools, and hardware. Most web development tools are in their Beta phase and have no user support. Development complexity increases in the open source environment where the ownership of the tools is not clearly defined. Adequate testing of a web application for usability and scalability further insures product “stickiness” and thus is very critical.
Our products and services are at increasing risk in the Internet age:
* We have new markets with inexperienced providers and customers.
* Our customers are moving targets.
* Accelerated time-to-market stresses our seasoned product generation processes.
* The competition forces us to pull up release schedules by weeks or months.
* Customer tolerance for defects has dropped precipitously. Customers can and will go elsewhere if we fail to meet their expectations.
We need new processes that are "light," nimble, and flexible to the competing pressures of resources, time, and delivered features.
In an effort to choose a suitable lifecycle for its Web-based development, Hewlett-Packard evaluated widely used software lifecycles. Iterative lifecycles seem well suited to Internet speed as they allow constant user feedback and repetitive quality assessment. In particular, development teams across Hewlett-Packard and Agilent have switched to an Evolutionary lifecycle (EVO) for its strengths in user feedback, risk analysis and mitigation, and product releasability to meet “first to market" challenges. Results range from "schedule visibility" to "3X productivity" and "best in class." Although, EVO requires more attention to process than other lifecycles, it provides an early focus on every aspect of product development and delivery.
Of the various iterative lifecycles, EVO is best suited to managing all the risks cited above - simultaneously. It does so through a discipline of continuous process improvement, at short regular cycles. Plan, do, check, act . . . repeat! The target customer moves, we move; our customer learns, we learn. We can deliver features and quality at the scheduled release date, or prior to that date should circumstances demand it. Process maturity continues to advance cycle by cycle; but with EVO the cycles are weeks vs. months, and we mature those processes that net the biggest return first. EVO adjusts the clockspeed of our product lifecycle to the clockspeed of the marketplace, allowing us to avoid the Darwinian fate of organisms and organizations that can't keep up.
Our experience shows that EVO requires an early and adequate emphasis on the entire project planning as compared to other software lifecycles. The user feedback in individual EVO cycles clearly distinguishes EVO from other lifecycles. A work product must meet minimum quality requirements for an adequate user feedback. To meet this requirement, the development team must put in place the build, test, release and customer support processes as early as possible. While it sounds like additional work early in the development phase, it provides an opportunity for changes and improvements as the project scope grows. We have also noted that a well orchestrated decision making process is essential to maintain focus on the customer value proposition.
Bhushan Gupta has been a Software Quality Engineer with the Vancouver Printer Division of Hewlett-Packard Company since June 1997. Recently he has moved to Commercial Publishing Division as a software development engineer and is pursuing software process architecture activities.
Bhushan Gupta was a faculty member in the Software Engineering Department of the Oregon Institute of Technology from 1985 to 1995. He has a MS degree in Computer Science from New Mexico Institute of Mining and Technology, Socorro, New Mexico and is a member of American Society for Quality.
Steve Rhodes is an internal consultant for Hewlett-Packard Company, developing and delivering key process technologies into HP's R&D organization. His primary areas of delivery are product lifecycle, software architecture, and configuration management. He has been with Hewlett-Packard for 20 years, as developer, manager, architect, and consultant. Steve has an MS of Computer Science from the University of California, San Diego, and BS in Mathematics from Northwestern University of Louisiana.