Six months ago, the developers on MSBuild began to use an internal tool then called “StyleCop” in order to clean up our source code going forward. Think of it as a little like “FXCop” for your C# style. It flags as build warnings all kinds of deviations from a set of fairly strict style rules. We excluded all our existing source code files from inspection, since they generated thousands of warnings, and used it for all new source files, and for heavily rewritten old code, and required every check-in to be clean.
For a few days, it was frustrating, mainly because you have to accept its rules over your own ingrained conventions. I don’t like some of them. Frankly however many of these conventions are important only for consistency, and not intrinsically better or worse than any others.
After that first week, we were surprised to find that once we got used to the rules, it was little or no effort to avoid the warnings, and the readability and consistency of our source code has improved considerably. I thought I would have to push the team to use it, but they picked it up enthusiastically, and one of the developers even enabled it on all our unit test code as well. There’s no more “interesting” use of tabs, or personalized curly placement, and code reviews can focus entirely on the content of the change. As others joined our team, they picked it up easily too.
Well, StyleCop has just been released as “Microsoft Source Analysis”. It’s a free download from here. I highly recommend it.