XenneX/LLC
All posts

What Breaks When You Go From 1 Developer to a Small Team

The moment a solo project gets a second contributor, a dozen things that worked fine in your head stop working. Here's what actually breaks first, and what to build before it does.

#indie dev#engineering#team scaling#process#collaboration
What Breaks When You Go From 1 Developer to a Small Team

For a long time, XenneX was one person and a codebase. That's a specific kind of system — every decision lived in one head, every shortcut was understood by the person who took it, and "documentation" meant remembering why you did something six months ago.

The moment a second person starts contributing, that system breaks. Not gradually — immediately, in specific and predictable ways. Here's what actually breaks first.

"It's All in My Head" Stops Being a System

As a solo developer, undocumented context isn't a liability — it's just how the work happens. You know why that function is named the weird thing it's named. You remember the edge case that made you write the workaround on line 340. None of it needs to be written down because there's only one person who needs to know it.

The instant someone else touches the code, every piece of undocumented context becomes a blocker. Your new collaborator hits the weird function name and has no idea why it's like that. They see the workaround and either break it by "fixing" it or waste an hour figuring out it was intentional.

The fix isn't a documentation overhaul on day one — that's its own kind of overreaction. It's writing things down as you go from that point forward: a comment on genuinely non-obvious decisions, a short doc on the architecture's big shapes, a running list of "here's the weird stuff and why." Retroactive documentation of everything is a project. Documenting forward is a habit.

Code Review Becomes Necessary (and Initially Uncomfortable)

Solo development has no code review, by definition. There's no second opinion, no gate before something ships — you write it, you know it's right (or you find out it's wrong), and you move on.

Adding a second developer means adding review, and the first few rounds of review are often uncomfortable for both people. The solo developer isn't used to justifying decisions to anyone. The new contributor isn't used to the codebase's specific conventions and might push back on things that are actually fine, just unfamiliar.

This settles, but it settles faster if you're explicit about it early: review is about correctness and shared understanding, not about proving anything. State that plainly, and the discomfort resolves in a few weeks instead of a few months.

Decisions Need a Home

As a solo developer, "why did we do it this way" has an answer that lives in your memory. With two or more people, that answer needs to live somewhere else — otherwise every architectural decision gets re-litigated every time someone new touches that part of the code, because nobody remembers or knows the reasoning.

This doesn't require a heavyweight process. A lightweight decision log — a running doc where you note significant architecture or process decisions and the one-line reason behind them — solves most of this. It doesn't need approval workflows or formal templates. It needs to exist and get updated when a real decision gets made.

"I'll Just Fix It Myself" Doesn't Scale

Solo, the fastest path to fixing a bug is almost always just fixing it yourself. With a team, that instinct actively works against you — if you fix everything yourself, your collaborator never builds context on that part of the system, and you've quietly recreated the single-point-of-failure problem you were trying to solve by adding a second person.

The harder but correct move: when a bug surfaces in an area your collaborator should learn, hand it to them with context instead of fixing it yourself in five minutes. It's slower in the moment. It's the only way the team actually becomes a team instead of one developer plus an assistant.

Communication Needs an Explicit Channel

Solo, there's no coordination problem — there's one person and the work they're doing right now. With a second contributor, "what's everyone working on" becomes a real question, and if there's no explicit answer to it, people end up duplicating work or blocking on each other without realizing it.

This doesn't need to be elaborate. A daily or twice-weekly async check-in — what I did, what I'm doing next, what's blocking me — is enough for a two- or three-person team. The formality can grow later if the team does. What matters is that it exists at all, because the informal version (just knowing what the other person is doing) doesn't survive past one collaborator.

The Common Thread

Every one of these breaks because a system that worked by being entirely inside one person's head can't survive contact with a second person's head. The fix in every case is the same shape: make the implicit explicit, just enough to close the gap, without overbuilding process for a team of two.

Going from one developer to a small team is less about hiring and more about building the connective tissue that lets more than one person hold the project at once. Get that right, and adding people multiplies what gets built. Get it wrong, and adding people just adds friction.

Follow the build at XenneX →