Over-engineering and robustness in software

A lot of software engineers have a misconception of what over-engineering is and how it is related to robustness. Some say that robustness can’t exist without over-engineering. And I totally disagree, in-fact if you think about it for a second you will see that a robust block of code (a code that handles abnormal cases) have nothing to do with an over-engineered block of code (a code intended to anticipate the future), But i can understand where such a misconception comes from. As software engineers we tend to overthink problems. We sometimes go around trying to find out solutions for possible future needs, and that doesn’t work as no one can predict the future. So first of all let’s clarify the concept of over-engineering, its relation to robustness, and go through why we need to avoid it and how.


Read More