0% found this document useful (0 votes)
10 views25 pages

Agile

The document discusses Agile methodologies in software engineering, highlighting its focus on iterative development, customer collaboration, and rapid delivery. It contrasts Agile with traditional approaches, emphasizing flexibility and responsiveness to change, with examples from various industries. Additionally, it covers specific Agile frameworks like Extreme Programming (XP) and Scrum, detailing their principles, practices, and challenges in implementation.

Uploaded by

gfxbranddesign
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views25 pages

Agile

The document discusses Agile methodologies in software engineering, highlighting its focus on iterative development, customer collaboration, and rapid delivery. It contrasts Agile with traditional approaches, emphasizing flexibility and responsiveness to change, with examples from various industries. Additionally, it covers specific Agile frameworks like Extreme Programming (XP) and Scrum, detailing their principles, practices, and challenges in implementation.

Uploaded by

gfxbranddesign
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Software Engineering

Week 4
Agile Method

Agile methods emerged in response to the complexity and inefficiency of traditional


software development.
Focus on:
• Code over documentation
• Iterative development
• Rapid delivery and adaptability
Example:
A startup developing a food delivery app faces changing user demands (e.g.,
adding real-time tracking). Agile allows quick feature updates without long
documentation processes.
Agile Manifesto – Core Values
“We are discovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value”
Agile Values Traditional Approach
Individuals & Interactions over Processes Focus on following strict procedures

Working Software over Comprehensive Docs Heavy documentation before coding


Customer Collaboration over Contract
Customer feedback is ongoing
Negotiation
Responding to Change over Following a Plan Fixed requirements, no flexibility
Example:
A banking system follows a plan-driven approach, requiring detailed contracts before
development. In contrast, an e-commerce app follows Agile, adding features based on user
feedback.
Rapid Software Development

• Businesses operate in a fast-changing world.


Software requirements evolve continuously.
Solution? Use an iterative process with frequent releases.
• Example:
A ride-hailing app starts with basic ride-booking. Later,
features like fare estimation, driver rating, and auto
payments are added based on user demand.
Principles of Agile Method
Principle Description Example
Online education platform
Customer feedback
Customer Involvement gathers student feedback
throughout the process
every sprint
Small releases instead of Social media app releases
Incremental Delivery
a big final product new filters monthly
Team creativity over strict Developers choose their
People, Not Process
rules coding approach
A gaming app adds new
Flexibility to change
Embrace Change game modes based on
features anytime
trends
A fitness app avoids
Keep software and
Maintain Simplicity unnecessary complex
processes simple
features
Where Agile is Most Useful?
(Applicability)

• Product Development – Startups & Software Companies


Custom System Development – Hospitals, Universities, Online Platforms
NOT Ideal for:
❌ Large regulated industries (e.g., Aviation, Medical, Military), where detailed
documentation is required.
• Example:
• Agile Fit: Developing a social media app where user feedback shapes new
features.
• Not Agile Fit: A medical records system requiring strict data security
compliance.
Challenges in Agile Development
• 🔴 Keeping customers engaged throughout development.
🔴 Prioritizing feature changes when multiple stakeholders are
involved.
🔴 Balancing flexibility with long-term software maintainability.
• Example:
A hospital management system needs approval from
doctors, administrators, and IT staff. Each group has
different priorities, making feature prioritization
challenging.
Extreme Programming (XP)

• Extreme Programming (XP) is an Agile software development


methodology that focuses on frequent releases, customer
involvement, and continuous testing. It is called "Extreme" because it
takes Agile practices to the next level.
• In Extreme Programming (XP), stories are used to define requirements,
plan development tasks, and ensure continuous customer involvement.
These stories, usually written as User Stories, describe software features
from the user’s perspective. They help in guiding development,
prioritizing tasks, and ensuring that the product meets the user's needs.
• What are Stories in XP?
• A story in XP is a short, simple description of a feature, focusing on the value it
provides to the user.
• Example of a Basic User Story:
• Story Title: User Login
Story Description:
"As a user, I want to log into my account using my email and password so that I can
access my dashboard."
• This story tells the development team what needs to be built and why it is
important for the user.
Extreme Programming (XP) – A Popular
Agile Method

• 🔹 XP Characteristics:
✅ Frequent releases – New versions every 2 weeks
✅ Continuous Testing – Every feature has an automated test
✅ Pair Programming – Two developers code together
✅ Refactoring – Improving existing code for efficiency
• Example:
A banking app releases security updates every two weeks,
ensuring compliance while keeping up with new fraud prevention
methods.
Types of Stories in XP
• User Stories (Functional Features)
• These stories define end-user requirements.
Example:
Story Title: Reset Password
Story Description:
"As a user, I want to reset my password so that I can regain access to my
account if I forget it."
Acceptance Criteria:
✔ A "Forgot Password?" link should be available.
✔ The user should receive an email with a reset link.
✔ The new password should be securely updated.
• Spike Stories (Exploratory Tasks)
• Spike stories are used for research when the team needs to explore a new
technology or solve a complex problem.
• Example:
• Story Title: Investigate Firebase Authentication
• Story Description:
• "As a developer, I need to research Firebase Authentication to determine if
it meets our security and scalability needs."
• Expected Outcome:
• ✔ A report on Firebase’s security features.
• ✔ A prototype demonstrating Firebase login functionality.
Key Principles of XP

• Communication – Encourages team members to collaborate


