SlideShare a Scribd company logo
1 of 44
Download to read offline
Code Retreat Facilitation (Advanced)
Alex Bolboacă, @alexboly, alex.bolboaca@mozaicworks.com
September 2017
1
Code Retreats are weird. . . and awesome!
But coderetreats have issues. . .
Issue #1: Explain the concept better
Issue #2: Some people don’t delete the code
Issue #3: Participants leave before the end
Issue #4: Recurrent participants report getting bored with the
problem
Putting it all together
Bonus 2
Code Retreats are weird. . . and
awesome!
3
First code retreat outside US
Figure 1: 8 July 2009 4
Someone’s missing in this picture. . .
Figure 2: Maria was probably the first host. She also co-facilitated 5
But coderetreats have issues. . .
6
A list
• First timers find the concept difficult to understand
• Some people don’t delete the code
• Some participants leave earlier, don’t stick till the end
• Recurrent participants report getting bored with the problem
Let’s fix these!
7
Issue #1: Explain the concept
better
8
What is weird about coderetreats?
Facilitator != trainer
Facilitator != teacher
Facilitator != mentor
Yet the facilitator is in the front of the room, driving the
sessions!
9
What is a facilitator really?
Figure 3: Definition from Merriam-webster
https://www.merriam-webster.com/dictionary/facilitate
10
A coderetreat facilitator is. . .
Someone that facilitates experimentation and learning during a
coderetreat, by:
• preparing an appropriate space
• clarifying goals
• removing impediments
This looks a lot like coaching
11
Solution: Clarify responsibilities
Figure 4: We could tell them 12
What you learn is your responsibility
I once had a participant to a coderetreat who, at
each session retrospective told the group that
“python is the best language”. At the end, he
said he didn’t learn anything. My question for
him was “why did you stay then?”.
What you learn today is your responsibility. I will
not be your teacher or your trainer. I will do my
best to provide you with an environment that
helps you explore new ideas and get out of your
comfort zone.
13
Issue #2: Some people don’t delete
the code
14
How to approach this?
• General facilitator stance: encourage, avoid enforcing.
• Why? Internal motivation > External enforcing
• So what’s a good internal motivation?
• How about frustration?
15
Solution: mention their everyday frustration with bad code
Embrace the freedom of deleting the code
Think about the code you see every day at work.
You certainly want to delete part of it, but you
can’t. Well, today you can! So embrace this
freedom. You will see, it feels very good.
16
Issue #3: Participants leave before
the end
17
Why do they?
• I had this for a long time. Up to half of people were leaving
after 4th session
• It’s ok for a few to leave due to time constraints
• So why does it happen?
• My hypothesis: it’s an issue of engagement and responsibility
18
Solution: Make the goals visible
Step 1: write on a flipchart the list of topics we can explore: pair
programming, software design, test driven development, refactoring,
clean code, functional programming
Step 2: ask participants if they would be interested in other topics
and write them down as well
Step 3: ask participants to dot-vote the topics
Step 4: order topics based on number of votes
Step 5: select (or create new) sessions that fit the topics
Step 6: after each session, check the topic that was touched
19
Remarks
• Applying this technique has reduced the number of people
leaving early
• But it’s more difficult to facilitate - requires experience
• This changes the dynamic of the whole day
20
Recommendations if you want to try this
• Practice facilitating the dot voting session
• Picking the sessions based on participant’s needs requires a
lot of experience. If you try this, have 2-3 sessions prepared for
each topic
• First session should be something basic, because you won’t
have time to pick anything fancy
• Because the interest are different, give two options on every
session
• Try to have remote support, so that you can ask for a session if
you’re in trouble. Adi is my support
• If you don’t know what to pick for a certain topic, be honest
about it with the group
21
Examples of sessions
• Pair programming: basic ping-pong, silent pairing, “Yes, and
. . . ”
• Software design: focus on names, focus on removing
duplication, single responsibility, double session with changing
requirements
• Test driven development: basic ping-pong with TDD, TDD
as if you meant it, TDD with time limit
• Refactoring: focus on names, focus on removing duplication,
taking baby steps, brutal refactoring
• Clean code: anything from object calisthenics, immutability
• Functional programming: make everything immutable, only
pure functions
22
Issue #4: Recurrent participants
report getting bored with the
problem
23
Why?
Possible reasons:
• they tried all the possible solutions (doubtful)
• they don’t like the problem for personal reasons
• they don’t understand that the problem doesn’t matter
• they can’t link the sessions with what they learn
24
Solution
1. Change the introduction to put less focus on the problem.
2. Allow people freedom in choosing the things they want to try
and their constraints.
25
Do what you always wanted, but didn’t have the time
Maybe you always wanted to try out a technique,
or another approach. But we never have the
time to do this at work. Today you’re lucky: try
anything you want. Coderetreats allow you to
try pair programming, test driven development
and the four elements of simple design. But if
you want to try another programming language,
or another paradigm, just let the others know,
find a pair and do it."
26
Putting it all together
27
Introduction
In the introduction I introduce the following advice for participants:
How to get the most out of a coderetreat
1. Embrace the freedom of deleting the code
Read more: How to get the most out of a code retreat,
http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out-
of-a-code-retreat
28
Introduction
In the introduction I introduce the following advice for participants:
How to get the most out of a coderetreat
1. Embrace the freedom of deleting the code
2. Do what you always wanted, but didn’t have the time
Read more: How to get the most out of a code retreat,
http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out-
of-a-code-retreat
28
Introduction
In the introduction I introduce the following advice for participants:
How to get the most out of a coderetreat
1. Embrace the freedom of deleting the code
2. Do what you always wanted, but didn’t have the time
3. Get out of your comfort zone
Read more: How to get the most out of a code retreat,
http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out-
of-a-code-retreat
28
Introduction
In the introduction I introduce the following advice for participants:
How to get the most out of a coderetreat
1. Embrace the freedom of deleting the code
2. Do what you always wanted, but didn’t have the time
3. Get out of your comfort zone
4. Pair with strangers in languages you don’t know
Read more: How to get the most out of a code retreat,
http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out-
of-a-code-retreat
28
Introduction
In the introduction I introduce the following advice for participants:
How to get the most out of a coderetreat
1. Embrace the freedom of deleting the code
2. Do what you always wanted, but didn’t have the time
3. Get out of your comfort zone
4. Pair with strangers in languages you don’t know
5. What you learn is your responsibility
Read more: How to get the most out of a code retreat,
http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out-
of-a-code-retreat
28
Facilitation
• Make the topics & the interests visible
• Pick sessions based on the interests
29
Bonus
30
Bonus #1: Information radiators
I use two extra flipcharts:
• one where I write what people tell in the retrospectives that
they learned
• the second where I write interesting things I noticed
31
Bonus #2: Relax
Most of the facilitation fatigue comes from self-induced stress.
If you put participants in the right mindset and provide the right
space, you aren’t needed that much anymore.
Using the above techniques and practicing your introduction
reduced my stress by 70-80%.
32
Bonus #3: Closing sessions
It’s best for the closing session to be fun and relaxing. A few good
ones:
• Mute evil pairing
• Buffy session (or creativity over implementation): At the
beginning, there’s a vampire cell. Vampire cells turn other cells
nearby into vampires. In every generation, there is a slayer that
kills all vampire cells around it. Tell me a story in this universe
using Conway’s rules
• Write the worst code you can
33
Bonus #4: Experiment
Figure 5: Coderetreats would be single language w/o 2009 experiments 34
My next experiment
Try out pacman as a coderetreat problem
Why pacman?
• Difficult to finish in 45’
• Easy to understand
• Large solution space
• Similar design problems as for Conway’s (except the infinite
grid)
• Additional difficulties (movement of the enemies)
• Existing sessions can be used
• Can start from multiple places
• ? Validated in practice
35
Closing
36
The coderetreat book
Figure 6: Code retreat book https://leanpub.com/coderetreat
37
My blog
Figure 7: On coderetreats and more 38
Contact me
Alex Bolboacă
@alexboly
alex.bolboaca@mozaicworks.com
39
Thank you! Q&A
Figure 9: Your Questions? 40

