0% found this document useful (0 votes)
18 views31 pages

Agile

agile model notes

Uploaded by

Yatharth jaiswal
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)
18 views31 pages

Agile

agile model notes

Uploaded by

Yatharth jaiswal
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/ 31

What is agile?

■ Agile is a process that allows a team to


more efficiently manage a project by
breaking it down into several stages, each
of which allows for consistent
collaboration with stakeholders to
promote steady improvements at every
stage.
■ In software development, agile practices
involve discovering requirements and
developing solutions through the
collaborative effort of self-organizing and
cross-functional teams and their
customer/end user.
Some of the real life examples of
agile model:

■ Restaurant orders:
– Preparation of some of the food before
opening the shop (sprint planning)
– continuous delivery of orders (adhoc
stories)
– number of successful orders (velocity)
■ cricket team:
– Run rate (velocity)
– team (scrum team self sufficient)
– over (sprint length)
– captain/ coach (scrum master)
What are the 12 principles of agile?

■ Customer satisfaction
■ Early and continuous delivery
■ Embrace change
■ Frequent delivery
■ Collaboration of businesses and developers
■ Motivated individuals
■ Face-to-face conversation
■ Functional products
■ Technical excellence
■ Simplicity
■ Self-organized teams
■ Regulation, reflection and adjustment
Agile methodology

■ Agile methodology is a type of project management process, mainly used for


software development, where demands and solutions evolve through the
collaborative effort of self-organizing and cross-functional teams and their
customers.
■ Agile software development refers to a group of software development
methodologies based on iterative development, where requirements and solutions
evolve through collaboration between self-organizing cross-functional teams. Agile
methods or Agile processes generally promote a disciplined project management
process that encourages frequent inspection and adaptation, a leadership
philosophy that encourages teamwork, self-organization and accountability, a set
of engineering best practices intended to allow for rapid delivery of high-quality
software, and a business approach that aligns development with customer needs
and company goals.
Examples of Agile Methodology

■ Agile Scrum Methodology.


■ Lean Software Development.
■ Kanban.
■ Extreme Programming (XP)
■ Crystal.
■ Dynamic Systems Development Method (DSDM)
■ Feature Driven Development (FDD)
scrum

■ The software development term scrum was first used in a 1986 paper titled "The
New Product Development Game". The term is borrowed from rugby, where
a scrum is a formation of players. The term scrum was chosen by the paper's
authors because it emphasizes teamwork.
■ Scrum is a subset of Agile. It is a lightweight process framework for agile
development, and the most widely-used one.
■ Scrum is an agile project management methodology or framework used primarily
for software development projects with the goal of delivering
new software capability every 2-4 weeks.

■ Scrum is an agile framework for developing, delivering, and sustaining complex


products, with an initial emphasis on software development, although it has been
used in other fields including research, sales, marketing and advanced
technologies.
Agile scrum methodology

■ Agile scrum methodology is a project management system that relies on


incremental development. Each iteration consists of two- to four-week sprints,
where each sprint's goal is to build the most important features first and come out
with a potentially deliverable product. More features are built into the product in
subsequent sprints and are adjusted based on stakeholder and customer feedback
between sprints.
■ Whereas other project management methods emphasize building an entire
product in one iteration from start to finish, agile scrum methodology focuses on
delivering several iterations of a product to provide stakeholders with the highest
business value in the least amount of time.
■ Agile scrum methodology has several benefits. First, it encourages products to be
built faster, since each set of goals must be completed within each sprint's time
frame. It also requires frequent planning and goal setting, which helps the scrum
team focus on the current sprint's objectives and increase productivity.
Lifecycle of Scrum:

■ Sprint:
A Sprint is a time-box of one month or less. A new Sprint
starts immediately after the completion of the previous
Sprint.
■ Release:
When the product is completed then it goes to the Release
stage.
■ Sprint Review:
If the product still have some non-achievable features then it
will be checked in this stage and then the product is passed to
the Sprint Retrospective stage.
■ Sprint Retrospective:
In this stage quality or status of the product is checked.
■ Product Backlog:
According to the prioritize features the product is organized.
■ Sprint Backlog:
Sprint Backlog is divided into two parts Product assigned
features to sprint and Sprint planning meeting.
How Scrum Works

