0% found this document useful (0 votes)
20 views79 pages

Agile Software Methodology

Agile

Uploaded by

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

Agile Software Methodology

Agile

Uploaded by

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

WATERFALL MODEL

• A step-by-step approach to management

methodology that mimics a waterfall in its

trajectory

• Winston W. Royce in 1970

• Strong documentation and does not have

customer involvement

Step-by-step model of the waterfall methodology


EXERCISE

• Our company aims to enhance its online presence and improve customer engagement by developing a

shopping website. Currently, our customers lack a convenient platform to browse and purchase our products

online, leading to a decrease in sales and customer satisfaction. To address this issue, we seek to build a user-

friendly shopping website that offers a seamless browsing and purchasing experience for our customers.

• What will be the flow of development?

• Who should be a part of the development cycle

• Can You make changes to the project without downtime?


AGILE SOFTWARE DEVELOPMENT

Agile Software Development is a project management technique that allows developers to create a working
software model in just a few weeks.

Agile focuses on flexibility, collaboration, and customer-centricity.

What is an iteration or a sprint in Agile?

Over the years, it has split into different frameworks and methodologies like Scrum, Kanban, Lean,
and XP.

Synonyms
Agile Software Management, Agile project management, Agile methodology, Agile method, Agile approach, Agile
way
AGILE SOFTWARE DEVELOPMENT

"Agile development is a fundamentally new way of managing IT projects, born out of the desire
to tackle risk and change head-on.“
"The Agile movement is not about the process, but about the people“

Jeff Sutherland (Co-creator of Scrum)

"Agile is not a set of rules, it's a mindset that prizes adaptability, flexibility,
and collaboration." ~ Martin Fowler

"Agile is a set of values and principles that foster the development of software in short iterations,
allowing for rapid adaptation to changing requirements."
~ Kent Beck
AGILE TIMELINE
• A step-by-step approach to management methodology that mimics a waterfall in its trajectory
AGILE SOFTWARE DEVELOPMENT
Agile Manifesto

1. Foundational document
2. Values and Principles of Agile software development
3. It was created by a group of software developers in 2001
4. Better ways of developing software and to document their shared principles

The Agile Manifesto emphasizes flexibility, collaboration, and customer satisfaction.


AGILE SOFTWARE DEVELOPMENT

• Agile Values: Foundational beliefs that

guide the Agile approach to software

development. These values are outlined

in the Agile Manifesto


AGILE SOFTWARE DEVELOPMENT

• Agile principles: These are guiding values

• It is built on 12 principles created by a team of software


developers back in 2001.
• Their manifesto outlined a set of key principles,
• Customer satisfaction, collaboration, adapting to change,
and more.

Agile elements that help to ensure the success of any Agile project

Collaboration, Communication, and


AGILE SOFTWARE DEVELOPMENT

Development team members


Agile Team Roles
•Product designer
1. Product owner •Writer
•Programmer
2. Scrum master •Tester
•UX specialist
3. Development team members
Stakeholders
4. Stakeholders • The end user of the
product
• Business executives
• Production support staff
• Investors
• External auditors
AGILE SOFTWARE DEVELOPMENT

Rational Unified Process(RUP)

• Developed by Rational Software

• Agile software development method

• RUP is iterative

• Four main phases in RUP

• Inception Each phase has its own objectives,

• Elaboration activities, and deliverables.

• Construction

• Transition.
AGILE SOFTWARE DEVELOPMENT

EXERCISE - RUP

Imagine a team tasked with building a new website for an e-commerce company. The website

needs to have features for browsing products, adding them to a shopping cart, and checking out

securely.

Four main phases in RUP?


AGILE SOFTWARE DEVELOPMENT
AGILE SOFTWARE DEVELOPMENT
AGILE SOFTWARE DEVELOPMENT
AGILE SOFTWARE DEVELOPMENT

Daily Scrum: Meeting of 15 minutes

Each member briefly talks about the following topics:

• What they plan to do today?

• What they did yesterday?

• Issues they have encountered?

Scrum team members should be standing up for the entire duration of this Scrum meeting
AGILE SOFTWARE DEVELOPMENT

EXERCISE - SCRUM

A small team of developers is tasked with building a new mobile app for a local coffee shop chain.

The coffee shop wants an app that allows customers to browse their menu, place orders for

pickup, and earn loyalty rewards.

How is SCRUM in action?


AGILE SOFTWARE DEVELOPMENT

XP (Extreme programming)

Software development methodology that emphasizes customer satisfaction, teamwork, and

high-quality code. It is one of the Agile methodologies, which means it focuses on iterative

development, flexibility, and adapting to change.

