Your three room apartment needs its walls painted so you get (i.e., beg) two friends to come help.
Now you’ve got two options:
- Each person paints a separate room, alone.
- All three people paint one room at a time, together.
It’s tempting to reach for option 1. That way nobody gets in anybody’s way and you can focus, right?
But I’d go for option 2 every time, for a few reasons:
- You’re getting something done faster. The first room is done in a third of the time(ish), then you can start enjoying the fancy new paint right away.
- Three rooms in progress means you’ve got paint supplies all over the entire apartment instead of just one room. Good luck living there in the meantime.
- Maybe one of your helpers has a great technique for the corners. You’d never learn to do it his way if he was in a different room.
- Specialization! Stick someone on trim, someone on corners, and someone on the big flat parts.
Sometimes engineers say things like “we’ll go faster if we all just focus on our own thing instead of stepping on each other’s toes” or “we’re smart enough to each own a workstream.” I like to point them at the house painting metaphor.
There’s power in keeping the entire development team focused on one goal at a time. Sprint Goals are there for a reason.
- You deliver something people can use faster (the first room gets done sooner). WIP is waste!
- Less work in progress (paint supplies lying around) means less merge conflicts and cleaner releases.
- You learn from each other and fix bus factor issues (like that sweet corner painting technique).
- People can go deep on a piece of the stack (trim, corners, flats) instead of being a jack of all trades.
“If you want to go fast, go alone. If you want to go far, go together.” This is what makes a team a team, instead of a group of people who happen to share the same Sprint board. Paint your house one room at a time. Focus the team around one goal at a time.