For example, I used to put a suffix on subprogram or variable names to identify which module they came from. This was when I was programming in C and placed each module in its own file. Finding which file contained a particular subprogram or variable was difficult before I adopted the convention. My most recent convention serves a different purpose. As soon as programmer B starts working with programmer A's code, a private naming convention becomes public.
Public conventions can be pluralistic or mandated .
With pluralistic naming conventions, programmers choose their own conventions but they need to be able to read each other's. With a mandated naming convention, programmers are told by management they must follow a particular convention. Whether private, pluralistic, or mandated, a naming convention should seldom be elaborate. None of us should project this message when writing code for an organization that permits pluralistic naming conventions. Yes, the learning curve is less of a problem and, yes, a single, universally applicable convention that makes code more easily understood by coworkers would be worth a major effort.