silhouette photography of tree

The Branch

A developer created a feature branch and worked on it for six months.

When they tried to merge, they found the main branch had become unrecognizable.

The senior developer asked, “Were you working on the same codebase as your team?”

“Yes.”

“At the same time?”

“…No.”


The Teaching Unfolds

That pause before the second answer is where the whole teaching sits. The developer knows the answer before they say it, and they know what it costs.

Version control is generous enough to make the codebase feel like a place. You can step away from a place and come back to it. That intuition is what makes long lived branches feel safe. But a codebase under active development behaves more like a conversation, happening continuously among everyone who commits. A six month branch does not pause that conversation. It only means you stopped hearing it.

Every merge conflict waiting at the end of those six months is a discussion the team already had while you were absent. Someone renamed the module. Someone changed the auth flow. Someone deleted the helper you built your feature on top of and had good reasons for doing it. Now you are having all of those discussions at once, out of order, months after the context that produced them has faded, and usually under a deadline that was set before anyone knew the merge would be this bad.

The cost of integration does not disappear when you defer it. It compounds, quietly, at a rate nobody is tracking. Two developers working in parallel for a day produce a conflict you resolve over coffee. Two developers working in parallel for six months produce an archaeology project.

The practices that avoid this are unglamorous and well documented. Merge main into your branch daily so the conversation stays audible. Ship behind a feature flag so incomplete work can live in main without being visible. Split the feature into pieces that can each land within a week. None of it feels like progress in the moment. All of it is cheaper than the week you will otherwise spend reconciling six months of divergence while your team waits.

Ask the question the senior asked, about your own repo, today. Not whether you are working on the same codebase as your team. Whether you are working on it at the same time.