The traditional Systems Development Life Cycle (SDLC) used by many companies is activity- or task-driven. With variations across methodologies, the traditional life cycle typically consists of the distinct phases shown in the following list.
The term "phase" implies that each set of tasks must be completed before the next phase can begin. Typically, different teams handle each phase in the life cycle, and each phase must be heavily documented to allow for a different team to pick up the next phase. As a result, decisions freeze early and flexibility is minimized.
While this model provides a useful way to categorize the types of tasks that occur throughout the development life cycle, it does not recognize or leverage the characteristics of component-based enterprise development.
The major problem with the waterfall process model for component-based development is that it is task-focused rather than process-oriented. This makes it difficult to make the flexible decisions and meet the rapidly changing priorities that are vital to managing an enterprise development project with its multiple components and heavy emphasis on user interface requirements.