Software Development Life Cycle (SDLC)

Most software development processes are a mix of established practices.

Software Development Lifecycle (SDLC) is an umbrella term for organizing these practices into methodologies.

Which proccess is best depends on the project.

Caution advised - good stats are hard to come by.

Paradigms

Linear

Focuses on planning and documentation.

Summary

Principles

Works well when:

Usage Examples:

Advantages:

Disadvantages:

Methodologies

Waterfall is by far the most common linear methodology.

Iterative

Focuses on development in short cycles and flexibility.

Summary

Principles

Works well when:

Usage Examples:

Advantages:

Disadvantages:

Methodologies

Agile is the most common iterative methodology. It is also an umbrella term for many practices.

Others:

Continuous

Extends on iterative development by focusing on rapid feedback loops and continuous integration and deployment.

Summary

Principles

Works well when:

Usage Examples:

Advantages:

Disadvantages:

Methodologies

DevOps is a combination of development and operations. DevSecOps is a combination of development, security, and operations. Brings focus to security throughout the process.

Domain Activities
Development Design, develop, test
Operations Deploy, monitor, scale, maintain
Security Assess risk, penetration testing, threat modeling

*Testing spans multiple domains.

GitHub Actions - build and deploy process.

Let's try breaking it by putting a typo on the theme for the _config.yml file.

... could have avoided the break if there were tests in our CI/CD pipeline.