■ In a rugby scrum, all the players literally put their heads together. When it comes to software
development, a scrum can be characterized by developers putting their heads together to address
complex problems.
■ Scrum software development starts with a wish list of features — a.k.a. a product backlog. The team
meets to discuss:
– The backlog.
– What still needs to be completed.
– How long it will take.
■ Scrum relies on an agile software development concept called sprints:
– Sprints are periods of time when software development is actually done.
– A sprint usually lasts from one week to one month to complete an item from the backlog.
– The goal of each sprint is to create a saleable product.
– Each sprint ends with a sprint review.
– Then the team chooses another piece of backlog to develop — which starts a new sprint.
– Sprints continue until the project deadline or the project budget is spent.
■ In daily scrums, teams meet to discuss their progress since the previous meeting and make plans
for that day.
– The meetings should be brief — no longer than 15 minutes.
– Each team member needs to be present and prepared.
■ The ScrumMaster keeps the team focused on the goal.
How Scrum Works
Introduction to Scrum Terms

■ An introduction to Scrum would not be complete without knowing the Scrum


terms you'll be using. This section in the Scrum overview will discuss
common concepts in Scrum.
■ Scrum team: A typical scrum team has between five and nine people, but
Scrum projects can easily scale into the hundreds. However, Scrum can easily
be used by one-person teams and often is. This team does not include any of
the traditional software engineering roles such as programmer, designer,
tester or architect. Everyone on the project works together to complete the
set of work they have collectively committed to complete within a sprint.
Scrum teams develop a deep form of camaraderie and a feeling that “we’re
all in this together.”
Who is in the Scrum?/Scrum Terms

■ Product owner: The product owner is the project’s key stakeholder and
represents users, customers and others in the process. The product owner is
often someone from product management or marketing, a key stakeholder
or a key user.
■ Scrum Master: The Scrum Master is responsible for making sure the team is
as productive as possible. The Scrum Master does this by helping the team
use the Scrum process, by removing impediments to progress, by protecting
the team from outside, and so on.
■ Product backlog: The product backlog is a prioritized features list containing
every desired feature or change to the product. Note: The term “backlog” can
get confusing because it’s used for two different things. To clarify, the
product backlog is a list of desired features for the product. The sprint
backlog is a list of tasks to be completed in a sprint.
■ Sprint planning meeting: At the start of each sprint, a sprint planning meeting is held,
during which the product owner presents the top items on the product backlog to the
team. The Scrum team selects the work they can complete during the coming sprint. That
work is then moved from the product backlog to a sprint backlog, which is the list of tasks
needed to complete the product backlog items the team has committed to complete in the
sprint.
■ Daily Scrum: Each day during the sprint, a brief meeting called the daily scrum is
conducted. This meeting helps set the context for each day’s work and helps the team stay
on track. All team members are required to attend the daily scrum.
■ Sprint review meeting: At the end of each sprint, the team demonstrates the completed
functionality at a sprint review meeting, during which, the team shows what they
accomplished during the sprint. Typically, this takes the form of a demonstration of the
new features, but in an informal way; for example, PowerPoint slides are not allowed. The
meeting must not become a task in itself nor a distraction from the process.
■ Sprint retrospective: Also at the end of each sprint, the team conducts a sprint
retrospective, which is a meeting during which the team (including its ScrumMaster and
product owner) reflect on how well Scrum is working for them and what changes they may
wish to make for it to work even better.
■ Each of the Scrum terms has its own page within the Scrum section, so be sure to check
out all the pages in the navigation.
A Visual Introduction to Scrum

This graphic is an introduction to the


essential elements of using Scrum for agile
software development. On the left, we see
the product backlog, which has been
prioritized by the product owner and
contains everything desired in the product
that’s known at the time. The two to four
week sprints are shown by the larger green
circle.
■ At the start of each sprint, the team selects some amount of work from the
product backlog and commits to completing that work during the sprint. Part
of figuring out how much they can commit to is creating the sprint backlog,
which is the list of tasks (and an estimate of how long each will take) needed
to deliver the selected set of product backlog items to be completed in the
sprint.
■ At the end of each sprint, the team produces a potentially shippable product
increment — i.e. working, high-quality software. Each day during the sprint,
team members meet to discuss their progress and any impediments to
completing the work for that sprint. This is known as the daily scrum, and is
shown as the smaller green circle above.
■ Scrum is the type of Agile framework. It is a framework within which people
can address complex adaptive problem while productivity and creativity of
delivering product is at highest possible values. Scrum uses Iterative
process.
Key Features of Scrum
Methodology
■ Scrum has a short fixed schedule of
release cycles with adjustable scope
known as sprints to address rapidly
changing development needs. Each
release could have multiple sprints. Each
Scrum Project could have multiple Release
Cycles.
■ A repeating sequence of meetings,
events, and milestones
■ A practice of testing and implementing
new requirements, known as stories, to
make sure some work is released ready
after each sprint
Who can benefit from scrum?

