Ownership and bottleneck

One of the idea of Kent Beck's Extreme Programming, is collective code ownership.

The idea behind this is to reduce the bus factor by involving everyone in each feature.

In one of the team I've led, we started a single-page application. We were only two, I was in charge of the backend and the infrastructure, while the other developer was working on the frontend.

At some point, the team grew, two more frontend developers, and one backend developer.

The tasks were not anymore dispatched between me and the frontend developer, but between the frontend and the backend people.

The main issue was that most of the code were still authored by the first frontend developer and I, which made a lot of the new projects involving us.

Luckily, we have started a new project, which allowed us to split decisions and tasks more evenly.

We have faced two major issues, the first one, I have encountered it in countless projects, as time goes by, people tend to specialize in some parts.

The second one was a bit of a surprise: contact point.

Our product owner and designer had a communication style which favored one-to-one relationships, and he preferred having a people in charge by feature or part of the app.

Later on, I had the same requirement from a CEO.

In both situations, it has created a deadly problem reducing the bus factor. Hopefully, at this point, we have lost no one, but some feature gain attention, and the bus factor was very visible.

Time was wasted to ramp up on the focused features, the code reviews and occasional pair programming was not enough to share knowledge.

In order to gain in clarity, we became fragile.