Pair-Programming Workshop

This 2 day workshop goes into theory and practice of pair programming and tries to engage all participants into activities all the time. We are going from learning as a pair to practically solving tasks and programming  to the so called "Coding Dojo" a teachnique that helps groups to improve productivity.  

Day 1: Theory

Duration: 12 Slots a 30 Minutes including breaks = 6 hours

Introduction

Introduce the Workshop format, rules and let the participants set personal learning goals for the two days.

  • Duration: 25 Minutes

Contents

  • Explain Training from Back of the Room training style
  • Attendees brainstorming learning goals.
  • Speaker
  • Topic
  • Rules
    • Law of 2 feet
    • Grow and Glow game (feedback)
    • 25 Minutes Slots + 5 Minutes Breaks

 The Theory

25 Minute frontal opener for the topic

  • What is pair programming
    • A little history
  • Pairing formats, an overview
    • Pair Programming
    • Dojos
    • Katas

Materials

  • Post-Its
  • Edding Markers

Pair Draw

A simulation of pair programming, designed to give programmers (and whoever else is curious) a feel for what pair programming is like, before they actually try it.

Materials

  • Pens in different colors
  • sheets of Paper
  • A place to stick the resulting drawings for review

Skill-levels of programmers

It is known that, when we learn or train in something, we pass through the stages of shu, ha, and ri. These stages are explained as follows. In shu, we repeat the forms and discipline ourselves so that our bodies absorb the forms that our forebears created. We remain faithful to the forms with no deviation. Next, in the stage of ha, once we have disciplined ourselves to acquire the forms and movements, we make innovations. In this process the forms may be broken and discarded. Finally, in ri, we completely depart from the forms, open the door to creative technique, and arrive in a place where we act in accordance with what our heart/mind desires, unhindered while not overstepping laws._

  • Explain the Shu, Ha, Ri concept of skill development
  • Everyone does a self-rating of his own skill-level
  • Outline the different skill combinations
    • Shu-Shu, Ha-Ha, Ri-Ri, Shu-Ha, Shu-Ri, Ha-Shu, Ha-Ri
  • Let everyone brainstorm about the specialities of these combinations
  • Discuss
  • Fill what was is missing
  • Duration 25 Minutes

Materials

  • Post-Its: Meeting Notes (Large)
  • Post-Its
  • Edding Markers

Extraverts and Introverts

The trait of extraversion-introversion is a central dimension of human personality theories. In Western popular usage, Extraverts (also spelled extroverts[1]) are thought to be gregarious, assertive, and interested in seeking out external stimulus. Introverts, in contrast, are seen as introspective, quiet and less sociable. They are not necessarily loners but they tend to have a smaller number of friends. Introversion does not describe social discomfort but rather social preference: an introvert may not be shy but may merely prefer fewer social activities.

  • Review the results of the MBTI test
  • Explain the MBTI test
  • Let everybody decide for himself how much of an extra-/introvert she/he is
  • Discuss the possible combinations
    • extra-extra, extra-intro, intro-intro
  • Duration 25 Minutes

Materials

7 Synergies of Pair Programming

When working as a pair there are 7 types of synergies that start influencing the outcome of the work. These are defined in "Pair Programming Illuminated"

  • Duration 25 Minutes
  • Synergies: Pair Pressure, Pair Negotiation, Pair Courage, Pair Reviews, Pair Debugging, Pair Learning, Pair Trust
  • Activity: Draw a doodle and explain it

Materials

  • Post-Its: meeting Notes (Large)
  • Whiteboard
  • Whiteboard Markers

Seven habits of effective Pair Programmers

There is a set of habits that strongly support good results from Pair Programming. Knowing these habits can help participants see how to make pairing work better. The "Seven habits of effective Pair Programmers" are taken from "Pair Programming Illuminated".

  • Activity: Participants are asked to brainstorm possible good habits before the ones from the book are presented and after putting them to a whiteboard they get clustered to the 7 habits
  • Habits: take breaks, practice humility, be confident/receptive, communicate, listen, be a team player, balance between compromise and standing firm
  • Duration 25 Minutes

Materials

  • Post-Its
  • Post-Its Meeting Notes (large) - 7 with the 7 habit
  • Edding Markers
  • White Board

The myth or fact game of Pair Programming

The "Myth or Fact" game tries to put the learned theory a bit more into practice by playing a little game where certain sentences are presented and the teams need to judge if they are a Myth or a Fact. The Goal is to store the theory learned into longterm memory.

Rules

  • Split into Teams up to 5 People
  • Read the statement and decide if it is a myth or a fact
  • One Team argues if the presented statement is a Myth or a Fact
    • If the Answer is right: One point is awarded
  • The next team can present another (different) answer
    • If the Answer is right: 2 points are awarded
  • The start position switches to the next Team
  • The Team with the most points wins
  • Playtime 25 Minutes

