Agile Methodology:
Agile methodology is a practice
that promotes continuous iteration of development and testing throughout the software
development life cycle of the project. Both development and testing activities
are concurrent unlike the Waterfall model.
The
agile core values.
- Individual
and team interactions over processes and tools
- Working
software over comprehensive documentation
- Customer
collaboration over contract negotiation
- Responding
to change over following a plan
Different frameworks in Agile Methodology:
- Scrum
- Extreme Programming
- Crystal Methodologies
- Dynamic Software Development Method
- Feature driven development
- Lean Software Development
Above all are Agile frameworks. We will concentrate more on Scrum Framework.
Scrum Framework: Scrum is an agile process framework for managing complex knowledge
work, with an initial emphasis on software development, although it has been
used in other fields and is slowly starting to be explored for other complex
work, research and advanced technologies.
It is designed for teams of
ten or fewer members, who break their work into goals that can be completed
within time-boxed iterations.
Scrum contains multiple sprints. lets understand the sprints..
Sprints:
A sprint is a short, time-boxed period when a scrum team works to
complete a set amount of work. Sprints are at the very heart of scrum and agile
methodologies and getting sprints right will help your agile team ship better
software with fewer headaches.
Accordingly,
teams usually define a short duration of a Sprint up to 2-4 weeks. Team
collaboratively sets their target with Product Owner as "Sprint Goal" and plan
their work in “Sprint backlog”. As soon race starts after planning session, team work
together to complete planned work effectively and make it ready for review by
the end of that period.
Roles in Scrum:
- Product Owner
- Scrum master
- Scrum Team
1. Product Owner: The product owner, representing the
product's stakeholders and the voice of the customer (or may represent the
desires of a committee, is responsible for delivering good business results. Hence, the product owner is accountable for the
product backlog and for maximizing the value that the team delivers. The
product owner defines the product in customer centric terms (typically user
stories), adds them to the product backlog, and prioritizes them based on
importance and dependencies.
Product owner Responsibilities:
- Define and announce releases.
- Communicate delivery and team status.
- Share progress during governance meetings.
- Share significant RIDAs (risks, impediments, dependencies, and assumptions) with stakeholders.
- Negotiate priorities, scope, funding, and schedule.
- Ensure that the product backlog is visible, transparent and clear.
2. Scrum master: Scrum is facilitated by a scrum master, who is accountable for
removing impediments to the ability of the team to deliver the product goals
and deliverables. The scrum master is not a traditional team lead or project
manager but acts as a buffer between the team and any distracting influences.
The scrum master ensures that the scrum framework is followed. The scrum master
helps to ensure the team follows the agreed processes in the Scrum framework,
often facilitates key sessions, and encourages the team to improve. The role
has also been referred to as a team facilitator or servant-leader to reinforce
these dual perspectives.
Responsibilities:
- Helping the product owner maintain the product backlog in a way that ensures the needed work is well understood so the team can continually make forward progress
- Helping the team to determine the definition of done for the product, with input from key stakeholders
- Coaching the team, within the Scrum principles, in order to deliver high-quality features for its product
- Promoting self-organization within the team
- Helping the scrum team to avoid or remove impediments to its progress, whether internal or external to the team
- Facilitating team events to ensure regular progress
- Educating key stakeholders on Agile and Scrum principles
- Coaching the development team in self-organization and cross-functionality
3. Scrum Team: The Scrum team has from three to nine members who carry out all
tasks required to build increments of valuable output every sprint.
While team members are referred to as developers in some
literature, the term refers to anyone who plays a role in the development and
support of the system or product, and can include researchers, architects,
designers, data specialists, statisticians, analysts, engineers, programmers,
and testers, among others. However, due to the confusion that can arise when
some people do not feel the term 'developer' applies to them, they are often
referred to just as team members.
The team is self-organizing. While no work should come to the team
except through the product owner, and the scrum master is expected to protect
the team from too much distraction, the team should still be encouraged to
interact directly with customers and/or stakeholders to gain maximum
understanding and immediacy of feedback.
Scrum Ceremonies: Meetings, or "ceremonies" are an important part of agile
development. following are the Scrum ceremonies:
- Sprint Planning
- Daily Stand-up
- Sprint Review meeting
- Sprint Retrospective
1. Sprint Planning:
Attendees: development team, scrum master, product
owner
When: At the beginning of a sprint.
Duration: Usually an hour per week of iteration–e.g. a
two-week sprint kicks off with a two-hour planning meeting.
Purpose: Sprint planning sets up the entire team for
success throughout the sprint. Coming into the meeting, the product owner will
have a prioritized product backlog. They discuss each item with the development
team, and the group collectively estimates the effort involved. The development
team will then make a sprint forecast outlining how much work the team can
complete from the product backlog. That body of work then becomes the sprint
backlog.
2. Daily Stand-up
Attendees: development team, scrum master, product
owner
When: Once per day, typically in the morning.
Duration: No more than 15 minutes. Don't book a
conference room and conduct the stand up sitting down. Standing up helps keep
the meeting short!
Purpose: Stand-up is designed to quickly inform
everyone of what's going on across the team. It's not a detailed status
meeting. The tone should be light and fun, but informative. Have each team
member answer the following questions:
What did I complete yesterday?
What will I work on today?
Am I blocked by anything?
3. Sprint Review Meeting:
Attendees:
Required: development team, scrum master, product owner
Optional: project stakeholders
When: At the end of a sprint or milestone.
Duration: 30-60 minutes.
Purpose: Iteration review is a time to showcase the
work of the team. They can be in a casual format like "demo Fridays",
or in a more formal meeting structure. This is the time for the team to
celebrate their accomplishments, demonstrate work finished within the
iteration, and get immediate feedback from project stakeholders. Remember, work
should be fully demonstrable and meet the team's quality bar to be considered
complete and ready to showcase in the review.
4. Sprint Retrospective
Attendees: development team, scrum master, product owner
Purpose: Agile is about getting rapid feedback to make
the product and development culture better. Retrospectives help the team
understand what worked well–and what didn't.
Sprint Artifacts: Following are the sprint artifacts:
- Sprint Goal
- Product Backlog
- Sprint Backlog
- Definition of Done
- Sprint Burn-Down Chart
1. Sprint Goal : The Sprint Goal helps to focus the Sprint. It is the objective
that will be met within the Sprint through the implementation of the forecasted
Product Backlog items, and it provides guidance to the Development Team on why
it is building the Product Increment.
As per the Scrum Guide, the responsibility for crafting a Sprint
Goal is for the Scrum Team. It is however in large part of interest to the
Product Owner to support this process by having clear business goals for the
coming Sprint, which can also make ordering the Product Backlog a lot easier by
providing Focus.
2. Product Backlog: A product backlog is a list of all the things that are required in
the product and it is a dynamic and best understood requirement for any changes
to be made to the product. Product backlog owned by the Product Owner (PO)
which consists of a list all features, functions, requirements, enhancements,
and fixes that constitute the changes to be made to the product in the future
releases.
Typically, the requirements of a product keep changing, i.e.
change in business requirements, market conditions, or technology. Thus,
product backlog is consistently updated to reflect what the product needs to be
most useful to the target users.
3. Sprint Backlog: The Sprint Backlog is the set of Product Backlog items selected
for the Sprint plus a plan for delivering the product Increment and realizing
the Sprint Goal. The Sprint Backlog is a forecast by the Development Team about
what functionality will be in the next Increment and the work needed to deliver
that functionality. The Sprint Backlog defines the work the Development Team
will perform to turn Product Backlog items into a “Done” Increment. The Sprint
Backlog makes visible all of the work that the Development Team identifies as
necessary to meet the Sprint Goal.
4. Definition of Done: Every Product Backlog item has acceptance criteria that define
measurably what must be met when the item is declared to be done. Many criteria
apply to all or many Product Backlog items. Instead of repeatedly defining
these criteria with each item, it has proven to be useful to collect these
criteria in one place: the Definition of Done.
Thus, the Definition of Done is a shared understanding of the Scrum Team
on the meaning of work to be complete. It typically contains quality criteria,
constraints and overall non-functional requirements. Here is some examples:
5. Sprint Burn-Down Chart:At any point in time in a Sprint, the total work remaining in the
Sprint Backlog can be summed. The Team tracks this total work remaining for
every Daily Scrum to project the likelihood of achieving the Sprint Goal. By
tracking the remaining work throughout the Sprint, the Team can manage its
progress.
Sprint Burn-Down Chart is a practice for trending the work
expended by the Scrum Team. This has been proven to be a useful technique in
monitoring the Sprint progress towards the Sprint Goal.
The Product Owner tracks this total work remaining at least every
Sprint Review. The Product Owner compares this amount with work remaining at
previous Sprint Reviews to assess progress toward completing the projected work
by the desired time for the goal. This information is shared with all stakeholders.
No comments:
Post a Comment
If any suggestions or issue, please provide