Generalizing to the point where some difference ( which is probably what we are trying to identify ) is lost. The hard part is insuring that all parties have Generalized in a direction, which still contains the difference. If you start to experience a BreakDownInCommunication?, that maybe someone made a Generalization in a different direction?
From ClassicOoPatterns?:
Another common problem I have observed in programmers is analysing a problem until a useful design is arrived at, and then generalising it so much it becomes impossible to write - never fulfilling the original requirements. I have even seen this happen when programmers are writing something for themselves, i.e. they are the customer and know exactly what they want. And yet, they find after weeks of designing and redesigning and finally coding, the end result doesn't manage to do what was required in the first place. The answer is XP of course :-) --ChanningWalton
See PrematureGeneralization, YouArentGonnaNeedIt
Don't stop here; please go on to SuperOverGeneralized. ;->
See also: CollectiveLove, AllAbstractionsLie