0% found this document useful (0 votes)
33 views12 pages

Ex - No 3

The document outlines the study of four Agile process models: SCRUM, Feature Driven Development (FDD), Lean Software Development, and Extreme Programming (XP). It details their key principles, practices, workflows, and artifacts, as well as provides examples and comparisons of their applications in software development. The aim is to understand and simulate these methodologies to identify suitable projects for each approach.

Uploaded by

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

Ex - No 3

The document outlines the study of four Agile process models: SCRUM, Feature Driven Development (FDD), Lean Software Development, and Extreme Programming (XP). It details their key principles, practices, workflows, and artifacts, as well as provides examples and comparisons of their applications in software development. The aim is to understand and simulate these methodologies to identify suitable projects for each approach.

Uploaded by

akashstriker762
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Ex.

no 3 Study the Agile Process Examples


Date: a) SCRUM
b) FDD
c) Lean software development
d) XP

Aim:

To study and understand the working of different Agile Process models:


a) SCRUM
b) Feature Driven Development (FDD)
c) Lean Software Development
d) Extreme Programming (XP)

Objectives:

1. Understand key principles and practices of each Agile process.


2. Compare workflows and artifacts produced by different methods.
3. Perform simulation or modeling of Agile iterations.
4. Identify use cases or suitable projects for each methodology.

Tools/Software Required:

 Whiteboard / Sticky Notes / Kanban Board (physical or digital)


 JIRA / Trello / Asana (for SCRUM board simulation)
 IDE (e.g., Visual Studio Code, Eclipse)
 Git/GitHub (for XP practices like CI)
 Browser / PPT tools (for presenting FDD models)

a) SCRUM
What is SCRUM?

SCRUM is an Agile framework used for managing product development and software
projects. It divides work into small, manageable chunks called sprints, enabling teams to
deliver working software iteratively and incrementally.

Key elements include sprint planning, daily scrums, sprint reviews, and sprint retrospectives.

Core Components of SCRUM


SCRUM Roles:

1. Product Owner (PO)


o Represents the customer and stakeholders
o Creates and manages the Product Backlog
o Prioritizes user stories based on business value
2. Scrum Master (SM)
o Facilitates the SCRUM process
o Ensures team follows Agile practices
oRemoves blockers and shields the team from distractions
3. Development Team
o Cross-functional team (developers, testers, designers)
o Responsible for delivering increments of working software
o Self-organizing and accountable
4. SCRUM Events:

Event Purpose
Sprint 1–4 week iteration to deliver a working product increment
Sprint Planning Define what can be delivered in the Sprint and how it will be done
Daily Scrum 15-minute daily stand-up for progress tracking and obstacle removal
Sprint Review Demo the product increment to stakeholders and gather feedback
Sprint Retrospective Discuss what went well, what didn’t, and how to improve in the next Sprint

SCRUM Artifacts:

Artifact Description
Product Backlog A prioritized list of features, enhancements, and bug fixes (user stories)
Sprint Backlog Selected user stories/tasks for a sprint
Increment The working software delivered at the end of a sprint
Definition of Done Criteria to determine if a user story is complete

Example: E-Commerce Shopping Cart

Let’s walk through an example of using SCRUM to develop a shopping cart module in an e-
commerce app.

Step 1: Product Backlog Creation

The Product Owner gathers user stories such as:

ID User Story Priority

US01 As a user, I want to add items to a shopping cart. High

US02 As a user, I want to view items in my cart. High

US03 As a user, I want to remove items from the cart. Medium

US04 As a user, I want to update item quantities. Medium

US05 As a user, I want to checkout securely using a payment gateway. High

✅ Step 2: Sprint Planning (Sprint 1 – 2 Weeks)

The team selects 3 user stories for Sprint 1:


 US01: Add items to cart
 US02: View cart
 US03: Remove items from cart

Sprint Goal: “Develop basic shopping cart functionality.”

✅ Step 3: Daily Scrums

Each day, the team answers:

1. What did I do yesterday?


2. What will I do today?
3. Any blockers?

✅ Step 4: Development

The development team builds the features using test-driven development (TDD):

 Write test cases before coding


 Implement feature
 Refactor as needed

✅ Step 5: Sprint Review

At the end of Sprint 1, the team demonstrates:

 Adding items to cart


 Viewing cart items
 Removing items

Stakeholders provide feedback, e.g., "Allow adding multiple quantities."

✅ Step 6: Sprint Retrospective

The team reflects:

 👍 What went well: Clear backlog, good teamwork


 👎 What didn’t: API integration delays
 🔄 Action: Start backend stubs earlier in Sprint 2

Benefits of SCRUM in This Example


Benefit How It Helped

Early feedback Stakeholders saw a demo after 2 weeks

Focused team efforts Sprint goal kept tasks aligned

Flexibility New requirements like “multiple quantities” were easily added