• Focus on engineering practices that enhance software quality and responsiveness to customer needs.

• Continuous delivery, collaboration, and practices like test-driven development

• Five core Rules of XP

• Five core values of XP


XP allow small to mid-sized teams to produce high-quality software and manage changing
customer requirements.
AGILE SOFTWARE DEVELOPMENT

XP (Extreme programming)

Simplicity

“build the simplest thing that works.”

Communication
Face-to-face interaction is preferred whenever
possible

Feedback

the team demonstrates what they’re working on


to the customer on a regular basis
AGILE SOFTWARE DEVELOPMENT

XP (Extreme programming)

Respect

Respect exists across a number of axes.

Courage

We will tell the truth about progress and

estimates.
We will adapt to changes whenever they happen.
AGILE SOFTWARE DEVELOPMENT

XP (Extreme programming)

The fundamental principles of Extreme Programming

• Rapid feedback

• Assume simplicity: YAGNI and DRY


principles

• Incremental change

• Embracing change

• Quality work: Team works well feels proud


of it
AGILE SOFTWARE DEVELOPMENT

Feature-Driven Development (FDD)

• Introduced in 1997 by Jeff De Luca

• FDD’s main purpose is to deliver tangible, working software repeatedly in a timely manner.

• “just enough design initially” -> avoid spending excessive time and resources on detailed plans

• FDD consists of five basic activities

• Agile approach suited for long-term, complex projects.

• In FDD, the end-user is more directly involved in the process while in Scrum the Product Owner acts as the

voice of the customer.

• FDD iterations are shorter than in Scrum


AGILE SOFTWARE DEVELOPMENT

Feature-Driven Development (FDD)

• Feature-Driven Development (FDD) is customer-centric, iterative, and incremental, with the goal of delivering

tangible software results often and efficiently.

• There are six primary roles in an FDD team

“During FDD, a feature should be

delivered every 2-10 days – which

differs from Scrum, in which sprints

typically last two, but sometimes four,


AGILE SOFTWARE DEVELOPMENT

DSDM (Dynamic systems development method)

• Agile framework primarily used for software development projects.

• Delivering business solutions iteratively and incrementally.

• Follows 8 principles. created by Rational Software (later acquired by IBM)

• DSDM was created in 1994, after project managers using RAD (Rapid Application Development)

sought more governance and discipline to this new iterative way of working.

DSDM’s philosophy “that any project must be aligned to clearly defined strategic goals and focus
upon early delivery of real benefits to the business.”
DSDM (DYNAMIC SYSTEMS DEVELOPMENT METHOD)
AGILE SOFTWARE DEVELOPMENT

MoSCoW Prioritisation

MoSCoW analysis is a prioritisation technique

commonly used on agile projects.

It stands for: Must Should Could Won’t


AGILE SOFTWARE DEVELOPMENT
MoSCoW Prioritisation

1. Let’s use an example. Your customer wants a new e-commerce website for their small clothing business. Their

requirements for this project are:

2. It needs a homepage

3. It needs product pages

4. Each product needs a photo and description

5. There needs to be a shopping cart


AGILE SOFTWARE DEVELOPMENT
MoSCoW Prioritisation

6. There needs to be an about us page

7. There needs to a be a terms & conditions, returns page

8. There should be a banner with special deals

9. There should be live chat

10. It would be nice to have social media buttons

11. It would be nice to have a pop up for subscribing to mailing lists

12. Perhaps there can be a blog, but not sure


AGILE SOFTWARE DEVELOPMENT
MoSCoW Prioritisation

Must
Homepage, product listings, product photos and descriptions, shopping cart, about us page, returns page, terms
& conditions page.
Should
Banner and live chat
Could
Social media
Won’t
Blog
AGILE SOFTWARE DEVELOPMENT
AGILE SOFTWARE DEVELOPMENT

Crystal Methodology in Agile

Based on Manifesto’s “ Individuals and interactions over processes and tools. ”

“The Crystal agile framework is for software development. It places focus on people over processes, to
empower teams to find their own solutions for each project rather than being constricted with rigid
methodologies.”

Team performance is determined by a number of factors

• Team size
• Criticality
• Priority
AGILE SOFTWARE DEVELOPMENT
Crystal Methodology in Agile

1. American computer scientist and agile pioneer Alistair Cockburn


2. Focuses on people over processes
1. Crystal clear - Teams with less
3. Empower teams to find their own solutions for each project
4. Each project has unique characteristics than 8 people

2. Crystal yellow - Teams with

between 10 and 20 people

3. Crystal orange - Teams with

between 20-50 people

4. C r y s t a l r e d - T e a m s w i t h

