10 Modern Software Over-Engineering Mistakes
- Engineering is more clever than Business? The House (Business) Always Wins.
- Reusable Business Functionality? Prefer Isolating Actions than Combining.
- Everything is Generic? Duplication is better than the wrong abstraction.
- Shallow Wrappers? Wrappers are an exception, not the norm. Don’t wrap good libraries for the sake of wrapping.
- Applying Quality like a Tool? Always take a step back and look at the macro picture. Concepts need shift in Mindset. Cannot be applied blindly like tools.
- Overzealous Adopter Syndrome? TL;DRs should not be used everywhere.
- –ity? Don’t let -ities go unchallenged. Clearly define and evaluate the Scenario/Story/Need/Usage.
- In House “Inventions”? Reuse. Fork. Contribute. Reconsider.
- Following the Status Quo? Refactoring is part of each and every story. No code is untouchable.
- Bad Estimation? Bad Estimation destroys Quality even before a single line of code is written.
Disclaimer: Some points below like “Don’t abuse generics” are being misunderstood as “Don’t use generics at all”, “Don’t create unnecessary wrappers” as “Don’t create wrappers at all”, etc. I’m only discussing over-engineering and not advocating cowboy coding.