7 Phases in Software Development Life Cycle
Software development life cycle is a structured process to develop good quality software with different phases.
- Planning
- Requirements Analysis
- Design
- Implementation
- Testing
- Deployment
- Maintenance

Waterfall
The traditional linear, sequential approach. The next phase begins until the last phase is completed. This approach is usually less adaptable to change for projects

Agile
The common used model in modern software development life cycle. It mainly emphasizes flexibility, collaboration, and adaptability in responding to change. Compared to waterfall approach, it doesn’t need to wait for the last phase completed to start the next phase. Several methodologies such as Scrum, Kanban, and Extreme Programming.
Scrum
Scrum is a structured agile approach

Kanban
Kanban is a virtualizing approach with continuous workflow structure

Test-Driven Development (TDD)
TDD is a software development technique focused on writing tests before writing code. It can be used in any software development methodology.
The three processes of TDD:
- Red Phase: write a minimal test on the behavior needed.
- Green Phase: write only enough code to make the failing test pass.
- Refactor Phase: improve code while keeping tests green.
figure reference:
- https://datarob.com/content/images/2019/08/SDLC-stages.png
- https://cdn.prod.website-files.com/62fcfcf2e1a4c21ed18b80e6/6491a872e80308db4e9759b4_waterfall_methodology_example_49kw.png
- https://scrumorg-website-prod.s3.amazonaws.com/drupal/inline-images/2023-09/scrum-framework-9.29.23.png
- https://landing.moqups.com/img/templates/business-strategy/kanban-board.png
