I've been working on a software project for a few months now with a very small team (and by small, I mean there was an extended period of time where I was the only developer). Our working dynamic is excellent for the most part, as each developer has a different sector that they work in (frontend, backend, database, etc.) and there's very little overlap, so conflicts are minimal.
Recently we brought another developer in to do work in another area on the project, and thus far their work has been great. However, they are starting to reach out and alter code in other people's spaces, including my own. While the code they're writing isn't broken, it introduces some clashes, such as when they started rewriting some of the frontend/backend architecture without consulting anyone.
The biggest benefits of having each person "own" a certain portion of the code is that 1) everything in that portion of the code has a similar logic and style to it, making it more easy to understand, and 2) the person working in that area can be sure they have absolute understanding of all the moving pieces in that section. That's something that is starting to change with this new development.
While I am not the manager or owner of the project, I am the team lead, so I think this falls into my area of responsibility. So my questions are:
- Am I overreacting to something that is not really a major issue?
- If I am not overreacting, what is the best way to correct this person without discouraging them? Again, they do fine work and I don't want to create any hostility.
EDIT: the wording of my question has led several people to believe that we are intentionally obscuring how parts of the code work so that only one person understands it. This is not at all the case. We have learned the hard way the importance of spreading knowledge around. We have daily stand ups and source control. What I mean is that we have one person working on particular sections of the code, because 1) it is easier to create consistent code that all operates in a similar manner, and 2) again, we are a very small team with a not-small task on our hands, and a harsh deadline. Specialization, combined with regular communication, breeds efficiency.
FURTHER EDIT: I suppose a better phrasing would be "how do I politely tell a coworker to only focus on his assigned tasks?"
FURTHER EDIT
: I think the answer is clear. That this is a bad idea you should encourage work across silos. What you should be doing is building a standard way of communicating when this happens.