Material

Build Pairing-workspaces

Building the workspaces used for pairing in order to examine the various possibilities in setups and the material at hand. The participants pick their hardware and set it up in different ways.

  • Duration 25 Minutes

Materials

(For 10 Participants)

  • 5-10 24 inch Displays
  • 5 Laptops/Computers
  • Docking Stations
  • 5 Tables
  • Network Cables
  • Switches/Network
  • 5-10 Keyboards
  • 5-10 Mice

Pairing I

The Team will engage in promiscuous pairing and make switches after 5 Minutes to experience the changes of driver and navigator. This works like the first round in a Board game where rules are tested by playing with all cards open.

  • Duration: 50 Minutes
  • Each pair chooses the topic they will work on
  • Switches all 5 Minutes
  • After 2 Switches: Change of Pairs
  • Maintain a "Pairing-Stair"
  • As change as much as you can
  • 10 Minutes break afterwards

Materials

  • Post-Its
  • Edding Marker
  • Pair Stair
  • Whiteboard
  • Pairing-workspaces
  • Stop Watch

Feedback and Questions

Feedback and closing activity for Part 1. Participants write down 3 open questions regarding Pair-programming and rate how much of the goals they set in the opening are already fulfilled.

  • Duration 25 Minutes
  • Activity: Write down up to open 3 questions in 3 Minutes

Materials

  • Post-Its
  • Edding Markers
  • List of Goals

Day 2. Pairing Practice

The second day aims to put theory in practice and thereby engage all the participants in Pair-programming.

Goals

  • Explain and explore different methods of Pair-programming
  • Do promiscuous- and hinge-pairing
  • Find the way that fits the team
    • Hinge or promiscuous
    • Switch times
    • Setups
  • Explore the effects of knowledge sharing in pairing

12 Slots = 6 Hrs

Opening Day 2

Presenting the second Part of the Slides regarding Pairing Methods and explaining the Goals of the day. Additionally the discussion about forced switches and switch-times is started. Pairing will be done on real life tasks and commits is the thing we aim for from now on.

  • Duration 25 Minutes

Materials

  • Beamer
  • List of goals
  • Slides
  • Collection of Tasks/Stories

Pairing II

This round of pairing will be done on real-life tasks and aims at a more realistic switch time of driver/navigator. The main goal is to prove that little steps can drive a project forward.

  • Duration 75 Minutes (3 Slots)
  • Switch after 10 minutes
  • Stopwatch used by instructor/coach
  • everyone switches
  • A Point is awarded when a commit is done
    • The person with the most commits wins
    • Commits have to obey the general standards agreed upon/existing

Materials

  • Post-Its
  • Edding Marker
  • Pair Stair
  • Whiteboard
  • Pairing-workspaces
  • Stop Watch

Pairing III Advanced

In the Advanced Pairing different activities try to

  • Duration 75 Minutes (3 Slots)
  • During the Activity 2 Games are switched
    • Socrates: The Navigator Needs to asks Questions that must be answered by the driver with words or in Code
    • Silent Pairing: No talking for 15 Minutes with Switches all 3 Minutes
    • Test First Pairing: One Person writes a Test, That fails and another person writes the code. Driver - Code, navigator - Test

Closing

The participants speak out their observations of what happened. The goal i that everyone grabbed the difference between hinge-, promiscuous- and test-first-pairing. Everyone should be informed now that there is a reason for regular switches of driver/navigator and walking the path of least resistance (let the better once code) is not helping at all.

  • Duration 25 Minutes

Materials

  • Post-Its
  • Edding Markers
  • List of Goals

Dojo - Theory

A frontal presentation of coding Dojo and the rules. A shor discussion how Dojo can be used for real problems on real code in opposition to the way it it originally proposed

  • Remove the workspaces before
  • Switch to a Dojo setup
  • Discuss the setup with participants
  • Duration 25 Minutes

Materials

  • Beamer
  • One Laptop, Display, Keyboard, Mouse Setup
  • One Table
  • Chairs

Dojo

A first Dojo with the goal to get everyone to the keyboard and establish rules amongst the participants.

  • Duration 50 Minutes
  • Testfirst development
  • Baby steps
  • YAGNI
  • Following a Styleguide
  • Regular Commits

Materials

  • Beamer
  • One Laptop, Display, Keyboard, Mouse Setup
  • One Table
  • Chairs
  • One Kata selected
    • Fizz Buzz if no one has done this
    • Potter for advanced groups

Closing and Goals

  • Duration 25 Minutes

 

Make it happen!