When working on a single project with a small team, say, 3 devs, its common for us to ask each other:
"Oh, how does this class work?" or "What property do I set on this to make this happen?" as the code base grows, and of course, we must make use of the available APIs, classes, controls, et al. that we build.
However, I'm sometimes unsatisfied with some implementations, but I don't want to "tell" other people what to do.
Sometimes it's something as small as "instead of changing 2 properties to make something happen, why not just call a method with 2 parameters?" That kind of thing.
Other times it's something slightly bigger, like the whole way dialog boxes have been implemented throughout the app.
In these instances, I sometimes find myself just going in there once it's all been checked in, and changing the code, and then communicating that I've just changed this or that, and why.
Is that rude? By no means am I saying I always know better, it's purely a case by case thing.
My feeling is that I'd want to work in environments where others feel free to improve on what I've done, as long as they communicate it to me afterwards. Not because I "own" the code, but because I'd like to learn.
Yay or nay?
UPDATE
Thanks for all the input. I wanna address some specific answers when I get some time.
Meanwhile, the main feeling I'm getting is that, as a Team, we really need set some expectations as to how we treat each others work. Whether it be through code reviews, or we just say, "look, its a free for all!". Not that we would do that, but then at least expectations are set.