AGILE METHODOLOGY
Department of Computer Science & Engineering
Swami Keshvanand Institute of Technology, Management & Gramothan
Rajasthan Technical University, Kota
Submitted To
Mrs. Priyanka Bhardwaj
Assistant Prof. of CS Dept.
Submitted By
Chandra Prakash
(15ESKCS716)
Computer Science & Engg.
CONTENTS
1. What is Agile Methodology ?
2. Agile vs. Traditional Methodology
3. Benefits of Agile
4. Where is it needed ?
5. What are Agile Software Development models ?
6. Why do we choose Agile Software Development ?
7. Roles in Agile
8. How Agile Team Plans ?
9. What is User Story in Agile ?
10.Conclusion
11.References
What is Agile Methodology ?
• AGILE methodology is a practice that promotes continuous iteration of
development and testing throughout the software development lifecycle of the
project.
• Both development and testing activities are concurrent unlike the Waterfall
model.
• The agile software development emphasizes on four core values.
1. Individual and team interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
• In 1970, Dr. William Royce published a paper that discussed the managing
and developing of large software systems.
Agile vs. Traditional Methodology
1. Agile method proposes incremental and iterative approach to software
design but Development of the software flows sequentially from start
point to end point.
2. The customer has early and frequent opportunities to look at the product
and make decision and changes to the project but The customer can only
see the product at the end of the project.
3. Error can be fixed in the middle of the project but Only at the end, the
whole product is tested. If the requirement error is found or any changes
have to be made, the project has to start from the beginning.
4. More communication between customers and clients but in traditional
method less communication between customers and clients.
5. Testers and developers work together but in traditional method Testers
work separately from developers.
6. At the end of every sprint, user acceptance is performed but in other
hand User acceptance is performed at the end of the project.
Benefits of Agile
when used in the above-mentioned cases
1.Easily adapts to changes caused by shifts in customer behavior,
industry standards or technology
2.Provides tangible results (new software versions that are stable enough
and offer the minimal functionality to meet stakeholder requirements)
after each sprint (2-3 weeks)
3.Actively engages stakeholders to guarantee better user
satisfaction and control over the delivery results
4.Has Quality Assurance integrated in the process, which allows for less
rework and improved quality
5.Helps you to stay on budget and get a valuable result
Where is it needed ?
Many companies are shifting from waterfall to agile as their preferred
software development project methodology. Yet while agile offers
developers the advantage of build flexibility as users’ ideas and
requirements clarify, the methodology lacks an efficient means by which
the different stakeholders and developers can communicate thoughts and
changing needs.
What are Agile Software Development
models ?
Actually Agile model refers to a group of development processes. These
processes share some basic characteristics but do have certain subtle
differences among themselves. A few Agile SDLC models are given below:
Extreme programming (XP)
Extreme programming is a software development methodology which is
intended to improve software quality and responsiveness to changing
customer requirements.
Crystal
Crystal method is an agile software development approach that focuses
primarily on people and their interactions when working on a project .
Feature-driven development(FDD)
Feature-driven development is an iterative and incremental software
development process. It is a lightweight or Agile method for developing
software.
Scrum
Scrum is an agile framework for managing knowledge work, with an
emphasis on software development.
Lean development
Lean software development is a translation of lean manufacturing principles
and practices to the software development domain.
Why do we choose Agile Software Development?
• The agile method anticipates change and allows for much more flexibility
than traditional methods. Clients can make small objective changes without
huge amendments to the budget or schedule.
• This method saves the client money and time because the client tests and
approves the product at each step of development.
• Agile Software Development is a set of methods and practices based on the
values and principles expressed in the Agile Manifesto(a public declaration
of policy and aims).
• Solutions evolve through collaboration between self-organizing, cross-
functional teams(A cross-functional team is a group of people with
different functional expertise working toward a common goal. It may
include people from finance, marketing, operations, and human resources
departments).
• However, we need agile software development over other software
development methodologies for the following reasons.
Roles in Agile
The common agile roles are:-
1.Scrum Master
2.Team Member
3.Product Owner
4.Stakeholder
Scrum Master :- This role, called “Scrum Master” in Scrum or team
coach or project lead in other methods, is responsible for facilitating the
team, obtaining resources for it, and protecting it from problems.
Responsibilities of Scrum Master :-
• To remove any blocks
• To shield team from any disturbance
• To work with the organization to track progress and processes of
company
• Daily standup, Planned meetings, Review
Team Member :- A person belonging to a specific group of people
involved in attempting to achieve a common goal.
1. Core Team Member - a full time role on the project but not necessarily for
the duration of the project.
2. Extended Team Member - a part time role on the project
Responsibilities of Team Member :-
• Understanding the purpose and objectives of the project
• Ensuring a correct balance between project and non-project work
• Working to timescales and within cost constraints
• Responsible for the project’s creation and delivery
Product Owner :- Product owners are at the center of every development
cycle. At the most basic level, a product owner is the leader responsible for
maximizing the value of the products created by a scrum development team.
But to do this, an agile product owner takes on several roles, including
business strategist, product designer, market analyst, customer liaison, and
project manager.
Responsibilities of Product Owner :-
• Defining the vision
• Managing the product backlog
• Overseeing development stages
• Anticipating client needs
• Evaluating product progress at each iteration
Stakeholder :- Represents a broad category of people who can be users,
managers of users, operations, support, Portfolio Managers.
In addition to these common roles, Agile teams will sometimes have
extended cast members who are called upon to provide technical or domain
expertise for certain specialized skills that may not be present amongst the
team members
How Agile Team Plans ?
• Agile team works in iterations to deliver user stories.
• Each user story is planned based on its backlog prioritization and size.
• Team uses its capacity, how many hours are available with team to
work on tasks, to decide how much scope they have to plan.
User Story A
User Story B User Story C
What is User Story in Agile ?
• A User Story is a requirement which define what is required by the
user as functionality.
• A User Story can be two forms
1. As a <User Role> I want <Functionality> so that <Business Value>
2. In order to <Business Value> as a <User Role> I want
<Functionality>
• During iteration planning, Story is broken down into tasks.
• User Story talks about what to be done.
Example :-
Users Role = User (Account holder)
Functionality = Add amount ( perform some role)
Business Value = Deposit