How to identify “over engineering”
Published in
1 min readMar 23, 2020
This is how I identify “over engineering”:
When adding complexity to code in order to…
- Cater for scenarios that will probably never happen. Eg. Switching to a different database.
- Optimize for performance where performance is not really critical.
- Make code super DRY, but as a result making code more difficult to follow/debug.
- Decouple code to such a degree that you can’t figure out how code will execute without attaching a debugger to see.
Secondly, what are the exceptions? When is adding complexity to code NOT over engineering?
- When it makes code more flexible (some complexity within reason is ok).
- When it makes code more testable.
- When it sets you up for success (eg. Making it harder to do “bad” things)