August 7, 2015
- A good partner understands pairing is a difficult skill that takes time and effort to cultivate. A bad partner expects others to be great pairs right off the bat.
- A good partner seeks to understand their own bad pairing habits. A bad pair fails to think about their own pairing habits and only blames others.
- A good partner brings up mistakes that they make and that others make in a way that turns a mistake into an improvement opportunity. A bad partner bottles up issues they have while pairing and allows the issues to harm relationships and their quality of life at work.
- A good partner frequently syncs up on schedule and goals and is not afraid to adjust the schedule to make it more realistic. A bad partner does not talk about schedule or goals and avoids adjusting the schedule until the last minute, causing confusion and mismatched expectations.
- A good partner sets small achievable goals and celebrates achieving them. A bad partner sets one big (likely unrealistic) goal and stresses out about achieving it.
- A good partner clearly communicates availability. A bad partner disappears for unpredictable periods of time with no notice leaving the other partner to work alone and confused.
- A good partner uses 2 input devices and 1 computer and avoids using 2 computers unless necessary. A bad partner defaults to using 2 computers and gets distracted / unpaired.
- A good partner balances give and take in decision making. A bad partner will not be aware of the decision making balance and either be a bunny or Alpha Male.
- A good partner is aware of skill differences and works to rebalance them by making the effort to be a mentor or a student.
- A good partner will continue to help with an epic all the way to the finish line and after with deployment tasks and bug fixes. A bad partner will stop contributing to the epic once the feature is accepted and not help their pair get the feature stable and in production.
A good partner focuses on cultivating the following pairing roles
- Mentor - explains concepts and reasoning with minimal judgement
- Moleskine - maintains state and checks for edge cases and unexpected side effects
- Captain - cultivates their own soft skills necessary in effective pairing and cultivating their partners as well
And a bad partner falls into the following bad pairing roles
- Alpha Male - mainly takes in a give and take discussion
- Superman - grabs keyboard and starts coding quickly and silently
- Bunny - mainly gives in a give and take discussion
- Rodolfo Valentino - never disagrees with their partner’s decision
- Monk - does not acknowledge the validity of other’s ideas
- Puppet Master - uses their influence to control the driver’s coding
- Backseat Driver - uses their voice to control the driver’s coding
- Auditor - nitpicks small, trivial decisions at the expense of larger and more important decisions
- A good driver frequently asks for agreement on ambiguous choices. A bad driver makes difficult choices silently and does not ask the navigator for input.
- A good driver makes easy decisions fast. A bad driver constantly asks for input on decisions that do not require input.
- A good driver is aware of the navigator’s focus and will ask for input or suggest trading off if they notice the navigator is distracted.
- A good driver thinks out loud and communicates intentions and reasons.
- A good navigator is continuously sanity checking code. A bad navigator is checking their phone for text messages.
- A good navigator anticipates next steps and maintains the overall state of the system, reminding the driver about necessary changes that may have been overlooked. A bad navigator is working on a bug while simultaneously attempting to pair, but not contributing to the pair.
- A good navigator is aware of their own focus, and suggests switching roles if they notice that their focus is slipping. A bad navigator allows their focus to deteriorate and is afraid of suggesting to switch roles.
- A good pair has built the rapport between them to share a few laughs while pairing and have fun.