Over-engineering in software engineering is a common problem that can lead to a number of negative consequences. At its core, over-engineering refers to the practice of creating a solution that is more complex and feature-rich than is necessary for t...