0% found this document useful (0 votes)
42 views32 pages

Agile Methodology1

Uploaded by

Laiba Mureed
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)
42 views32 pages

Agile Methodology1

Uploaded by

Laiba Mureed
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/ 32

Agile Methodology

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