Upload
tomasz-wykowski-cst
View
159
Download
0
Embed Size (px)
Citation preview
A code dojo… for Product Owners?!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Image courtesy of southwellpics@flickr CC-SA-NC
Permissions
- This work is licensed under a Creative Commons
Attribution-ShareAlike 4.0 International License.
- Some images are © Fotolia and their respective
photographers and may require additional licensing
to reuse.
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
My name is Peter Stevens.
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
@peterstev
Peter Stevens#SGMUNXVII – X – MMXVI
And my name is Tomasz Wykowski
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
http://www.linkedin.com/in/wykowski
@twykowski
Our goal is to inspire you to transform your world
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Imag
e co
urt
esy
of
amit
pat
flic
kr
Who else is in the room?Please introduce yourself to your neighbor
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
- What role do you have in a
Scrum Team (if any)?
- What do you know about
engineering practices?
- Why should you care
about engineering
practices?
Typical symptoms of bad engineering practices
Operational:
- Painful releases
- Infrequent releases
- Surprises during releases
- Defects on production
Strategic:
- High maintenance effort
- Hard and expensive to add
new features
- Unpredictable planning
- No fun, low motivation
leading to low productivity
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
- Pair Programming- Test Driven
Development- Code Dojo
What are we going to cover?
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Pair ProgrammingBecause Two Heads Are Better Than One
DriverNavigator
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
If you can drive the car, what good is a navigator?
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
Pair ProgrammingTwo People Collaborate to Solve the Problem
- Driver - Tactics
- Writes clean code
- Goals: compile, run, meet current goal
- Navigator – Strategy
- Reviews the code
- How does code fit in to overall architecture?
- Which tests will help most?
- Which refactoring would be most beneficial?
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Source: http://www.jamesshore.com/Agile-Book/pair_programming.html
Pair ProgrammingA navigator is not a back-seat driver
Do’s
- Start with a reasonably well-defined task
- Agree on one tiny goal at a time
- As Driver, focus on the immediate goal
- Watch attentively for bugs and other issues – raise them immediately
Don’ts
- Dictate code to the Driver
- Raise bigger issues before the goal is completed
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
http://www.wikihow.com/Pair-Program
Why Pair Programming?
© 2008 - 2016 Peter Stevens | saat-network.ch
http://www.wikihow.com/Pair-Program
Alistair Cockburn, Laurie WilliamsThe Costs and Benefits of Pair ProgrammingJanuary 2000,
Explain it to your neighbor:How does Pair Programming work?
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
Introducing: Test Driven Development
- “Red, Green, Refactor”
1. Write a test- The code hasn’t been written, so it fails and the test is red
2. Write code to pass the test- Make the test turn green (and fix any previous tests that break)
3. Improve the code- The test stays green (as do any other tests)
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
TDD & PP example in Google Doc
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Roman Numbers: https://docs.google.com/spreadsheets/d/1ie8VUBpvgiTZyFj8D9jwLj9SsNKFMAhMVakuwAeUzos/edit?usp=sharingPrime Factors: https://docs.google.com/spreadsheets/d/1N9e0vjKAQCoS1XIVAoLLf7WBPnICylNik8B-s4Y55wA/edit?usp=sharing
Explain to your neighbor how Test Driven Development works
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Why Test Driven Development && Pair Programming?
TDD and PP are:
- A thinking tools
- A design tools
- Reducing size of code
- Making sure our code works
- Making sure we can easily change anything
- Giving you production quality code all the time!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Introducing: Code DojoA fun place to learn!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Introducing: Code DojoA fun place to learn!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
Introducing: Code DojoA fun place to learn!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
Team
Introducing: Code DojoA fun place to learn and have fun!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
main(){
printf(
“How to do a coding dojo\n”
);
}
Team
Coding Dojoa place to learn and have fun while programming
- Start with a problem to solve
- Explain TDD (Red-Green-
Refactor) programming
- Roles:
- Driver on screen,
- navigator assists,
- rest of team watches on beamer
- Sprint lasts 5 to 10 minutes
- By end of Sprint
- Check in improved Code
- new green lights
(improved or more functionality)
- no new red lights
- After Sprint, Rotate:
- Driver -> Observer
- Navigator -> Driver
- Observer -> Navigator
- Repeat for 45 minutes to an
hour.
- Reflect on what you learned
http://johannesbrodwall.com/2011/12/18/how-to-start-a-coding-dojo/
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Getting StartedWhat is the problem?
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
As a stakeholder, I want to
understand the interactions
among the members of a Scrum
Team and with outsiders so we
understand each other and can
work together effectively.
What does the customer want?
Let me show you…
Team
Getting StartedHow do we know we got the right answer?
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
I have a good solution when I
have nice picture that explains:
how work flows into the team
how results come back out
how issues are raised
How do we demo this?
Here are the steps...
Team
Getting Started
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
I have a good solution when I
have nice picture that explains:
how work flows into the team
Let’s do the most important first
This is still awfully big
Team
Getting Started
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
how does work flow into the
team? We need to show:
• The 3 Scrum Roles• Product Backlog• Sprint Planning• Forecast
What do we have to show?
Team
Getting Started
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
how does work flows into the
team? We need to show:
• The 3 Scrum Roles• Product Backlog• Sprint Planning• Forecast
What do we have to show?
Let’s start with the roles…
Team
Coding dojo example
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
How does the whole team learn?Rotate!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
how does work flows into the
team? We need to show:
• The 3 Scrum Roles• Product Backlog• Sprint Planning• Forecast
Test Cases:
• PO, SM & DT
Team
Getting StartedRotate!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
how does work flows into the
team? We need to show:
• The 3 Scrum Roles• Product Backlog• Sprint Planning• Forecast
Test Cases:
• PO, SM & DT• Product Backlog
Team
Explain it to your neighbor:How does a Code Dojo work?
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
DriverNavigator
A problem to solve, and
• really small goals• i.e. test cases• along the way • to the solution
Test Cases:
• PO, SM & DT
Team
Let’s do a Code Dojo!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Define roles
- Identify Scrum Master, who will be responsible
for:
- observing team dynamic
- Timing
- making sure rules are observed
- Driver for first round
- Pilot for first round
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Our mission:Write on the front of a card
- As a scrum trainer
- I'd like an attractive poster to illustrate
backlog refinement
- so that I can explain the process to future
Product Owners
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
How do we know we’ve done it right?:Write on the back of the card
1. The product backlog is
an ordered list
2. Importance of next
release or business
goal, so I can explain
the role of goals in
decision making
3. The three classes of
backlog item, to
explain the “right
size” for the various
time horizons
4. that grains of sand are
not tasks, so I can
explain that refinement
is not the same as task
planning
5. Typical estimates for
each class
6. Like delivery, backlog
refinement is a
continuous process
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
I'd like an attractive poster to illustrate backlog
refinement. I’d like to explain:
Coding Dojo:Start with a Driver and Navigator & An Empty Slide
Driver
NavigatorRestof Team
Scrum Master
Create a graphical poster to explain Backlog Refinement
© 2008 - 2016 Peter Stevens | saat-network.ch
- As a scrum trainer, I'd like an attractive poster to illustrate backlog refinement, so that I can explain the process to future Product Owners
As a scrum trainer, I'd like to explain…
- The product backlog is an ordered list
- Importance of next release or business goal, so I can explain the role of goals in decision making
- The three classes of backlog item, so I can explain the concept of “right-sized” in the various stages of planning
- that grains of sand are not tasks, so I can explain that refinement is not the same as task planning
- Typical estimates for each class
- Like delivery, backlog refinement is a continuous process
Create a poster to satisfy the backlog
- Rotate every 3 Minutes until 12:05
- 12:05 Prepare for review
- 12:10 Review Market
- 12:20 Summary
- 12:30 – Done - please collect the markers
- Lunch Time!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
12:05 – Prepare for Review12:10 – Review
- Identify two presenters
- During review:- One presenter is staying with a poster, willing to explain to any
interested person
- All other team members are off to the market – looking at other posters,
learning, asking questions and providing feedback
- After 3 minutes rotate presenter!
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Why would you want your team to try this?
- Learn Faster
- Faster time to market
- Better code, fewer bugs
- Less problems
- Less meetings
- Less headache
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
For further information
- http://johannesbrodwall.com/2011/12/18/how-to-start-a-coding-dojo/
- http://www.wikihow.com/Pair-Program
- http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF
- http://www.jamesshore.com/Agile-Book/pair_programming.html
- http://mobprogramming.org
- Day of Mob Programming:- https://www.youtube.com/watch?v=p_pvslS4gEI
- https://www.youtube.com/watch?v=dVqUcNKVbYg
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Questions
Photo © leonardo viti - fotolia
CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch
Tomasz Wykowski
@twykowski
Peter Stevens
@peterstev