Skip to content

Software development lifecycle

Learning outcomes

Learners ...

  • understand what a software development phase is
  • understand what a software development lifecycle is
  • can name the two main categories of software development lifecycle models
  • understand which software development phases the course uses
  • understand which software development lifecycle models the course uses
  • understand why the course uses Agile
  • understand why the course needs you to be social
For teachers

Prior:

  • What is meant by 'Software development phase?'
  • Could you name some phases in software development?
  • What is meant by 'Software development lifecycle?'
  • Could you name some models of software development lifecycles?
  • Is coding a social activity?

What is a software development lifecycle?

A way to develop software.

Why is it important?

Using the wrong software development lifecycle will cost you more time and money [Aniley et al., 2024].

Software development phases

Software develops in phases. As there are multiple lists of these phases, here is a list from Wikipedia, with my description of each phase:

Phase Description
Conceptualization Getting an idea
Requirements analysis Develop an understanding of what is needed
Design Create the architecture on how to realize this
Construction Write the code
Acceptance Make sure it is good enough
Deployment Release the finished software
Maintenance Keep the software running
Decommission Archive or delete the software

Software development lifecycles

The software development lifecycle is the way how you transitions between phases, with the most important distinction being a traditional versus an Agile model [Yas et al., 2023]:

Model Description Example Overview
Tradition Go through each phase once, do not go back Waterfall Yas et al., 2023, figure 3
Agile Cycle through each of the phases often, in small changes eXtreme Programming Yas et al., 2023, figure 8, enhanced by https://imgenhancer.app

Note that a software development lifecycle does not need to be a cycle :-)

[Leau et al., 2012] (Table 1) gives a comparison of traditional versus agile software development:

Parameter Agile Traditional
User requirement Iterative acquisition Detailed user requirements are well-defined before coding/implementation
Rework cost Low High
Development direction Readily changeable Fixed
Testing On every iteration After coding phase completed
Customer involvement High Low
Extra quality required for developers Interpersonal skills & basic business knowledge Nothing in particular
Suitable Project scale Low to medium-scaled Large-scaled

Why we follow the Agile software development model

The literature states:

  • In follow-the-sun development, of all the best practices, Agile is the one most often recommended [Kroll et al., 2013]
  • Use Agile [Aniley et al., 2024] (although the paper does not describe where this recommendation is based on)
  • You should implement continuous delivery [Forsgren et al., 2018]
  • You should use Agile, as software development cycles are 25% shorter and project success rates increase by 18% [Pastrana et al., 2025]
  • Use Continuous Integration [Serban et al., 2020]
  • Use Continuous Integration [Visser et al., 2016]
  • In scientific computing, make incremental changes [Wilson et al., 2014]
  • In scientific computing, keep changes small [Wilson et al., 2017]
  • Use Agile for small-medium project development, use traditional models for large-scale project

In this course, we mostly follow the Agile model.

Exercises

Exercise 1: which phases does the course use?

The course website clearly shows how we preferred to group the different software development phases. What are these?

Answer

You can see these at the top menu:

Software development phases, as used in this course

The phases are:

  • Conceptualization
  • Planning
  • Design
  • Development
  • Testing
  • Deployment

Exercise 2: software development lifecycle does not need to be cycle?

In the text it is mentioned:

A software development lifecycle does not need to be a cycle :-)

What is meant by this?

Answer

It highlights that the traditional model is not a cycle at all.

Exercise 3: which lifecycle does the course use?

The course logo gives a hint at our software development life cycle.

What is it?

Answer

The course logo contains a circle, hinting at a cycle. Having (many) cycles is typical of an Agile software development lifecycle.

Exercise 4: what does the course lifecycle require of team members?

We use Agile as most (all?) literature recommends this for our project size. However, Agile has more demands on the team. What are these?

Answer

The team members need 'Interpersonal skills & basic business knowledge'.

It can be found in the table from [Leau et al., 2012] (Table 1):

Parameter Agile Traditional
Extra quality required for developers Interpersonal skills & basic business knowledge Nothing in particular

References

  • [Aniley et al., 2024] Aniley, D. Bitew, E. Alemneh Jalew, and G. Abeba Agegnehu. "Selection of software development life cycle models using machine learning approach." Int J Comput Appl 186 (2024): 36-43.

  • [Forsgren et al., 2018] Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate: The science of lean software and devops: Building and scaling high performing technology organizations. IT Revolution, 2018.

  • [Kroll et al., 2013] Kroll, Josiane, et al. "A systematic literature review of best practices and challenges in follow-the-sun software development." 2013 IEEE 8th International Conference on Global Software Engineering Workshops. IEEE, 2013. Paper homepage

  • [Leau et al., 2012] Leau, Yu Beng, et al. "Software development life cycle AGILE vs traditional approaches." International Conference on Information and Network Technology. Vol. 37. No. 1. 2012.

  • [Pastrana et al., 2025] Pastrana, Manuel, et al. "Best Practices Evidenced for Software Development Based on DevOps and Scrum: A Literature Review." Applied Sciences 15.10 (2025): 5421. Paper homepage

  • [Serban et al., 2020] Serban, Alex, et al. "Adoption and effects of software engineering best practices in machine learning." Proceedings of the 14th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). 2020. Paper homepage

  • [Visser et al., 2016] Visser, Joost, et al. Building software teams: Ten best practices for effective software development. " O'Reilly Media, Inc.", 2016.

  • [Yas et al., 2023] Yas, Qahtan M., Abdulbasit Alazzawi, and Bahbibi Rahmatullah. "A comprehensive review of software development life cycle methodologies: Pros, cons, and future directions." Iraqi Journal for Computer Science and Mathematics 4.4 (2023): 14.

  • [Wilson et al., 2014] Wilson, Greg, et al. "Best practices for scientific computing." PLoS biology 12.1 (2014): e1001745. Paper homepage

  • [Wilson et al., 2017] Wilson, Greg, et al. "Good enough practices in scientific computing." PLoS computational biology 13.6 (2017): e1005510. Paper homepage