Developers and Hammers

Image credit: Photo by Miguel Á. Padriñán from Pexels

What is your favorite technology? Do you remember the feeling of excitement when you first discovered it? As tech-savvy people, we like to use our favorite tools as often as possible. Often, this reminds me of an old saying:

To a person with a hammer, everything looks like a nail.

Maybe you are passionate about Kubernetes and Microservices. Perhaps you are a blockchain or ChatGPT enthusiast. Maybe you feel like this new frontend framework is amazing. Or you might be really into Scrum or TDD.

Whatever it is, we should not fall into the trap of blindly using our favorite technology just for the sake of using it. When we fall into this trap, we risk solving problems very inefficiently, or worse, not at all.

Awareness is the first step towards improvement. Therefore, here are some examples that might indicate you have fallen into this trap:

  • Applying design patterns for the sake of using them.
  • Adding a big framework or many dependencies by default on project setup.
  • Opting for microservice architectures when simpler approaches would be sufficient.
  • Using Kubernetes for a single service that does not need to be highly available.
  • Limiting yourself to one programming language because you have never learned any others.
  • Forcing your team into a process because it is “the standard way” to develop software.

Bottom line: For any given problem, pick a suitable tool. Don’t invent problems for your favorite technology.

How about you? Have you ever tried to cut a pizza with a hammer? I certainly made this mistake in my early days. Feel free to share your experience and follow me for more content on effective software engineering.

Note: You can also find this episode on YouTube and Spotify.

#SoftwareEngineering #PragmaticProgrammer #TechnologyHype #SoftwareTools

Bastian Isensee
Bastian Isensee
Software Engineer (Freelancer)

Quality-driven Software Engineer focused on business needs, knowledge sharing, FinTechs, Golang and Java