Delay committing code design into classification (taxonomies, categories, etc.) as long as possible to keep a system flexible. It is difficult to get classification systems right up front, and they often change. Thus, don't hard-wire divisions into code if you don't have to. Perhaps keep the classifications as data so that it can be changed without recompiling, without programming, and without refactoring. Keep it practical though, such that you don't go overboard in an effort to prevent it. It is a rule of thumb, not a hard law. ----- Perhaps this relates to PutClassificationsIntoMetaData