between 50-100 people


AGILE SOFTWARE DEVELOPMENT
Adaptive Software Development (ASD)

1. Sam Bayer and Jim Highsmith


2. Following rigid plans or principles does not add value to the business or the product
3. iteration, collaboration, and continuous adaptation to changing requirements.

“ASD is an iterative and incremental approach to

software development that prioritizes flexibility and

responsiveness to change.”

https://airfocus.com/glossary/what-is-adaptive-software-development/
AGILE SOFTWARE DEVELOPMENT
Adaptive Software Development (ASD)

Description:

“Imagine you are part of a development team responsible for enhancing an online learning

platform used by students worldwide. The platform currently allows students to access course

materials, submit assignments, and communicate with instructors. However, due to increased

demand and user feedback, there is a need to introduce new features and improve existing

Key Requirements
functionalities”
1. Implement a real-time chat feature to facilitate communication between students and
instructors.
2. Enhance the search functionality to allow students to easily find relevant course
materials.
https://airfocus.com/glossary/what-is-adaptive-software-development/
AGILE SOFTWARE DEVELOPMENT
AGILE BENEFITS

1. Change is embraced

2. End-goal can be unknown

3. Faster, high-quality delivery

4. Strong team interaction/

5. Customers are heard

6. Continuous improvement

7. Adaptability to Change
AGILE SOFTWARE DEVELOPMENT

• Agile Values: Foundational beliefs that

guide the Agile approach to software

development. These values are outlined

in the Agile Manifesto


AGILE SOFTWARE DEVELOPMENT

• Agile principles: These are guiding values

• It is built on 12 principles created by a team of software


developers back in 2001.
• Their manifesto outlined a set of key principles,
• Customer satisfaction, collaboration, adapting to change,
and more.
Attributes of Agile Requirements

1. User-Centric/User Stories

2. Iterative and Incremental

3. Flexible and Adaptive

4. Prioritized

5. Minimalistic

6. Visible and Transparent

7. Adhering to Agile Principles


Title: User Registration
• As a new user, I want to be able to register for an account, So that I can access the platform
and its features.
Acceptance Criteria:
• The user should be able to navigate to the registration page.
• The registration form should include fields for username, email, and password.
• Upon submitting valid information, the user should receive a confirmation message and be
redirected to the login page.
• If the user tries to register with an existing username or email, they should receive an error
message prompting them to choose a different one.
Agile Software Development

Success Factors
Quality of Agile Requirements

Clear and Understandable

• Unambiguous Language

• Specificity

Prioritized

• Prioritization

• Minimalism
Quality of Agile Requirements

Testable

• Measurable Criteria

• Acceptance Criteria

Collaborative

• Stakeholder Involvement

• Feedback-driven
Quality of Agile Requirements

Evolving

• Adaptability

• Iterative Refinement

Documented

• Documentation

• Traceability
Poorly Defined Requirements

Lack of Experience

Organizational Resistance Agile Software Development


Tooling and Infrastructure Challenges
Risk Factors
Overemphasis on Speed

Dependency Management
AGILE TERMINOLOGIES

ACCEPTANCE AGILE CONTINUOUS


CRITERIA MANIFESTO BOTTLENECK INTEGRATION
Document Slow down the Agile practice
development
12 Agile process Constantly add their
principles code

IMPEDIMENT
Define in terms
of Agile
productivity
AGILE SOFTWARE DEVELOPMENT

• With 94% of the organizations practicing agile in 2015, it has become a standard of project

management.

• Agile as a mindset opens up the door for so much more than just SW Development.
AGILE SOFTWARE DEVELOPMENT
AGILE SOFTWARE DEVELOPMENT
COMMUNICATION
COMMUNICATION

Tool in Agile Management

Communication Tools Team Management Tools Testing Tools:

1.Slack 1.JIRA 1.Selenium

2.Microsoft Teams 2.Trello 2.JUnit

3.Zoom 3.Asana 3.TestNG

4.Skype 4.Monday.com 4.Jenkins

5.Google Meet 5.ClickUp 5.Cucumber

6.Email 6.Basecamp 6.Postman


AGILE METRICS – DEFINITION

1
Help a software team in monitoring how productive a
Metrics are nothing but standards of measurement.
team is across the different phases of the SDLC

2
Agile metrics measure different aspects of project
development

3
AGILE PROJECT: TIME MEASUREMENTS

01 02 03 04 05
SPRINT BURNDOWN VELOCITY EPIC AND RELEASE WORK ITEM AGE VALUE DELIVERED
REPORT BURNDOWN