More Related Content

More from Alexandru Bolboaca (20)

TDD As If You Meant It
TDD As If You Meant ItTDD As If You Meant It
TDD As If You Meant It
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Hidden loops
Hidden loopsHidden loops
Hidden loops
 
Removing structural duplication
Removing structural duplicationRemoving structural duplication
Removing structural duplication
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Why You Should Start Using Docker
Why You Should Start Using DockerWhy You Should Start Using Docker
Why You Should Start Using Docker
 
Pyramid of-developer-skills
Pyramid of-developer-skillsPyramid of-developer-skills
Pyramid of-developer-skills
 
Applied craftsmanship
Applied craftsmanshipApplied craftsmanship
Applied craftsmanship
 
Pyramid of-developer-skills
Pyramid of-developer-skillsPyramid of-developer-skills
Pyramid of-developer-skills
 
Stay focused
Stay focusedStay focused
Stay focused
 
Kanban intro
Kanban introKanban intro
Kanban intro
 
Unit testing-patterns
Unit testing-patternsUnit testing-patterns
Unit testing-patterns
 
Incremental design, simply explained
Incremental design, simply explainedIncremental design, simply explained
Incremental design, simply explained
 
Exploring design-alternatives-using-tdd
Exploring design-alternatives-using-tddExploring design-alternatives-using-tdd
Exploring design-alternatives-using-tdd
 