Transparency Daily stand-ups ensured visibility


B) Feature-Driven Development
Feature-Driven Development (FDD) is a model-driven, short-iteration Agile methodology
focused on designing and building features. It emphasizes planning, design, and code
ownership, making it ideal for large-scale software systems.
Key Concepts in FDD
Element Description

Focus Delivering tangible, working software features frequently

Iteration Unit Features (not time-boxed like SCRUM sprints)

Feature A small, client-valued function deliverable in 2–10 days

Architecture First High-level modeling and domain design done before implementation

Documentation Lightweight but present; model and feature lists are key

The 5 Core Processes of FDD


Step Description

1. Develop an Overall Analyze the domain and create a high-level object model using UML or class
Model diagrams.

Identify and group features based on the model. Each feature should be small and
2. Build a Feature List
deliverable quickly.

3. Plan by Feature Assign ownership and prioritize features based on business needs.

4. Design by Feature Design each feature before coding. Includes sequence diagrams and inspections.

Code, test, and integrate the feature into the build. Includes unit testing and code
5. Build by Feature inspections.

Roles in FDD
Role Responsibility

Project Manager Oversees delivery and timelines

Chief Architect Designs overall architecture

Development Manager Manages development team

Chief Programmer Coordinates feature design and implementation


Role Responsibility

Class Owner Owns design/code of specific classes

Domain Expert Provides business logic and feature validation

FDD Artifacts
Artifact Description

High-level UML m
Overall Model
odel

Feature List Hierarchical list of features

Feature Plan Scheduling of feature development

Design Package Diagrams and documents per feature

Codebase Source code updated iteratively

Example – Online Library System

Step 1: Develop an Overall Model

 Domain modeling identifies entities: Book, User, Loan, Reservation

Step 2: Build a Feature List

Grouped into functional areas:

 User Management
o Register a new user
o Update user profile
 Book Management
o Add a new book to the catalog
o Search for books
 Loan Process
o Issue a book to a user
o Return a book

Step 3: Plan by Feature

 Assign Search for books to Dev A


 Assign Issue a book to Dev B
 Schedule based on dependencies and business priority

Step 4: Design by Feature

 For Issue a book:


o Create sequence diagram showing interaction between User, Loan, and Book
classes

Step 5: Build by Feature

 Code feature → unit test → inspect → integrate into main codebase

Benefits of FDD
Benefit Description

Scalable Suitable for large teams and projects

Predictable Progress Measurable output per feature

Structured Yet Agile Combines modeling with iterative development

Code Ownership Improves accountability and quality

Limitations of FDD

 Not as adaptive to changing requirements as other Agile methods (e.g., SCRUM)


 Heavy reliance on initial modeling
 May be less suitable for small teams or startups
 Lacks built-in mechanisms for customer feedback loops

When to Use FDD?

FDD is ideal when:

 The project is large and complex


 Teams are distributed
 There is a need for strong upfront modeling and structure
 Stakeholders want predictable deliveries and clear ownership

C) Lean Software Development Agile Process

Lean Software Development (LSD) is an Agile methodology derived from Lean


manufacturing principles developed by Toyota. It emphasizes eliminating waste,
improving efficiency, and delivering maximum customer value in the shortest possible
time.

7 Lean Principles
Principle Meaning
1. Eliminate Waste Remove anything that does not add customer value (e.g., unused features, delays)
2. Build Quality In Prevent defects through automation, TDD, and peer reviews
3. Create Knowledge Promote learning and knowledge sharing through documentation, retrospectives

4. Defer Commitment Delay irreversible decisions until they are necessary (last responsible moment)
5. Deliver Fast Shorten cycle times, use small batches, reduce wait times
6. Respect People Trust and empower the development team
7. Optimize the Whole Improve the entire value stream, not just individual processes
Lean Software Development Practices
Practice Description

Value Stream Mapping Identifies steps that add or reduce value

Kanban Board Visualizes work in progress and limits task overload

Continuous Delivery Enables faster releases with minimal effort

Refactoring & Automation Keeps the system clean and maintainable

Customer Feedback Loops Regular updates to validate assumptions and reduce risk

Cross-functional Teams Encourages collaboration and knowledge sharing across roles

Waste in Software Development (The 7 Wastes)


Waste Type Example

Partially Done Work Unfinished features, unused code

Extra Features Gold-plating, unnecessary functions

Relearning Poor knowledge sharing, lack of documentation

Handoffs Too many steps or approvals between team members

Delays Waiting for approval, dependencies

Task Switching Constant context switching reduces efficiency


Waste Type Example

Defects Bugs and rework due to poor quality or misunderstood requirements

Example: Lean in a Food Delivery App

Goal: Build a basic food ordering feature in 2 weeks.

Stage Lean Approach

Feature Selection Only core features: search, menu, add-to-cart, checkout

