Holy shit...Im Generic-aholic too, and I didnt even know it..
Im not even good at it, but the time I waste trying to think stuff ahead to make code reusable..
Like I was writing a PickupComponent for my engine, its for itens like jewels, lifes etc that the player can get on the level. So logically, it need to be used for anything that can disappear after contact with the player...But only disappears after an "picked" animation is played...or maybe instead of playing an animation, it disappear instantaneously and spawn particles. If its a score item, it needs to contact the HUD to add the points in a fashionable way, but what if its ife itens? hmmm...
Thats why jams are awesome...I wouldnt even blink before have an usable JewelComponent, than Id start creating a LifeCompo, probably realize if its worth or not to have a new compo, and move on