🍫 CocoaPatterns — iOS & Mac Development Since 2009 RSS
🍫 CocoaPatterns
Because someone has to write this stuff down
"We ship apps. Sometimes they even work."

Whiteboard Buddy-Cop Pair Programming

One engineer writes code. The other stands at a whiteboard and narrates what's happening like a detective in a procedural drama. Productivity is up 15%.

MO
Melissa Okonkwo
@mel_ios_eng · CocoaPatterns

Traditional pair programming has a problem: it's boring. Two people sit at one computer, one types, the other watches. After 30 minutes, you switch. It's like a buddy cop movie where both cops are filling out paperwork the entire time.

We can do better. We have done better.

I'm introducing Whiteboard Buddy-Cop Pair Programming (WBCPP), a methodology that combines the rigor of pair programming with the dramatic structure of a 1980s action film.

"Every great partnership has tension. Kirk and Spock. Riggs and Murtaugh. Your code and the compiler. WBCPP harnesses that tension."

The Roles

In WBCPP, the two engineers don't just "driver" and "navigator." They assume personas:

The Loose Cannon

Sits at the keyboard. Writes code fast. Doesn't read the docs. Commits without running tests. Types in lowercase variable names and says "I'll fix it later" with full sincerity. The Loose Cannon trusts their instincts. The Loose Cannon has been burned before but still believes.

The By-the-Book Partner

Stands at the whiteboard. Diagrams every decision. Reads the documentation aloud. Questions every shortcut. Says things like "we need to think about edge cases" and "what's the rollback plan?" The By-the-Book Partner has seen things go wrong. The By-the-Book Partner is tired.

💡 Key Principle

The dramatic tension between the Loose Cannon and the By-the-Book Partner is not a bug. It's the engine of the methodology. When the Loose Cannon says "just ship it" and the By-the-Book Partner says "we haven't written a single test," that's not a disagreement — that's a scene.

The Act Structure

Every WBCPP session follows a three-act structure, mapped to a standard development task:

Act 1: The Setup (15 minutes)

The By-the-Book Partner diagrams the problem on the whiteboard. Architecture boxes. Data flow arrows. Edge cases in red marker. The Loose Cannon is already typing. "I've got a hunch," the Loose Cannon says, opening a new file. The By-the-Book Partner sighs and adds another box to the diagram.

Act 2: The Confrontation (30 minutes)

The code works, but it's wrong. There's a bug the Loose Cannon didn't anticipate because they didn't read the diagram. The By-the-Book Partner points at the whiteboard. "I told you," they say, tapping the red edge case. "I literally drew this." The Loose Cannon deletes 40 lines and rewrites them from scratch. "I work better under pressure," they say. This is true and it's concerning.

Act 3: The Resolution (15 minutes)

The feature works. Tests pass. The Loose Cannon and the By-the-Book Partner shake hands over the keyboard. "You know," the Loose Cannon says, "I couldn't have done it without your whiteboard diagram." The By-the-Book Partner nods slowly. "And I couldn't have done it without your reckless disregard for type safety." They both stare at the sunset, which in this case is the CI pipeline turning green.

Advanced Techniques

The Mid-Sprint Blowup

In every good buddy cop movie, the partners have a falling out in act two. In WBCPP, this maps to a merge conflict. When a merge conflict occurs, both engineers stop working, stand on opposite sides of the whiteboard, and argue about whose branch is canonical. This continues until one of them says "fine, I'll rebase" with visible resentment. This is healthy. This is process.

The Captain

In organizations with a project manager, the PM assumes the role of The Captain — the authority figure who doesn't understand how the Loose Cannon gets results but can't argue with them. The Captain says things like "I don't care how you fix it, just fix it by Friday" and "the board is asking questions." If your organization doesn't have a PM, a Jira notification serves the same purpose.

The One Last Job

At the end of each sprint, the By-the-Book Partner announces they're "retiring" (taking PTO). The Loose Cannon convinces them to stay for one more sprint. "There's one more ticket," the Loose Cannon says. "And this one's personal." It's a CSS bug. It's always a CSS bug. But they fix it together.

Measured Outcomes

  • Code quality: up 15% (the By-the-Book Partner catches things)
  • Development speed: up 22% (the Loose Cannon doesn't wait for consensus)
  • Team morale: significantly up (engineers report "feeling like protagonists")
  • Whiteboard marker budget: up 340%
  • HR incidents: 2 (both involving the Loose Cannon calling the PM "Chief")
  • Engineers who requested permanent Loose Cannon assignment: everyone
  • Engineers who were granted it: no one, that's not how the methodology works

WBCPP is now our default pairing strategy. We're piloting a four-person variant called Heist Movie Mob Programming, where each engineer has a specialty (the Hacker, the Muscle, the Inside Man, and the one who sits in the van). Early results are promising but the van is a conference room and it smells.

3 Comments — Powered by Disqus
BK
bradkow_ios · 3 days ago
I was the Loose Cannon for three sprints and I have never felt more alive. My code quality went up 20% and I got written up by HR once.
MO
mel_ios_engAuthor · 3 days ago
@bradkow_ios The HR write-up was because you kept calling the PM 'Chief' and saying 'I don't play by the rules.' That's not the methodology, Brad. That's just you.
DP
dpurcell_dev · 2 days ago
We tried this at my company and the By-the-Book partner kept saying 'I'm getting too old for this' and he's 26.