Software development life cycles generally comprise various phases of design improvements, product development, and project management. One of the oldest development processes is called the waterfall model, under which professionals such as designers, engineers, and UX researchers operate in separate teams. Typically, development “flows” through successive stages: requirements specification, design, production, and maintenance. Success is measured by project completion at each stage—according to standards defined by each team—rather than the end results of the product. Because so much effort is spent on technical feasibility, cost, and timeframe of delivery, uncertainty can linger as to whether successive choices and implementations actually result in a product with a successful market life cycle.