DEV Community

Discussion on: How do you identify "over-engineering"?

Collapse
 
alexandrudanpop profile image
Alexandru-Dan Pop

have written my opinions about it here:

Go for Serverless or JAMStack approaches

Those technologies allow developers to leverage the cloud as much as possible - hence focus on building applications, not complex backends.

Of course those are not always possible as sometimes the API's are your selling point.

Leverage external tools instead of building your own

Let's be honest. As developers we like to re-invent the wheel. There are hundreds of programming languages. Dozens of libraries that do the same thing, for each language.
Break out of this loop, re-use what you can and focus on delivering the needed value.

The art of keeping things simple

Developers also love to over-engineer things.
Product owner needs to show the users birthday on the settings page? Well of course it can't be done without having a few microservices communicate in the backend through a service bus. And all indexing in Elastic needs to be changed before you can get that data. Frontend... you'd better forget about it... we need to spend a month first to configure webpack for the new birthday-settings microfrontend. Also the frontend will depend on the i18n microservice that is being refactored so that will take some time.


Seriously now, don't do this. Build things in a simple and easy to maintain way. Challenge over-complicated designs.

Collapse
 
brpaz profile image
Bruno Paz • Edited

Well, Serverless or Jamstack can be a form of over-engineering too IMO.

Maybe a "boring" Rails or PHP stack with a MySQL database is all you need. ;)

Collapse
 
alexandrudanpop profile image
Alexandru-Dan Pop

True