closely and share knowledge.
• Simplicity – Focuses on the simplest solution that works.
• Feedback – Continuous feedback through testing and customer
involvement.
• Courage – Encourages making necessary changes, even if difficult.
• Respect – Values every team member’s contributions.
Technical Stories (Backend & Code
Improvements)
• Technical stories focus on improving the architecture, performance, or
maintainability of the system.
• Example:
Story Title: Optimize Database Queries
Story Description:
"As a developer, I want to optimize database queries so that the application runs
faster."
Acceptance Criteria:
✔ Reduce query execution time by 50%.
✔ Implement indexing for frequently used queries.
✔ Ensure all changes are tested before deployment.
The Process of Using Stories in XP
•Step 1: Writing the Story
(With
•The customer (or product owner)Examples)
writes a simple user story.
•Example: “As a user, I want to filter search results by category so that I
can find products faster.”
Real-World Analogy (Online Shopping 🛒)
•“Imagine you are shopping on Amazon. Without filters, you have to scroll through
hundreds of products! But when you apply a category filter (e.g., only
"laptops"), you quickly find what you need.” The user story only describes
this filtering feature.
•Step 2: Estimating the Story
•The development team assigns Story Points based on complexity.
•Example: If the search filtering is medium complexity, it might be 3 points
on a scale of 1 to 5.
What Are Story Points?
•Story Points are numbers used to estimate effort based on complexity, time,
and risks.
•Scale:
•1 point → Very easy (e.g., changing a button color)
•3 points → Medium difficulty (e.g., adding a search filter)
5 points → Very complex (e.g., creating a new payment system)
• Step 3: Selecting Stories for the Iteration
• The team picks the highest-priority stories for the next iteration (1-2
weeks).
• Example: Login feature (5 points), Password reset (3 points), and Search
filter (3 points).
• Step 4: Developing and Testing the Story
• Developers write automated tests first (Test-Driven Development - TDD).
• Example:
• ✅ A test to check if login fails with the wrong password.
• ✅ A test to verify if the email reset link is sent correctly.
• Step 5: Customer Review and Approval
• The customer tests the implemented feature.
• Example: The customer logs in, resets a password, and confirms that the
functionality works.
XP Features
XP Practice Description Example
Define small feature updates An e-commerce site adds new
Incremental Planning
based on customer needs payment methods every sprint

A health tracking app adds


Small Releases Frequent system updates
new exercise features monthly
Automated tests ensure ATM
Test-First Writing tests before writing
transactions work before
Development code
deploying
Improving code for better A gaming app simplifies
Refactoring
performance complex code to reduce.
A cybersecurity company uses pair
programming for penetration
Two programmers work together
Pair Programming testing, ensuring security
on the same code. vulnerabilities are identified and
fixed faster.
Pair Programming – Why Use It?

• 🔹 Two programmers work together on the same code.


🔹 Benefits:
✅ Reduces bugs & improves quality
✅ Encourages team knowledge sharing
✅ Improves problem-solving
• 📌 Example:
A cybersecurity company uses pair programming for
penetration testing, ensuring security vulnerabilities are
identified and fixed faster.
Scrum – A Popular Agile Framework

• What is Scrum?
A structured Agile framework with defined roles, events, and objects.
• Scrum Lifecycle:
Planning Phase – Define project goals
Sprint Cycles – 2 to 4 weeks per iteration
Closure Phase – Final testing & documentation
• Example:
A mobile banking app has a 2-week sprint cycle, adding features
like fingerprint login, instant money transfer, etc
This means that everyone on the team
knows what is going on and, if problems
arise, can re-plan short-term work to cope
with them

Sprints—consist of work units that are


required to achieve a requirement
defined
in the backlog

list of work to be done on the


project.
Example of a Sprint
• Scenario: Developing a To-Do List App
• 🔹 Sprint Duration: 2 weeks
🔹 Sprint Goal: Build a basic To-Do List app with task creation and deletion
features.
🔹 Sprint Backlog (Tasks to Complete):
• User Story 1: "As a user, I want to add tasks so that I can manage my to-do list."
• User Story 2: "As a user, I want to delete tasks so that I can remove completed
items."
• Technical Task: Set up the database for storing tasks.
• Testing: Ensure adding and deleting tasks work correctly.
• Sprint Events:
• Sprint Planning: The team selects these tasks from the product backlog.
• Daily Stand-ups: Short meetings to discuss progress.
• Sprint Review: At the end of 2 weeks, the team demonstrates the working To-Do
List app.
• Sprint Retrospective: The team reflects on what went well and what can be
improved for the next sprint.
• Sprint Outcome:
By the end of the sprint, the team delivers a basic To-Do List app that allows
users to add and delete tasks.
Scrum roles & responsibilities
Role Responsibility Example

A hospital IT director
Defines features &
Product Owner prioritizing telemedicine
priorities
features

Facilitates meetings & A tech lead ensuring


Scrum Master
removes obstacles smooth sprint execution

A team of UI designers,
Codes, tests, and deploys
Development Team backend developers, and
features
testers
Scaling Agile for Large Projects

• Agile works best for small teams, but large systems need
adjustments.
Challenges:
Coordinating multiple teams
Maintaining code consistency
Managing remote developers
• Example:
A self-driving car project requires hardware, AI, cloud, and
safety teams working in parallel—difficult to manage with Agile alone.
Key Takeaways

• Agile = Speed + Flexibility – Ideal for fast-changing businesses.


• Extreme Programming (XP) emphasizes continuous testing and frequent
releases.
• Scrum organizes Agile development with clear roles and sprint cycles.
• Scaling Agile requires adjustments for large, distributed teams.
• 📌 Example:
• A FinTech startup builds a cryptocurrency exchange using Agile.
• A government defense project follows a structured, plan-driven approach due to
regulations.
Summary & Discussion

• What industries benefit the most from Agile?


• What challenges do large organizations face when adopting
Agile?

You might also like