(^128) 97 Things Every Programmer Should Know
Pair Program and
Feel the Flow
Gudny Hauknes, Kari Røssland, and
Ann Katrin Gagnat
iMAGiNE THAT YOU ARE TOTALLY ABSORBED by what you are doing—
focused, dedicated, and involved. You may have lost track of time. You prob-
ably feel happy. You are experiencing flow. It is difficult to both achieve and
maintain flow for a whole team of developers since there are so many interrup-
tions, interactions, and other distractions that can easily break it.
If you have already practiced pair programming, you are probably familiar with
how pairing contributes to flow. If you have not, we want to use our experiences
to motivate you to start right now! To succeed with pair programming, both
individual team members and the team as a whole have to put forth some effort.
As a team member, be patient with developers less experienced than you. Con-
front your fears about being intimidated by more skilled developers. Realize
that people are different, and value it. Be aware of your own strengths and
weaknesses, as well as those of other team members. You may be surprised by
how much you can learn from your colleagues.
As a team, introduce pair programming to promote distribution of skills and
knowledge throughout the project. You should solve your tasks in pairs and
rotate pairs and tasks frequently. Agree upon a rule of rotation. Put the rule
aside or adjust it when necessary. Our experience is that you do not necessarily
need to complete a task before rotating it to another pair. Interrupting a task
to pass it to another pair may sound counterintuitive, but we have found that
There are numerous situations where flow can be broken, but where pair pro-
gramming helps you keep it:
- Reduce the “truck factor.” It’s a slightly morbid thought experiment,
but how many of your team members would have to be hit by a truck
before the team became unable to complete the final deliverable? In
other words, how dependent is your delivery on certain team members?