Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
agile inceptions 101
the basics of a Pivotal Labs core practice
- what's a core practice? webster's dictionary defines it as ... j/k
A Practice is a path
towards a Goal or Principle
A Practice is just one possible path
(of many possible Paths)
towards a Goal or Principle
TL;DR
TL;DR TL;DL
TL;DL
- goal of an inception:
build a shared understanding
TL;DL
- goal of an inception:
build a shared understanding
- everything else is secondary,
including story writing and estimation
TL;DL
- goal of an inception:
build a shared understanding
- everything else is secondary,
including story writing and estimation
- there is no 3
Thank you!
Questions?
What Are We Gonna Talk About?
- a Practice is just one possible Path
-
-
-
-
- a Practice is just one possible Path
- why Shared Understanding is important
-
-
-
- a Practice is just one possible Path
- why Shared Understanding is important
- outline of a ✌typical inception✌
-
-
- a Practice is just one possible Path
- why Shared Understanding is important
- outline of a ✌typical inception✌
- antipatterns, tricks and tips
-
- a Practice is just one possible Path
- why Shared Understanding is important
- outline of a ✌typical inception✌
- antipatterns, tricks and tips
- inception sandwich: scopings and estimation
a Practice
is just one possible Path
- we should always be re-evaluating how we help clients reach their goals
- LUXR is bringing lots of experimentation and new tools
- i'm not going to talk about that today
- let's focus on one particularly well-trodden path
- the first inception for a project,
- when unknowns are many,
- and teams haven't gelled yet
meta-agile
"do what works"
- means:
- moses didn't come down the mountain
- what we currently do is constantly evolving
- and it's different from how we did it N years ago
- we need to be able to respond to change
- and to different clients
- and to different client goals
- anything else is waterfall
- who judges what's working? YOU DO.
a Practice is just one possible Path
- why Shared Understanding is important
- outline of a ✌typical inception✌
- antipatterns, tricks and tips
- inception sandwich: scopings and estimation
Shared Understanding
- sounds touchy-feely, insubstantial for a one- or two-day meeting
- why is this important?
Shared Understanding
at the heart of most (all?) of our practices
- retros
- IPMs
- pairing
- TDD/BDD
- gherkin as-a/i-want/so-that
Shared Understanding
everything is at risk without it
- "what happens if client staff aren't all on the same page?"
- "what happens if we aren't on the same page as the client?"
- unless we walk out of the room with a shared understanding, everything else is at risk
- e.g.: priority churn
- e.g.: refusal to accept delivered stories
- e.g.: refusal to pair
- e.g.: refusal to pay
a Practice is just one possible Path
why Shared Understanding is important
- outline of a ✌typical inception✌
- antipatterns, tricks and tips
- inception sandwich: scopings and estimation
✌typical inception✌
let's see if we can derive an agenda from first principles
(to the whiteboard!)
possibly-useful questions
what are the goals of an inception?
are there things we want to avoid addressing?
what might put the goals at risk?
who are typical people in the room?
... and what do they want to get out of it?
- goals
- shared understanding ... about what?
- business domain
- business goals
- ubiquitous language
- mitigating risks
- write stories
- estimate stories
- prioritize the goals
- anti-goals
- write stories?
- estimate stories?
- risks and mitigations
- lack of language → dictionary
- off-topic conversations → parking lot
- too many voices → use notecards
- failure to prioritize → 2x2 quadrants with arbitrary axes
- too much emotion/baggage → independent facilitator
- people
- facilitator
- CEO
- CTO
- project manager
- product manager
- designer
- developer
- Labs CL
how did that brainstorming session feel?
- dude, did we just build some shared understanding?
a Practice is just one possible Path
why Shared Understanding is important
outline of a ✌typical inception✌
- antipatterns, tricks and tips
- inception sandwich: scopings and estimation
antipatterns
it's the first time many clients are face-to-face with our process and practices
- many of the same antipatterns that show up during an engagement
- no single, accountable, knowledgable product owner
- command-and-control: "do what we say, staff-aug!"
- thinking that "done done" is a thing
- refusal to acknowledge unknowns
- refusal to re-examine assumptions
- "let's pick this crazy technology"
- "let's dive into implementation details"
- client feeling threatened by questions
- too many people in the room
- unprepared client (e.g., the learning-game client)
other tips and tricks
- develop ubiquitous language: dictionary
- stem unconstructive conversation: parking log
- more-flexible whiteboard: use post-its for recategorization and reprioritization
- less verbal communication: use notecards
- huge scope: break risks down by epics, and loop that back into prioritization
- refusal to prioritize: use 2x2 to force decisions and prioritization decisions
the independent facilitator
when is it necessary?
- is it always a good idea to have an independent 3rd party facilitating?
- what if you have an agenda you're trying to drive the room towards?
- why don't you have an agenda? don't you have an opinion?
- opinions aren't bad.
a Practice is just one possible Path
why Shared Understanding is important
outline of a ✌typical inception✌
antipatterns, tricks and tips
- inception sandwich: scopings and estimation
scoping notes
we cover all this in the scoping, no?
- we'll use notes as a starting point
- but things often change radically between scoping and inception:
- staffing changes
- gained knowledge
- tech spike
- different people in the room
scoping notes
we need to re-build the shared understanding
- with the whole team
- with the stakeholders
- assimilating things learned in the meantime
story writing and estimation
start with epics
story writing and estimation
"registration and login"
story writing and estimation
put roles under the epic
story writing and estimation
"as an anonymous guest, I should be able to ..."
"as a registered user, I should be able to ..."
story writing and estimation
write stories (quickly)
arrange in dependency order under the role
story writing and estimation
"... click on a 'Start Fizzywigging!' CTA"
"... enter my email and password"
"... enter my username and password"
"... click on 'Forgot Password'"
story writing and estimation
point stories as usual
story writing and estimation
figure out the team's probable initial velocity
- shuffle up notecards
- after noting where they were
- deal a hand to each developer
- each person chooses a set of stories that they think will take a pair-week to do
- compare and chat
- repeat until team arrives at a consensus
that's all I got for now.