Agile
Agile
■ 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
■ 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.
■ 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
■ 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
■ 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.
■ 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
■ Work with Product Owners to define Acceptance Criteria and the Definition of Done.
■ Measuring and reporting test coverage across all applicable coverage dimensions
■ Writing and executing automated checks and reporting back to the team
■ 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.