This content is part of the Essential Guide: Project prioritization and portfolio management guide for CIOs

software development life cycle (SDLC)

Contributor(s): Alexander Gillis

Software development life cycle (SDLC) is a concept used in project management to describe the stages and tasks involved in each step of writing and deploying software. An SDLC model maps the software development process from its initial planning through maintenance and eventual retirement of the completed application.

An important  goal of SDLC is to quickly and efficiently produce high-quality software in a series of phases that are called steps or phases. The number of steps in an SDLC will vary depending on the business and its software product goals; typically there will be between five and seven steps. For example, at the most basic level, software is designed, developed, tested and then released. Upon release, the software is maintained until it is discontinued.

Various SDLC models exist, and the right one depends on any given project. Several models can be combined into a hybrid methodology. Documentation is crucial, regardless of the type of SDLC model for a given application, and is usually done in parallel with the development process.

For example, the Waterfall model is a linear, sequential approach to the software development life cycle (SDLC) that emphasizes a logical progression of steps. Similar to the way water creates a waterfall by flowing down a creek and over a cliff, once development work in a waterfall model has been completed, it cannot be revisited. The term is often associated with large, monolithic software products developed before the turn of the century.

In contrast, the Agile model for SDLC is a more modular and flexible approach. Agile approaches software development in incremental cycles, called sprints. Each sprint is iterative and code is designed to be modular.

Other popular SDLC models include:

  • rapid application development (RAD)
  • Joint Application Development (JAD)
  • spiral model
  • build-and-fix model
  • synchronize-and-stabilize model
  • V-model

Software development life cycle steps

In general, the SDLC process follows these phases:

  1. Evaluate the existing system. If there is existing software in place, then any deficiencies in that software are identified before its retirement. This can be done by interviewing users and consulting with support personnel, as well as by reviewing metrics gathered through application performance monitoring (APM) tools. This step provides insight on the strengths and weaknesses of the current software and what can be implemented in the new software.
  2. Define the new system requirements. Deficiencies in the existing software must be addressed; moreover, specific proposals are made for improvement, such as new features and functionality. If no previous software is in place, this phase is simply defining the requirements for proposed software. Requirements can include hardware, operating systems (OSes), programming and security.
  3. Design the proposed system. The design phase turns the software specifications into a design plan. Plans are laid out concerning the architecture, hardware, OSes, programming, communications and security issues.
  4. Develop the new software. During the development phase, the code is built, tested, integrated and managed. Developers must obtain and install new components and programs. The code's structure determines which tests are utilized. For example, the software could be built as a set of microservices instead of a monolith structure, which means the software would not have to be regression tested with further updates or iterations. Software testing is a large step in the SDLC, and some models count it as a separate phase from development.
  5. Put the system into use. Deployment can be accomplished in various ways. Some new software is phased in, according to application or location, to gradually replace an old product. In other cases, the old system is shut down, and users cut over to the new system all at once.
  6. Monitor the software. The new software should be exhaustively evaluated for performance and stability. Organizations use logs, as well as APM and other metrics-gathering tools, for monitoring. Any concerns should be reported to the development team for remediation in patches or ongoing software maintenance efforts.
SDLC setup
Creating SDLC

Editor's note: SDLC is also an abbreviation for Synchronous Data Link Control.

This was last updated in April 2018

Continue Reading About software development life cycle (SDLC)

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

What is the best SDLC model for most software applications today?
Why do schools still teach students about Waterfall SDLC?
I always thought the S in SDLC is Software Development Life Cycle?

@Veratax.. You are correct
SDLC as Veretax also mentioned it, I thought S is for Software, but when you look at it, it is still The System of the Software dev life cyc. So I think it still works both ways*!!!
Same thing here, I always heard software. Things change, and people may change things slightly for clarification for others. That is the case with acronyms sometimes.
Currently, it is used more for Software, but originally, it applied to the physical systems (hardware/infrastructure) and also included decommissioning/retirement of the server or machine itself. Now, many companies are using Cloud services for servers so that the company does not have to be concerned with the actual server, just with which applications are being implemented and upgraded on the cloud server farm.
Very useful Post, thank you. But I have a Question.
Where, when, how and why work systems method (WSM) can contribute to the system development life cycle (SDLC)?
What is the best SDLC model for most software applications today?


File Extensions and File Formats

Powered by: