Software Development Methodologies
28 February 2025 18:04
Waterfall
()It’s a SDM which is used when the project requirements and end goals are clearly defined and which
wont change.
()Used with for large scale projects with large timelines
()The flow of the Workflow only flows or goes in one direction
()Analysis
()Design
()Development
()Testing
()Release and Maintenance
Agile
Agile is a flexible approach to software development that focuses on continuous improvement,
customer collaboration, and adaptive planning instead of rigid processes.
How Agile Works
• Iterative Development → Work is done in small, manageable cycles (iterations).
• Customer Collaboration → Frequent feedback ensures the product meets real needs.
• Adaptive Planning → Plans evolve based on changing requirements.
• Self-Organizing Teams → Teams decide how to complete work efficiently.
• Continuous Delivery → Small, working updates are released frequently.
Why Use Agile?
✔ Faster delivery of usable software
✔ More flexibility to adapt to changes
✔ Better collaboration between teams and customers
✔ Higher product quality through continuous testing
Scrum
Scrum is a structured way to get work done in small steps. It helps teams break big projects into short
cycles (Sprints), usually 1-4 weeks long. Each Sprint delivers a small, usable part of the project.
There are three key roles:
• Product Owner → Decides what needs to be built.
• Scrum Master → Helps the team follow Scrum rules and removes obstacles.
• Development Team → Builds and delivers the work.
Teams meet daily for a quick check-in (Daily Scrum), and at the end of each Sprint, they review their
work and improve their process. Scrum helps teams stay organized, adapt to changes, and deliver value
step by step.
GIT Page 1
Kanban
Kanban is a visual work management method using a board with columns to track task progress and
prevent overload.
How Kanban Works
Visualize Work → Tasks move through a Kanban Board (e.g., To Do → In Progress → Done).
Limit Work in Progress (WIP) → Prevents overload by capping ac ve tasks.
Pull System → Workers pull tasks when ready instead of having them assigned.
Continuous Flow → Work progresses without fixed Sprints like in Scrum.
Why Use Kanban?
✔ Identifies bottlenecks, improves efficiency
✔ Flexible—no fixed iterations
✔ Supports continuous delivery
✔ Ideal for support, maintenance, and ongoing work
Extreme Programming
Extreme Programming (XP) is an Agile software development method that focuses on high-quality code,
teamwork, and adaptability through frequent releases and customer collaboration.
How XP Works
Frequent Releases → Small, working updates are delivered o en.
Test-Driven Development (TDD) → Write tests before wri ng code.
Pair Programming → Two developers work together on the same code for be er quality.
Continuous Integration → Code is merged and tested frequently.
Customer Collaboration → Customers give feedback throughout development.
Simplicity & Refactoring → Keep code clean and improve it regularly.
Why Use XP?
✔ Delivers high-quality, bug-free code
✔ Encourages teamwork and fast feedback
✔ Adapts to changing requirements
✔ Ensures continuous testing and improvement
TDD
Test-Driven Development (TDD) Explained Simply
Test-Driven Development (TDD) is a way of writing code where tests come first before the actual
implementation. The goal is to ensure that the code is correct, reliable, and easy to maintain.
It follows a simple Red → Green → Refactor cycle:
1. Red → Write a test first, even though the actual code doesn’t exist yet. The test fails (red).
2. Green → Write just enough code to make the test pass (green). No extra features, just what’s
needed.
3. Refactor → Improve the code (clean it up, optimize it) without changing its behavior. The test
should still pass.
🔄 Repeat this cycle for each new feature or function.
GIT Page 2