I am trying to setup a repository of reusable code. I was thinking about having each reusable code module have a certain “Maturity Level” rating. The rating would be defined a
I think you will find it difficult to ensure that the entire development team follows these guidelines accurately enough. Especially when the guidelines may be interpreted one way or another. Moreover, it will be a major pain if somebody improves a piece of code by adding tests and suddenly it has to move to a different project. More likely than not, such code will stay in the project it was originally placed into, and over time the maturity levels will become meaningless.
One approach I saw working fine in a large company is this:
Infragistics
library then this bit of utility code goes into an InfragisticsUtils
library.Utilities
project.Obviously the quality of the code you find in the catch-all Utilities
library can vary significantly. To alleviate this we simply ensured that two people from different development teams reviewed all checkins to Utilities
. This weeds out a lot of stuff that has no place there!