code dojo for product owners

Post on 22-Jan-2018

159 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

peter@scrumbreakfast.club

@peterstev

Peter Stevens#SGMUNXVII – X – MMXVI

And my name is Tomasz Wykowski

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

Tomasz.Wykowski@procognita.com

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

Tomasz.Wykowski@procognita.com

@twykowski

Peter Stevens

peter@scrumbreakfast.club

@peterstev

top related