How to identify “over engineering”

willemodendaal
The Curious Coder
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)

--

--

willemodendaal
The Curious Coder

Full stack developer and technology geek; Livin’ the dream!