What is Software Development Lifecycle?
7-9 minutes
Software development life cycle (SDLC) (also referred to as the application development life-cycle) is a process for planning, creating, testing, and deploying a software system. The system development life cycle framework provides a sequence of activities for system designers and developers to follow. It consists of a set of steps or phases in which each phase of the SDLC uses the results of the previous one.
The SDLC adheres to important phases that are essential for developers—such as planning, analysis, design, and implementation. Like anything that is manufactured on an assembly line, an SDLC aims to produce high-quality systems that meet or exceed customer expectations, based on customer requirements, by delivering systems that move through each clearly defined phase, within scheduled time frames and cost estimates.
Traditional / Waterfall / Iterative / Agile / XP /Scrum
There are a number of SDLC models or methodologies that have been created, such as waterfall, spiral, Agile software development, rapid prototyping, and etc.
A traditional software development life cycle is composed of a number of clearly defined and distinct work phases which are used by systems engineers and systems developers to plan for, design, build, test, and deliver information systems. For example, the waterfall model focuses on complete and correct planning to guide large projects and risks to successful and predictable results
Few people in the modern computing world would use a strict waterfall model for their SDLC as many modern methodologies have superseded this thinking. Some will argue that the SDLC no longer applies to models like Agile computing, but it is still a term widely in use in technology circles. The SDLC practice has advantages in traditional models of systems development that lends itself more to a structured environment. The disadvantage of using the SDLC methodology is when there is a need for iterative development or (i.e. web development or e-commerce) where stakeholders need to review on a regular basis the software being designed.
SDLC can also be described along a spectrum of agile to iterative to sequential methodologies. Agile methodologies, such as XP and Scrum, focus on light weight processes that allow for rapid changes (without necessarily following the pattern of SDLC approach) along the development cycle.
Traditional vs Agile Approaches
The traditional Project Management (waterfall) approach is linear where all the phases of a process occur in a sequence. The approach depends on predictable tools and predictable experience. Each and every project follows the same life cycle which includes the stages such as feasibility, plan, design, build, test, production, support, as shown in the figure below.
The entire project is planned upfront without any scope for changing requirements, such as Waterfall are all rigid and highly controlled. They outline distinct stages for project planning from start to finish and assume that you have all the requirements and information you need upfront. The following table summarizes many of the differences between Scrum and traditional project management models.