System Development Life Cycle
Phases of System Development Life Cycle (SDLC) are Planning, Analysis, Detailed System Design, Implementation and Maintenance.

Two commonly used software development life cycle are Water fall and Ajax.
Water Fall Development
The waterfall model shows a process, where developers are to follow these steps in order:
- Requirements specification (AKA Verification)
- Design
- Construction (AKA implementation or coding)
- Integration
- Testing and debugging (AKA validation)
- Installation (AKA deployment)
- Maintenance
After each step is finished, the process proceeds to the next step, just as builders don't revise the foundation of a house after the framing has been erected.
There is a misconception that the process has no provision for correcting errors in early steps (for example, in the requirements). In fact this is where the domain of requirements management comes in which includes change control.
This approach is used in high risk projects, particularly large defense contracts. The problems in waterfall do not arise from "immature engineering practices, particularly in requirements analysis and requirements management." Studies of the failure rate of the DOD-STD-2167 specification, which enforced waterfall, have shown that the more closely a project follows its process, specifically in up-front requirements gathering, the more likely the project is to release features that are not used in their current form.
Agile Software Development
Agile software development processes are built on the foundation of iterative development. To that foundation they add a lighter, more people-centric viewpoint than traditional approaches. Agile processes use feedback, rather than planning, as their primary control mechanism. The feedback is driven by regular tests and releases of the evolving software.
Interestingly, surveys have shown the potential for significant efficiency gains over the waterfall method.