Feedback - The Lost Art of Agile
Feedback -  The Lost Art of AgileFeedback -  The Lost Art of Agile
Feedback - The Lost Art of Agile
 
Build a great Technical Team
Build a great Technical TeamBuild a great Technical Team
Build a great Technical Team
 
Deliver every two days
Deliver every two daysDeliver every two days
Deliver every two days
 
Introduction to software craftsmanship
Introduction to software craftsmanshipIntroduction to software craftsmanship
Introduction to software craftsmanship
 
Introduction to software craftsmanship
Introduction to software craftsmanshipIntroduction to software craftsmanship
Introduction to software craftsmanship
 
The agile road.key
The agile road.keyThe agile road.key
The agile road.key
 

Recently uploaded

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Recently uploaded (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

Code retreat Facilitation (Advanced methods)

  • 1. Code Retreat Facilitation (Advanced) Alex Bolboacă, @alexboly, alex.bolboaca@mozaicworks.com September 2017 1
  • 2. Code Retreats are weird. . . and awesome! But coderetreats have issues. . . Issue #1: Explain the concept better Issue #2: Some people don’t delete the code Issue #3: Participants leave before the end Issue #4: Recurrent participants report getting bored with the problem Putting it all together Bonus 2
  • 3. Code Retreats are weird. . . and awesome! 3
  • 4. First code retreat outside US Figure 1: 8 July 2009 4
  • 5. Someone’s missing in this picture. . . Figure 2: Maria was probably the first host. She also co-facilitated 5
  • 6. But coderetreats have issues. . . 6
  • 7. A list • First timers find the concept difficult to understand • Some people don’t delete the code • Some participants leave earlier, don’t stick till the end • Recurrent participants report getting bored with the problem Let’s fix these! 7
  • 8. Issue #1: Explain the concept better 8
  • 9. What is weird about coderetreats? Facilitator != trainer Facilitator != teacher Facilitator != mentor Yet the facilitator is in the front of the room, driving the sessions! 9
  • 10. What is a facilitator really? Figure 3: Definition from Merriam-webster https://www.merriam-webster.com/dictionary/facilitate 10
  • 11. A coderetreat facilitator is. . . Someone that facilitates experimentation and learning during a coderetreat, by: • preparing an appropriate space • clarifying goals • removing impediments This looks a lot like coaching 11
  • 12. Solution: Clarify responsibilities Figure 4: We could tell them 12
  • 13. What you learn is your responsibility I once had a participant to a coderetreat who, at each session retrospective told the group that “python is the best language”. At the end, he said he didn’t learn anything. My question for him was “why did you stay then?”. What you learn today is your responsibility. I will not be your teacher or your trainer. I will do my best to provide you with an environment that helps you explore new ideas and get out of your comfort zone. 13
  • 14. Issue #2: Some people don’t delete the code 14
  • 15. How to approach this? • General facilitator stance: encourage, avoid enforcing. • Why? Internal motivation > External enforcing • So what’s a good internal motivation? • How about frustration? 15
  • 16. Solution: mention their everyday frustration with bad code Embrace the freedom of deleting the code Think about the code you see every day at work. You certainly want to delete part of it, but you can’t. Well, today you can! So embrace this freedom. You will see, it feels very good. 16
  • 17. Issue #3: Participants leave before the end 17
  • 18. Why do they? • I had this for a long time. Up to half of people were leaving after 4th session • It’s ok for a few to leave due to time constraints • So why does it happen? • My hypothesis: it’s an issue of engagement and responsibility 18
  • 19. Solution: Make the goals visible Step 1: write on a flipchart the list of topics we can explore: pair programming, software design, test driven development, refactoring, clean code, functional programming Step 2: ask participants if they would be interested in other topics and write them down as well Step 3: ask participants to dot-vote the topics Step 4: order topics based on number of votes Step 5: select (or create new) sessions that fit the topics Step 6: after each session, check the topic that was touched 19
  • 20. Remarks • Applying this technique has reduced the number of people leaving early • But it’s more difficult to facilitate - requires experience • This changes the dynamic of the whole day 20
  • 21. Recommendations if you want to try this • Practice facilitating the dot voting session • Picking the sessions based on participant’s needs requires a lot of experience. If you try this, have 2-3 sessions prepared for each topic • First session should be something basic, because you won’t have time to pick anything fancy • Because the interest are different, give two options on every session • Try to have remote support, so that you can ask for a session if you’re in trouble. Adi is my support • If you don’t know what to pick for a certain topic, be honest about it with the group 21
  • 22. Examples of sessions • Pair programming: basic ping-pong, silent pairing, “Yes, and . . . ” • Software design: focus on names, focus on removing duplication, single responsibility, double session with changing requirements • Test driven development: basic ping-pong with TDD, TDD as if you meant it, TDD with time limit • Refactoring: focus on names, focus on removing duplication, taking baby steps, brutal refactoring • Clean code: anything from object calisthenics, immutability • Functional programming: make everything immutable, only pure functions 22
  • 23. Issue #4: Recurrent participants report getting bored with the problem 23
  • 24. Why? Possible reasons: • they tried all the possible solutions (doubtful) • they don’t like the problem for personal reasons • they don’t understand that the problem doesn’t matter • they can’t link the sessions with what they learn 24
  • 25. Solution 1. Change the introduction to put less focus on the problem. 2. Allow people freedom in choosing the things they want to try and their constraints. 25
  • 26. Do what you always wanted, but didn’t have the time Maybe you always wanted to try out a technique, or another approach. But we never have the time to do this at work. Today you’re lucky: try anything you want. Coderetreats allow you to try pair programming, test driven development and the four elements of simple design. But if you want to try another programming language, or another paradigm, just let the others know, find a pair and do it." 26
  • 27. Putting it all together 27
  • 28. Introduction In the introduction I introduce the following advice for participants: How to get the most out of a coderetreat 1. Embrace the freedom of deleting the code Read more: How to get the most out of a code retreat, http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out- of-a-code-retreat 28
  • 29. Introduction In the introduction I introduce the following advice for participants: How to get the most out of a coderetreat 1. Embrace the freedom of deleting the code 2. Do what you always wanted, but didn’t have the time Read more: How to get the most out of a code retreat, http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out- of-a-code-retreat 28
  • 30. Introduction In the introduction I introduce the following advice for participants: How to get the most out of a coderetreat 1. Embrace the freedom of deleting the code 2. Do what you always wanted, but didn’t have the time 3. Get out of your comfort zone Read more: How to get the most out of a code retreat, http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out- of-a-code-retreat 28
  • 31. Introduction In the introduction I introduce the following advice for participants: How to get the most out of a coderetreat 1. Embrace the freedom of deleting the code 2. Do what you always wanted, but didn’t have the time 3. Get out of your comfort zone 4. Pair with strangers in languages you don’t know Read more: How to get the most out of a code retreat, http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out- of-a-code-retreat 28
  • 32. Introduction In the introduction I introduce the following advice for participants: How to get the most out of a coderetreat 1. Embrace the freedom of deleting the code 2. Do what you always wanted, but didn’t have the time 3. Get out of your comfort zone 4. Pair with strangers in languages you don’t know 5. What you learn is your responsibility Read more: How to get the most out of a code retreat, http://www.alexbolboaca.ro/coderetreat/how-to-get-the-most-out- of-a-code-retreat 28
  • 33. Facilitation • Make the topics & the interests visible • Pick sessions based on the interests 29
  • 35. Bonus #1: Information radiators I use two extra flipcharts: • one where I write what people tell in the retrospectives that they learned • the second where I write interesting things I noticed 31
  • 36. Bonus #2: Relax Most of the facilitation fatigue comes from self-induced stress. If you put participants in the right mindset and provide the right space, you aren’t needed that much anymore. Using the above techniques and practicing your introduction reduced my stress by 70-80%. 32
  • 37. Bonus #3: Closing sessions It’s best for the closing session to be fun and relaxing. A few good ones: • Mute evil pairing • Buffy session (or creativity over implementation): At the beginning, there’s a vampire cell. Vampire cells turn other cells nearby into vampires. In every generation, there is a slayer that kills all vampire cells around it. Tell me a story in this universe using Conway’s rules • Write the worst code you can 33
  • 38. Bonus #4: Experiment Figure 5: Coderetreats would be single language w/o 2009 experiments 34
  • 39. My next experiment Try out pacman as a coderetreat problem Why pacman? • Difficult to finish in 45’ • Easy to understand • Large solution space • Similar design problems as for Conway’s (except the infinite grid) • Additional difficulties (movement of the enemies) • Existing sessions can be used • Can start from multiple places • ? Validated in practice 35
  • 41. The coderetreat book Figure 6: Code retreat book https://leanpub.com/coderetreat 37
  • 42. My blog Figure 7: On coderetreats and more 38
  • 44. Thank you! Q&A Figure 9: Your Questions? 40