Development Small batches, Kanban board to track tasks

Testing Automated tests + early user feedback to “build quality in”

Deployment Continuous integration for fast, safe releases

Feedback Customer testing at end of 1st week to reduce risk

Decision-making Payment gateway choice delayed until needed (defer commitment)

Benefits of Lean Software Development


Benefit How it Helps

Faster Delivery Reduces delays and unnecessary steps

Higher Quality Continuous testing and defect prevention

Lower Cost Efficient use of resources

Better Customer Satisfaction Delivers what users need, not what developers assume

Team Empowerment Respects expertise, boosts morale and collaboration

Challenges of Lean
Challenge Description

Less prescriptive than SCRUM; may overwhelm inexperienced


Lack of Structure
teams

Requires Culture Change Strong emphasis on trust, feedback, and cross-functionality

Needs Strong Discipline Hard to balance "just enough" without under-documenting

Difficult to Scale Without Tools Requires tools like Kanban, CI/CD pipelines
D) Extreme Programming (XP)

Extreme Programming (XP) is an Agile software development methodology aimed at


improving software quality and responsiveness to changing requirements. It emphasizes
frequent releases, automated testing, continuous communication, and simplicity in
design.

XP is best suited for:

 Projects with changing customer needs


 Small to medium-sized teams
 Teams focused on technical excellence

Core Values of XP

1. Communication – Constant collaboration between team members and with


customers
2. Simplicity – Do the simplest thing that works
3. Feedback – From automated tests and frequent deliveries
4. Courage – To refactor code and accept change
5. Respect – Among all team members

XP Key Practices (Grouped by Category)

Category Practices

Development - Test-Driven Development (TDD): Write tests before code


markdown
CopyEdit
- **Simple Design**: No unnecessary complexity
- **Refactoring**: Improve internal structure without changing behavior |

| Teamwork | - Pair Programming: Two developers share one workstation


- Collective Code Ownership: Anyone can change any part of the code
- Coding Standards: Team-wide consistent coding style |
| Process | - Small Releases: Frequent and incremental delivery
- Continuous Integration: Merge and test code frequently
- Sustainable Pace: Avoid burnout by keeping a 40-hour work week |
| Planning | - User Stories: Short descriptions of a feature from user’s perspective
- Planning Game: Collaborative planning with developers and customers
- On-site Customer: Customer representative always available for feedback |

🔁 XP Lifecycle (Simplified)
csharp
CopyEdit
[Customer Writes User Stories]

[Planning Game]

[Small Iterations (1-2 weeks)]

[TDD → Code → Refactor → Test]

[Daily Integration + Pair Programming]

[Release Working Product]

Example – XP in a “To-Do List App” Project

Goal: Implement a basic to-do list app with add/edit/delete functionality in 2 weeks.

Step 1: Planning Game

Customer writes stories like:

 “As a user, I want to add a task to my list.”


 “As a user, I want to delete a completed task.”

Team estimates and selects a set of stories for Iteration 1.

Step 2: Test-Driven Development

Before coding “add task” feature:

 Write test: testAddTask()


 Write minimum code to pass the test
 Refactor code to improve readability

Step 3: Pair Programming

Developer A and B work together:

 One writes tests


 One writes code

Step 4: Continuous Integration

Code is pushed and tested in CI server after every commit.

Step 5: Release

At the end of the week, a working “add + delete task” feature is demoed to the customer.

Benefits of XP
Benefit Description

High Code Quality Through TDD, refactoring, and pair programming


Benefit Description

Frequent Feedback Due to small releases and on-site customer involvement

Adaptability Easily adapts to changing requirements

Developer Satisfaction Emphasis on sustainable pace and collaboration

Challenges in XP
Challenge Description

Needs High Discipline TDD, Pair Programming, and CI require consistency

On-site Customer Requirement Not always feasible in all organizations

Less Emphasis on Documentation May not suit teams needing formal processes

May Not Scale Easily XP is better for small to medium projects

When to Use XP?

 Rapidly changing requirements


 Projects with uncertain scope
 Teams seeking high-quality code and frequent delivery
 Startups or internal tools needing fast iterations

Comparison Table:

Planning
Method Key Focus Best For Artifacts
Style
Complex, dynamic Sprint Backlog, Burn-
SCRUM Iterative Delivery Sprint-based
projects down chart
Feature List, Design
FDD Feature Delivery Feature-wise Larger, stable projects
Documents
Value
Lean Flow-based Process improvement VSM, Kanban
Optimization
Small teams, high-
XP Code Quality Code-centric Unit Tests, CI logs
collab
Outcome:

Result:

The working of four Agile processes—SCRUM, FDD, Lean Software Development, and XP
—were studied, simulated, and compared. Their roles, practices, workflows, and artifacts
were analyzed in different software project contexts.

You might also like