The average work a Track progress over a Indicates the time that Implementing features
Tracking the completion team does during a large work body passes between the with high value should
of different tasks during sprint start and completion of be the top priority.
the current task
a sprint
Development of a Multi-Platform E-commerce Application

Project Overview

A large retail company is developing a multi-platform e-commerce application to enhance its online

presence. The project involves multiple teams working on different aspects such as mobile apps, web

apps, backend services, and integration with third-party services. The project is estimated to take 12

months with several releases and iterations.


Development of a Multi-Platform E-commerce Application

Metrics and Measures

Sprint Metrics:
• Velocity: Measure the amount of work completed in each sprint (story points).
• Sprint Burndown Chart: Track the progress of work during a sprint to ensure teams are on track to meet
sprint goals.
• Sprint Goal Completion Rate: The percentage of sprint goals achieved by the end of the sprint.
Development of a Multi-Platform E-commerce Application

Quality Metrics
• Defect Density
• Defect Resolution Time
• Automated Test Coverage
Development of a Multi-Platform E-commerce Application

Productivity Metrics:
• Cycle Time: The time taken to complete a user story from start to finish.
• Lead Time: The time taken from when a task is created to when it is completed.
• Throughput: The number of tasks completed in a specific period.
Development of a Multi-Platform E-commerce Application

Team Health Metrics:


1. Team Happiness/Satisfaction: Regular surveys to gauge team morale.
2. Workload Balance: Distribution of work among team members to ensure no one is overburdened.
Development of a Multi-Platform E-commerce Application

Customer Satisfaction Metrics:


1. Net Promoter Score (NPS)
2. Customer Feedback

Release Metrics:
1. Release Burndown Chart
2. Deployment Frequency
3. Release Stability: Number of successful releases vs. rollbacks.
Development of a Multi-Platform E-commerce Application

Example Scenario: Week 8 of the Project

Sprint Metrics:

The team’s velocity has been stable, averaging 50 story points per sprint.

The sprint burndown chart shows a consistent reduction in the backlog, with minor mid-sprint adjustments.

Quality Metrics:

Defect density has decreased from 10 defects per 1000 lines of code to 5, thanks to increased test coverage

(now at 80%).

Defect resolution time has improved from 5 days to 3 days.


Development of a Multi-Platform E-commerce Application

Productivity Metrics:
Cycle time has been reduced from 8 days to 6 days due to better process automation.
Lead time remains consistent at 10 days.
Team Health Metrics:
Team happiness surveys show an increase in satisfaction from 7/10 to 8/10.
Workload balance is well-distributed, with no team member handling more than 20% of the sprint workload.
Customer Satisfaction Metrics:
The NPS has improved from 60 to 70 following the latest release.
Customer feedback indicates satisfaction with the new features, but highlights the need for better
performance optimization.
Development of a Multi-Platform E-commerce Application

Release Metrics:

Release burndown chart indicates the project is on track for the next major release.

Deployment frequency is once per week, with a 95% success rate (1 rollback in the last 20 releases).

Actions Based on Metrics:

Adjust Sprint Planning: Based on the stable velocity, plan slightly more ambitious sprint goals to maintain a

challenging yet achievable pace.

Focus on Quality: Continue to improve test coverage and focus on reducing defect density further.

Enhance Customer Experience: Prioritize performance optimization based on customer feedback.

Maintain Team Health: Ensure regular team-building activities and monitor workload to prevent burnout.
Testing in Agile Software Development

Validating user stories and defining acceptance criteria

Joining daily meeting stand-ups

Exploratory and Regression testing

Performing both automated and manual testing


Phase 1: Impact Assessment

Phase 2: Agile Test Planning

Phase 3: Release Readiness

Phase 4: Daily Scrums

Phase 5: Test Agility Review


Principles of Agile Testing

Agile Testing: 8 Principles, 7 Challenges and How to Master Them (sealights.io)


Nine Principles of Agile Testing

1. Continuous Testing

2. Whole Team Approach

3. Testing is Not a Phase

4. Short Feedback Loops

5. Test Automation

6. Customer Involvement

7. Embrace Change

8. Build Quality

9. Context-Driven Testing
Practices of Agile Testing

1. Test Driven Development

2. Behavior Driven Test Development

3. Acceptance Test Driven Development

4. Exploratory Testing

5. Pair Programming

6. Continuous Integration
Agile Alliance was established in 2001

• Membership and Community

• Educational Initiatives

• Research and Publications

• Initiatives and Programs

• Agile Principles and Practices

• Collaboration with Other Organizations

A non-profit organization dedicated to promoting the


concepts of agile software development as outlined in the
Agile Manifesto.

You might also like