■ While scrum can benefit a wide variety of businesses and projects, these are
the most likely beneficiaries:
■ Complicated projects: Scrum methodology is ideal for projects that require
teams to complete a backlog.

■ Companies that value results: Scrum is also beneficial to companies that


value results over the documented progress of the process.

■ Companies that cater to customers: Scrum can help companies that


develop products in accordance with customer preferences and
specifications.
What are the benefits of agile scrum
methodology?
■ Here are some of the collective benefits of agile scrum methodology:
■ Flexibility and adaptability
■ Creativity and innovation
■ Lower costs
■ Quality improvement
■ Organizational synergy
■ Employee satisfaction
■ Customer satisfaction
Benefits of Scrum
■ Rugby players try to gain control of the ball in the scrum and move it downfield.
Software developers use scrum to move their projects quickly. And the benefits
trickle down to software developers:
■ Developers who want the freedom to make decisions thrive in scrum teams. Team
morale tends to be high.
■ Each sprint produces a product that is ready for market even though the project is
ongoing. The highest priority requirements are addressed first so a high-quality,
low-risk product can be on the market.
■ The incremental process shortens the time to market by about 30 percent to 40
percent. Because the product owner is part of the scrum team, requirements can
be delivered as they are needed.
■ Scrum projects often realize a higher return on investment (ROI). This is attributed
to:
– Decreased time to market.
– Early and regular feedback that prompts course corrections early when they
are less costly.
– Defects that are fewer and less costly.
– Projects failing early and quickly when it’s less costly.
■ Reviewing each sprint before the team moves on to the next sprint spreads testing
throughout development.
■ Project focus and goals can change with evolving business goals.
Disadvantages of Scrum

■ While a rugby scrum may get rough and bloody, software developers
shouldn’t have to worry about that. Nonetheless, scrum is not for all
developer teams or software development projects. There
are disadvantages to implementing scrum projects:
■ There is a danger of scope creep if stakeholders keep adding functionality to
the backlog. This could be encouraged by the fixed deadline.
■ Scrum works best with small teams of experienced software developers.
They need to be able to work quickly.
■ Scrum teams do not work well when the scrum master micromanages their
work.
■ Losing any team members can hurt the progress of the project.
Scrum Best Practices
■ Teamwork wins rugby games and helps software developers create quality
products. To get the best quality out of scrum:
■ Define requirements just in time to keep product features as relevant as
possible.
■ Test and incorporate product owner feedback daily.
■ Sprint reviews with stakeholders need to be regular.
■ The scrum team needs to use the sprint retrospectives to improve how they
work.
■ Conduct face-to-face conversations to reduce miscommunications.
■ Trust the teams to do the best job possible.
■ Allow the teams to self-organize around people’s skills, work styles and
personalities.
■ Don’t burn out the team members. Respect the balance between their
personal and professional lives to ease stress.
Role of test engineer in scrum team

■ The tester should be actively engaged in the team's work during


the Sprint and meetings. It is the tester's role to ensure the quality of the
developed product and the delivery process itself
■ The development team in Scrum is responsible for developing the product
by working closely with the Product Owner. As per the testing quadrants,
the testers are responsible for technology-facing tests that support team &
critique the product and business-facing tests that help the team & critiques
the product.
■ Even though an entire Scrum team has responsibility for testing and code
quality, someone on the team needs to be good at testing, and someone on
the team needs to set up unit and regression test automation, run the
end-to-end integration tests, and do manual exploratory testing on the
whole product
Scrum in Software Testing

■ Scrum in Software Testing is a methodology for building complex software


applications. It provides easy solutions for executing complicated tasks.
Scrum helps the development team to focus on all aspects of the software
product development like quality, performance, usability and so on. It
provides with transparency, inspection and adaptation during the software
development to avoid complexity.
Scrum Testing

■ Scrum Testing is a testing done in scrum methodology to verify the software


