What is the purpose of SDLC

SDLC - Software Development Lifecycle

What is the SDLC?

The life cycle of software development S.oftware D.evelopment L.ife C.ycle = SDLC) is a Quality assurance process. It divides software development into phases that must be passed through for every change. A distinction is usually made between the following phases:

  • Requirements analysis
  • planning
  • Software design (e.g. architecture design)
  • development
  • Test with final deployment if necessary

These phases also fit into the classic "plan - code - build - test" cycle.

SDLC toolchain

To implement these phases, different tools are required, which ideally work together in a tool chain. An example of a simple toolchain looks like this:

  • Requirements analysis and planning: with the help of issue trackers and wikis, information is collected and tasks are defined. Tools are e.g. Redmine, JIRA, Confluence or Smeagol.
  • Development, test and deployment: these phases are difficult to separate from each other with regard to the tools, as the tools interact very strongly with each other. However, these tools are required:
    • Source Code Management: SCM manager (Management of Git, SVN and Mercurial repositories.)
    • Build Server and Deployment: Jenkins
    • Artifact repository: Nexus repository
    • Issue tracking and wiki: see requirements analysis and planning

These tools can easily be operated in the Cloudogu EcoSystem platform.

Download the EcoSystem now

Would you like to set up the CES yourself? No problem, we will provide you with the Community Edition as a free download.

Download CES

SDLC and Agile

The SDLC goes very well with agile working methods, as it contributes to quality assurance through the recurring phases. For every change, agile projects go through the phases of the SDLC in every iteration, with Scrum in every sprint. This ensures that every change is planned, designed, developed and tested.

Advantage of the agile life cycle

Agile work is characterized by the fact that an “all-encompassing” requirements analysis is not carried out at the start of the project. Rather, the issues considered most important are addressed first. These are identified, evaluated and implemented through continuous analysis, prioritization and planning in the course of the project. However, there is also a disadvantage to this approach.

Disadvantage of the agile life cycle

Both agile methods and the SDLC have the disadvantage that in their basic form they do not have an institutionalized customer focus. The SDLC ends after the deployment and is therefore not related to customers. Agile methods generally have a strong focus on customers, but there are no processes integrated into the methods to obtain feedback from customers. So it is up to you to find solutions. In Scrum, for example, stakeholders can represent the opinion of customers when feedback cannot be obtained directly. That's because Scrum is essentially about development. For a holistic approach that encompasses the entire life cycle of a software product, further ideas are required.

SDLC and DevOps

Both SDLC and DevOps encompass both the development and the operation of software and aim to improve the quality of software. The big difference, however, is that SDLC is a process for software development, while DevOps describes a culture or mindset that is lived in companies. Despite these different approaches, it is not a contradiction to use the SDLC process in the context of DevOps, e.g. by establishing a continuous delivery process.