43
A code dojo… for Product Owners?! CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch Image courtesy of southwellpics@flickr CC-SA-NC

Code Dojo for Product Owners

Embed Size (px)

Citation preview

Page 1: Code Dojo for Product Owners

A code dojo… for Product Owners?!

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Image courtesy of southwellpics@flickr CC-SA-NC

Page 2: Code Dojo for Product Owners

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

Page 3: Code Dojo for Product Owners

My name is Peter Stevens.

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

[email protected]

@peterstev

Peter Stevens#SGMUNXVII – X – MMXVI

Page 4: Code Dojo for Product Owners

And my name is Tomasz Wykowski

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

[email protected]

http://www.linkedin.com/in/wykowski

@twykowski

Page 5: Code Dojo for Product Owners

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

Page 6: Code Dojo for Product Owners

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?

Page 7: Code Dojo for Product Owners

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

Page 8: Code Dojo for Product Owners

- Pair Programming- Test Driven

Development- Code Dojo

What are we going to cover?

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Page 9: Code Dojo for Product Owners

Pair ProgrammingBecause Two Heads Are Better Than One

DriverNavigator

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Page 10: Code Dojo for Product Owners

If you can drive the car, what good is a navigator?

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

DriverNavigator

Page 11: Code Dojo for Product Owners

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

Page 12: Code Dojo for Product Owners

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

Page 13: Code Dojo for Product Owners

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,

Page 14: Code Dojo for Product Owners

Explain it to your neighbor:How does Pair Programming work?

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

DriverNavigator

Page 15: Code Dojo for Product Owners

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

Page 16: Code Dojo for Product Owners

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

Page 17: Code Dojo for Product Owners

Explain to your neighbor how Test Driven Development works

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Page 18: Code Dojo for Product Owners

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

Page 19: Code Dojo for Product Owners

Introducing: Code DojoA fun place to learn!

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Page 20: Code Dojo for Product Owners

Introducing: Code DojoA fun place to learn!

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

DriverNavigator

Page 21: Code Dojo for Product Owners

Introducing: Code DojoA fun place to learn!

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

DriverNavigator

Team

Page 22: Code Dojo for Product Owners

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

Page 23: Code Dojo for Product Owners

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

Page 24: Code Dojo for Product Owners

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

Page 25: Code Dojo for Product Owners

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

Page 26: Code Dojo for Product Owners

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

Page 27: Code Dojo for Product Owners

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

Page 28: Code Dojo for Product Owners

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

Page 29: Code Dojo for Product Owners

Coding dojo example

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Page 30: Code Dojo for Product Owners

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

Page 31: Code Dojo for Product Owners

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

Page 32: Code Dojo for Product Owners

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

Page 33: Code Dojo for Product Owners

Let’s do a Code Dojo!

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Page 34: Code Dojo for Product Owners

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

Page 35: Code Dojo for Product Owners

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

Page 36: Code Dojo for Product Owners

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:

Page 37: Code Dojo for Product Owners

Coding Dojo:Start with a Driver and Navigator & An Empty Slide

Driver

NavigatorRestof Team

Scrum Master

Page 38: Code Dojo for Product Owners

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

Page 39: Code Dojo for Product Owners

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

Page 40: Code Dojo for Product Owners

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

Page 41: Code Dojo for Product Owners

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

Page 42: Code Dojo for Product Owners

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

Page 43: Code Dojo for Product Owners

Questions

Photo © leonardo viti - fotolia

CC-BY-SA 2008 - 2016 Peter Stevens | saat-network.ch

Tomasz Wykowski

[email protected]

@twykowski

Peter Stevens

[email protected]

@peterstev