application requirements are met. It involves checking non-functional
parameters like security, usability, performance etc. There is no active role of
tester in the process so it is usually performed by developers with Unit Test.
Sometimes dedicated test teams are needed depending on nature &
complexity of project.
Role of test engineer in scrum team

■ 1) Attend sprint-planning sessions


■ 2) Attend daily stand-ups.
■ 3) Don’t save all the testing for the end; test throughout the sprint.
■ 4) Meet with developers for short hand-off demonstrations.
■ 5) Attend sprint retrospectives
■ 6) Document Test cases
The Role of a Tester in an Agile
Team
■ Understanding, implementing, and updating the Agile Test Strategy

■ Work with Product Owners to define Acceptance Criteria and the Definition of Done.

■ Measuring and reporting test coverage across all applicable coverage dimensions

■ Ensuring proper use of testing tools

■ Configuring, using, and managing test environments and test data

■ Writing and executing automated checks and reporting back to the team

■ Reporting defects and working with the team to resolve them

■ Coaching other team members in relevant aspects of testing

■ Ensuring the appropriate testing tasks are scheduled during release and iteration planning

■ Actively collaborating with developers and business stakeholders to clarify requirements, especially in terms of testability, consistency, and completeness

■ Participating proactively in daily standup meetings, story grooming sessions, team retrospectives, suggesting and implementing improvements

■ Within an Agile team, each team member is responsible for product quality and plays a role in performing test-related tasks.
Agile organizations may encounter some test-related organizational risks:

■ Testers work so closely to developers that they lose the appropriate tester mindset

■ Testers become tolerant of or silent about inefficient, ineffective, or low-quality practices within the team

■ Testers cannot keep pace with the incoming changes in time-constrained iterations
What is the role of a QA tester on a
Scrum team?
What is the role of a QA tester on a
Scrum team?
■ Face – To – Face Communication:
Face to face discussion with the team is the most efficient way to communicate ideas
to the time. A tester participates in Planning/ Release of the Sprint: The design
meetings are held every time before the sprint planning is done. The testers can
participate in this meeting and ask questions on the stories being discussed. The
tester should make a model in his mind about how the system would look and work
based on the discussions.
■ Capability to find ambiguity:
The tester would work collaboratively and productively with the product owner and the
customer to form acceptance criteria. An agile tester would be able to describe the
feature well. Before any user story is sent for development the tester and other team
members would discuss the complete user story with the team member to find out
what the customer wants.
■ Absolute Role:
The tester should have good interpersonal skills .Tester should have Technical
skills apart from that he should have good communication skills to deliver the project
to the client . This shows that the tester should have a broader range of functionality.
What is the role of a QA tester on a
Scrum team?
■ Technical Skills:
An agile tester understands the relevance of technical skills. He/She is always prepared
to contribute to the technical discussions of the team. His contribution may extend up
to code reviews, user stories grooming, requirements understanding. The Agile
Software Tester would work with the developers when they are performing unit
testing and share the perspective of testing from a tester point of view instead of
developer point.
■ Automation:
Agile testing involves automation at the time of unit testing and integration testing. For
automation There are many tools available for automation which does not require
prior training for language.
■ Exploratory Tester:
The skill of exploratory testing is a very useful and powerful method sometimes in the
agile process. An exploratory tester can utilize his skills to perform testing avoiding
risks and uncertainty in the product. The tester can get ideas from the initial design
discussions and the meetings with the team to uncover the system and explore more
in the system. Once the tester is able to find out the areas of ambiguity the tester can
work more systematically and efficiently in the product. An agile tester should share
their knowledge and information with the rest of the scrum team.
What are the various testing activity
on scrum process
■ sprint meeting : Which Item should be picked from backlogs and estimated
time for developing the component. It should also on the prioritizing the
work.
■ Daily scrum : In daily scrum meeting tester should get the information about
previously done tasks and also do plan for next task to deliver the developer.
■ Daily work : Tester should perform acceptance test ,system test and on the
unit test and integration test tester should perform Automation test on the
Daily work of the current sprint
In Review and Retrospection
meeting
■ The tester needs to identify what went wrong and what went right in the
current sprint
■ He needs to learn new lessons and best practices from the current sprint
■ The tester is encouraged to write new user stories that would help in testing
and also user stories that would help the customer
■ The tester will discuss like if any user story was not covered in current sprint.
■ Any obstructions in the project will be put under consideration of Scrum
Master.

You might also like