A company I won’t name recently instituted a policy that has their two senior developers spending a few hours per week–half hour to an hour every day–examining code pushed to the source repository by other programmers. At first I thought it was a good idea, if a bit excessive. Then I learned what they’re concentrating on.
Would you believe they’re concentrating on things like indentation, naming conventions, and other such mostly lexical constructs? That’s right, they’re paying senior developers to spend something like 10% of their time doing a job that can be done more accurately, more completely, and much faster by an inexpensive tool that is triggered with every check-in.
And they wonder why they can’t meet ship dates.
Style issues are important, but you don’t pay your best developers to play StyleCop. If they’re going to review others’ code, they should be concentrating on system architecture issues, correctness, testability, maintainability, critical performance issues, and a whole host of high-level issues that it takes actual human intelligence to evaluate.
Having your best developers spend time acting like mindless automatons is not only a huge waste of money and talent, it’s almost guaranteed to cost you a senior developer or two. I hope, anyway. Forcing any developer to play static analyzer on a regular basis is one of the fastest ways to crush his spirit. And any developer who’s worth the money you’re paying him will be working for your competitor in no time flat rather than waste his time doing monkey work.
The drawbacks of having your senior developers spend their time examining code for style issues:
- They can’t do as good a job as StyleCop and other tools.
- They can’t do it as fast as StyleCop and other tools.
- They can’t do it on every check-in.
- There are much more important things for them to spend their time on.
- They hate doing it.
- They will find somewhere else to work. Some place that values their knowledge and experience, and gives them interesting problems to solve.
Benefits of having your senior developers spend their time examining code for style issues: