Why I Don’t Like the @author Tags

The JavaDoc has a @author tag that can be used to assign a programmer at the overview, package and class level.
As a software engineer working in a team I never liked this tag.
As I became a development manager, my unlikeness increased even more.
This feeling is fed by negative impacts on both the “Collective Ownership” and the “Bus factor”.

Collective Ownership is an Extreme Programming rule that encourages everyone to contribute to all parts of the code.
Any developer can change any line of code to add functionality, fix bugs, improve designs or refactor.
Collective Ownership mentality is great because every developer feels like he own the code.
This drives quality up and fuels the passion that leads to inspiration.
I’m a strong believer in the benefits of this approach and always encouraging my development teams to adopt it.

The Bus factor is the answer to a simple question: “how many people would need to get hit by a bus before this code collapses due to lack of knowledgeable or competent personnel?”
You want that number to be high.

The @author tag is a signpost telling everyone else to stay away: “I’m the owner, this file belongs to me, no one else should touch it or at best you need to ask for my permission before modifying the code”.

It creates an single developer ownership mentality of portions of the code driving the bus factor toward one, and thus putting the project at risk.

If you’re using the @author tag, I hope I convinced you to stop or at least made you aware of its danger.

photo credits:
Improving the speed and quality of research via shared algorithm implementations (license), You Don’t touch the MOMA (license)