Here’s an interesting thought from Peopleware about standards:
You can’t really declare something a standard until it has already become a de facto standard. This is fundamental to the theory of standardization at DuPont, for instance. In that company’s standards manual, it defines a standard as “a proven method for undertaking a repeated task.” The manual goes on to explain that proven means “demonstrated widely and successfully within DuPont.” That seems like common sense to us, but it goes against the industry-wide convention of hunting out new approaches and imposing them as standards before anyone in the organization has even tried them out. (p.118)
I don’t think an R&D organization has to try out everything out itself first — simply adopting a widely accepted standard can result in an important efficiency gain where it makes sense. One place this seems to make sense is with the Java coding standards, which CheckStyle helps us with.
I’ve been vocal about the shortcomings of our current Cache’ coding standards, and sometimes it may appear that I am rejecting adhering to a standard at all — with a goal of doing it my own way above all. I really don’t think that is the case. Why do I have such problems with our current Cache’ coding standards and I’m just fine with the Java standards? I think it’s a combination of a couple different things:
- In certain ways, the existing Cache’ standards lack a minimum level of goodness. This is not to say that every item in the standards is bad, but there are a few items in there that in my judgment lead us to degraded quality and less maintainability. Even though it could be argued that the degradation is minor… it’s beyond a where-to-put-the-trailing-curly-brace issue and into clarity and readability issues. This provides the element of pain.
- There has been no process to get the standards updated. A problematic standard alone would not be such an issue if there were a way to work for its improvement. Up until recently, though there was no rule that said “no changing the standard”, in practice no one owned the standard so there was no way to improve it. David’s work in this area may be changing this. At last we may get to own our standards!