Code ownership sucks.
It limits code and stunts your growth as a developer.
Let’s look at what code ownership is and why it destroys individuals and organizations.
What is code ownership
Code ownership is where one person in an organization owns a codebase.
That means one person is responsible for the whole system. The individual is responsible for making changes to the code, taking the decisions about design, and for managing bugs.
Let’s say the system is a web app. With code ownership, one person in the company owns that web app. If there’s a problem with the web app, the code owner is the person who has to fix it.
Why does it suck?
Code ownership is bad for code owners because it stunts their growth.
As well, code ownership causes problems for the organization and for code owners.
If no one knows how a system works, nobody can give effective code reviews. Worse, the code might not be reviewed at all.
The owner of the code is then the only person who ever looks at the codebase. This stops code owners from learning from their colleagues, which is the best way to learn at work.
As a code owner, you could be making horrible design decisions and you wouldn’t know it.
Code ownership kills motivation
It’s easy to lose motivation when you own a codebase.
People don’t care if you shave 10kb off the bundle size when they don’t even know how big the bundle was before.
There’s no one to get excited with you when you switch to a new framework, add webpack to the pipeline, or improve server performance by adding a cache.
This is demotivating.
Code ownership makes you lazy
When you own your code, you can get lazy.
No one is checking in on you. People don’t know that the bug only took you five minutes to fix, and that you spent the rest of the day on reddit.
You can coast by, doing the bare minimum. This is a waste.
I’ve seen 30-year-olds who have been in the same job for the last ten years, working on the same legacy codebase. And it shows. They’re behind on the latest technology, they’re not passionate about their work, and they spend hours every day browsing social media.
Don’t be like them.
Code ownership produces key man dependency
Not only is code ownership bad for the individual but it’s also bad for the organization.
If one person is responsible for a codebase, what happens when the code owner goes on vacation—or worse—leaves the company? Nobody in the organization will know how the code works.
This problem is known as key man dependency. Extreme code ownership produces key man dependency.
Code ownership causes stress
Although it can make you complacent, code ownership also causes stress.
If there’s a problem with the application, it’s your fault. You will be responsible, and you will have no one to help you fix the bug.
What’s the solution?
The solution is a culture of shared code.
Shared code is where everyone in the team works on all parts of the codebase.
When the team owns the code, everyone can help make design decisions. Everyone can participate in the discussion of the system design, help bounce ideas around, and share in the responsibility of those decisions. Writing code becomes a magical experience.
With shared code, there isn’t key man dependency. Any team member can go on vacation and the team will continue to work as normal.
With shared code, you’ll learn from your peers. Someone with knowledge of the system can provide quality feedback. Code will be scrutinized by many eyes, and it will flourish because of it.
When multiple people work on the same codebase, they help to sculpt a code into perfection.
Making the most of your time at work
You don’t need to work in an organization that stunts your growth. You should make the most of your time at work.
Developers have the upper hand in the job market. We can choose where we work. If we’re not learning at our current job, we can change jobs.
If you’re working at a place with code ownership, find a new job.
Don’t make the mistake of working in a suboptimal environment. It will harm you in the long run.
You might not realize how badly it’s affecting your growth, but a place that has code ownership will stop you from reaching your full potential.
Learning from other developers is a great benefit of working on a team, so find a new job now.