One of absolute worst, worst methods of teamicide for software
developers is to engage in these kinds of passive-aggressive
formatting wars.
It’s hard to say from this little anecdote what’s going on here, but in my experience, this sort of thing is almost always about more than just spaces/tabs/conventions. Unfortunately, to the less-experienced coder (and original author), changes to his code often just look like useless cleaning. But I’d bet that senior guy called it refactoring.
Yes, I’m one of those senior people who sometimes refactors someone else’s code, so call me evil. But once the code goes into the project for which I’m responsible, it’s officialy our code. And as that guy, let me say that if a piece of code works reliably and exposes a sane API, I’m certainly not going to waste my time wading through it to pick nits with internal variable names or spacing.
No, the only times I’ve come in and cleaned code, it has always started by pulling on a thread: a bug, an API problem, a namespace collision, something. Once inside, sometimes the only way comprehend the issue is to engage in a little refactoring to expose the code’s structure: making functions orthogonal, giving variables sane names, and yes, even whitespacing the code according to standards. All this lets the senior guy understand the code, isolate the issues, and fix them. And when he checks in the code, it’s just a little better than he found it, like a Boy Scout on a trail.
Unfortunately, sometimes the less-experienced guy doesn’t see the merit, and that can cause painful ego-collisions. The good folks eventually figure out how to disassociate themselves from the code and learn from the changes. The not-so-good folks are often bent on protecting a code castle. (Perhaps having their code understandable and accessible by other team members works against their job security.)
In fact, anybody having email exchanges with Mr. Atwood is probably not one of those job security folks. Maybe the senior guy in this story just has a bad case of OCD and really does go around randomly whitewashing perfectly good code for pleasure. But I wouldn’t assert that code cleaning is always face stabbing. If the code is genuinely better for it, isn’t that a good thing?