By unnecessarily creating strategy classes for simple logic.
Over-engineering occurs when strategy classes are created for logic that rarely changes or is too simple. This adds complexity without significant benefits. In a small e-commerce application, creating separate classes for fixed-rate shipping might be overkill if the rates rarely change.