Collective code ownership is very important part of any successful Agile project where everyone in the team shares responsibility for the quality of code. Any developer can change the code, fix the bug he notices and refactor as the code belongs to the team.
I am an advocate for collective code ownership, but what I really should do when I encounter poorly designed code? Should I just fix it because it's my code? This is what collective code ownership is about, right?
I think it is very important to share concerns with the code's original author. I think it is important that we learn from each other. It is not about pointing someone else's mistakes but it is about learning from each other and working together, especially in bigger and distributed projects.
If the team wants the quality improves over time, they should communicate with each other and share concerns so they can learn from the mistakes and possibly avoid similar issues in the future.
Isn't it the essence of collective code ownership? I think yes. And what is your opinion?