Waterfall model?
The Waterfall Model is a linear, sequential software development process divided into distinct phases where each phase must be completed before the next one begins.
Steps in the waterfall lifecycle model?
Requirement gathering and analysis
System design
Implementation
Integration and Testing
Deployment
Maintenance
1st stage of waterfall lifecycle?
Requirement Gathering and Analysis: All possible system requirements to be developed are captured and documented clearly
2nd stage of waterfall lifecycle?
System Design: The requirements are translated into a design.
Architects and designers define the overall architecture and identify the main components
3rd stage of waterfall lifecycle?
Implementation: The actual code is written based on the design documents
Turning the system design into a functional program
4th stage of waterfall lifecycle?
Integration and testing: All the components and modules are integrated and tested to ensure that the entire system works as expected
5th stage of waterfall lifecycle?
Deployment: The product is released to the market or handed over to the client.
It may involve installation, customization, and training
6th stage of waterfall lifecycle?
Maintenance: Post-release, the system needs regular maintenance
In order to fix bugs, improve performance, or add new features
Benefits of waterfall model?
Simple and linear
Clear stages and milestones- progress is easy to measure
Suitable for well-defined projects
Drawbacks of waterfall model?
Inflexible: changes are hard to implement once the project has started
Expensive to fix late problems
Long development cycle
What is the waterfall model most suitable for?
Projects where requirements are unlikely to change and clear to understand
When high quality is essential
What is the agile extreme programming model?
A type of agile ITERATIVE software method that promotes adaptability and high customer involvement
Stages of extreme programming?
Identify user stories and requirements
Plant the sprint
Design the solution
Develop new features
Test continuously
Review sprint progress
Sprint retrospective
Release
Repeat
1st stage in the extreme programming model
Identify user stories and requirements
Work closely with stakeholders to gather functional and non-functional requirements
Requirements are often written as user stories
2nd stage in the extreme programming model
Plan the sprint (Sprint Planning)
Break down requirements into tasks
Choose a set of tasks (features) for the current sprint (a short time-boxed development period, usually 1–4 weeks)
Define the sprint goal
3rd stage in the extreme programming model
Design the solution
Decide how the selected features will be built
Focus is on simple and adaptable design, not heavy upfront documentation
4th stage in the extreme programming model
Develop the features
Write code for the selected tasks in the sprint
Developers often work in pairs or small teams
5th stage in the extreme programming model
Test continuously
Perform unit testing, integration testing, and acceptance testing during the sprint
Testing is ongoing, not saved for the end
6th stage in the extreme programming model
Review progress (Sprint Review)
Demo the working software to stakeholders
Collect feedback and identify changes or improvements
7th stage in the extreme programming model
Reflect on process (Sprint Retrospective)
The team reflects on what went well and what needs improving in the next sprint
Focus is on team performance and process optimisation
Last 2 stages of the extreme programming model
Release (may happen after every sprint or set of sprints)
Deploy working software to users or staging environment
Repeat
Move to the next sprint with updated priorities and feedback
Benefits of the extreme programming model?
Highly adaptable- responding quickly to changes
Frequent communication
High quality focus
Customer Collaboration
Drawbacks of the extreme programming model?
Requires experience team members
Intensive collaboration can lead to burnout
May lack documentation due to a focus on immediate coding
There can be uncontrolled changes in requirements
What is extreme programming most suitable for?
Small to medium-sized projects
Because requirements can change and customer involvement is high