1
Agile Refresh
Etsy 2019
What is Agile trying to solve?
2
Agile’s 4 core values
●
Individuals and interactions over processes and tools
●
Working software over comprehensive documentation
●
Customer collaboration over contract negotiation
●
Responding to change over following a plan
3
The Agile 12 principles distilled
●
Project and business team work together daily, throughout the project
●
Provide motivated individuals with the environment and support they need.
Trusting them to get the job done
●
Create processes that promote sustainable efforts (constant pace indefinitely)
4
The Agile 12 principles distilled
●
Deliver frequently, with a preference to the shorter timescale
●
Simplicity (the art of maximizing the amount of work not done) is essential
●
Satisfy customer through early and continuous delivery of valuable work
●
Welcome changing requirements, even late in a project
5
Scrum Concept
Epics & Shell
Stories
Daily
Rituals
2 weeks
Backlog Refinement
Backlog refinement (formerly known as backlog grooming) is when the product owner
and some, or all, of the rest of the team review items on the backlog to ensure the
backlog contains the appropriate items, that they are prioritized, and that the items at the
top of the backlog are ready for delivery. This activity occurs on a regular basis and may
be an officially scheduled meeting or an ongoing activity. Some of the activities that
occur during this refinement of the backlog include:
●
●
●
●
●
●
removing user stories that no longer appear relevant
creating new user stories in response to newly discovered needs
re-assessing the relative priority of stories
assigning estimates to stories which have yet to receive one
correcting estimates in light of newly discovered information
splitting user stories which are high priority but too coarse grained to fit in an
upcoming iteration
7
Other Ceremonies
8
Agile Team Roles
Stakeholders
9
10
Stories, Spikes,
Bugs and Backlogs
What is a user story?
User stories are short, simple descriptions of a feature told from the
perspective of the person who desires the new capability, usually a user or
customer of the system. They typically follow a simple template:
As a < type of user >, I want < some goal > so that < some reason >.
User stories are relatively sized with story points
11
INVEST: The attributes of a solid user story
I = Independent—Can this story be completed by the team? We want the team to be able to complete the whole story rather than
be dependent on a different team to do the GUI, for example.
N = Negotiable—The story is not so detailed as to describe exactly how long the fields should be or give specifics about date
formats and the like. Most likely there will be common routines or libraries that will allow the development team to implement in the
way that makes the most sense for them.
V = Valuable—The product owner describes that the value being sought is the ability for the trainer to be able to advertise upcoming
classes. This is clear in the "why" of the original statement and re-emphasized in the conversation.
E = Estimable—The team will ask enough questions and gather the details to feel confident in their ability to estimate the story.
S = Small—The team needs to feel confident that they’ll be able to complete the story within a sprint. If they do not, they might split
the story. For instance, in our sample story, they may decide to make the ability to gather the student information be a different story
and simply display information about the class for this story.
T = Testable—With clear acceptance criteria, both the happy path and error conditions can be tested.
12
What are story points?
Story points are relative, with no connection to any specific unit such as time or
monetary value.
Story points reflect complexity in relation to the smallest story that’s assigned a
one. That small story function as a baseline for future estimates.
Story points are estimated following the fibonacci scale (1,2,3,5,8,13)
Relative sizing should be quick - overthinking does not add much value.
13
Relative Sizing for stories
14
What is velocity?
•
•
•
•
•
Velocity reflect the total number of story points that a given team delivers
within a iteration.
Average Team Velocity is the average number of story points that a team
consistently delivers over a series of iterations. Usually is this the average is
based on the past 3-4 iterations
Velocity for a team is relative and unique for that team (velocity between
teams should not be compared since it’s a team driven relative metric).
Velocity only reflects value of working software. Investigations (Spikes) and
Bugs are not estimated and assigned points.
Over time a teams velocity tends to go up when the team gets more efficient
and gains knowledge. If a team uses absolute sizing the velocity will not
improve b/c the team will then estimate time needed rather than relative
complexity.
15
Different team members have different experiences and different views on the complexity of a story
16
What is a Spike?
•
•
Spikes are investigation tickets that should not be sized since they do not
result in working software in production
Outcome of a spike often results in a story, outcome can also results in a
decision not to work on a specific feature.
Spikes are time boxed (usually 1-2 days) and not sized with story points since
a Spike does not deliver customer value directly like a story.
17
What is a Bug?
•
Bugs are defects in the code that needs to be fixed. The Product owner
reviews and prioritizes the bugs during backlog refinement unless there is
a critical production issue that needs to be addressed asap.
Bugs are not sized since they do not results in new working software in
production, we’re fixing code that we already worked on (and sized).
18
19
Prioritization and
Backlog
Management
Establish a mindset
where cost of delay is
part of the
prioritization process
on a ongoing basis
Weighted Shortest Job First - WSJF
WSJF =
Cost of Delay
-----------------------------Job Duration (Size)
The case for minimizing WIP
There are many studies
that have found that
multitasking results in
waste due to frequent
context switching. We
should avoid working on
multiple stories at any
given time.
22
Definition of Done vs. Acceptance Criteria
23
Definition of Done
Acceptance Criteria
Applies to all stories. Used as a checklist that
verifies that the story is done
Applies to a specific story. Used as a checklist,
with the Definition of Done, that the story is done
Used to build a common understanding within
the Team about Quality and Completeness
Used to clarify what the team should do before
they start work
Ensure the increment shipped has high quality Ensures everyone has a common understanding
and that the quality is well understood by all
of the problem
involved.
Help the team members know when the Story is
complete
What do you think an example is that applies to your team?
24
Shift Left Concept
Shift Left is a devops
concept that we here at
Etsy are quite good at
thanks to our CI
(continuous integration)
model
25
26