By Kent Beck
After a COVID-induced kumbaya moment, not all is harmonious between employers and employees at big tech companies. You see it in the headlines: “The CEOs drawing a hard line on return-to-office policies” or “TikTok rankles employees with RTO tracking tools.” Or just visit r/programming.
Twenty years ago, an Extreme Programming (XP) team at work looked like this: a group of people in a common space, separated from other teams, but sitting together. Communication swirled, verbally, non-verbally, and on the walls. Astute observers might say that sitting together physically was part of the fabric of XP.
A pandemic later, XP teams are more likely to work remotely than sit together. So what changes about XP when working remotely? Does it even still work?
Social by Design: Spontaneous vs Structured Interactions
Extreme Programming is a deliberately social style of software development. Even those not comfortable socializing generally can participate because the social interactions are designed for safety and productivity.
Sitting together in a common space encourages productive serendipity.
- You see that I am stuck and roll over to help.
- You overhear a conversation you can contribute to.
- You see a customer using the system in a surprising way.
Working remotely doesn’t block communication so much as it blocks communication getting started. Once you’re pairing you’re pairing. Once you’re chiming in you’re chiming in. Once you’re talking to a customer you’re talking to a customer.
Remote XP teams replace those serendipitous moments of discovery with scheduled time. So while an XP team sitting together views regularly scheduled meetings as a symptom of lack of communication better solved some other way than a meeting, remote teams deliberately schedule time. For example:
- Monday morning– “What’s most important to do this week?”
- Friday afternoon–”What can we celebrate? What can we learn?”
- Daily–”Who’s pairing?”
- Team time–daily time blocks set aside for working
- Quarterly–get together for a week & code
(Subject to local conditions and lessons learned, of course.)
The Value of Values
XP rests on a foundation of shared values:
Those values don’t change with physical location. You will see them expressed differently in a team sitting together versus a team working remotely, but geography is irrelevant.
The next layer of XP is a set of principles for turning the values into action. Some of these principles are:
- Flow–prefer smaller batches more frequently
- Humanity–work in ways that acknowledge and leverage our human strengths and weaknesses
- Economics–improve net present value by spending less later and earning more sooner
- Redundancy–solve tough problems multiple ways
- Quality–do work you can be proud of
- Accepted responsibility–sign up, don’t assign
Again, these principles don’t change with geography. We always explore together, using uncertain means to reach an uncertain end. The principles of doing so effectively don’t change much when we change where we sit.
That said, some principles require greater emphasis when working remotely: flow for example. Larger batches of work might seem attractive because the cost of initiating interactions is higher. “Oh, just integrate once a day.”
But moving away from flow is a mistake. Flow acknowledges that we don’t just divide and conquer; we divide, conquer, and integrate. That integration step is expensive and unpredictable. Working remotely tends to leave more problems lurking, not fewer. Shrinking batches is thus more valuable when working remotely.
We’re Only Human
XP is XP, sitting together or remote. Old geezer me, if I had to choose, I would still sit together with my team. I love the juice. The coming together. The separation at the end of a hard, productive week. The building buzz on Sunday night.
But that’s me. Many factors make remote collaboration attractive. It’s part of our world now. The conflicting constraints on software development remain—and staying true to value and principles helps teams respond effectively to those constraints.
No ultimatums needed.
Dan Podsedly, my colleague at Mechanical Orchard, will grab the baton in a few weeks, to talk about concrete, simple ways we’re adapting XP to a remote world.