Eos Web

Choosing the right tool for the job

by Juan Francisco Giménez Silva

21 May, 2015 at 13:47

8559728371 5f21dee03c k

When one is a software developer it can be easy to become overly adamant with methods and practices. I have not seen any other profession when the saying "when you have a hammer everything looks like a nail" than software development. As a result many developers end up being one-trick ponies, who attempt to adapt situations to their current favored practice.

In the real world however we have to sometimes give up our favored tools in order to adapt to :

  • The current ecosystem of the customer. (but being able to propose changes if it's outdated or suboptimal)
  • The future needs of the system.
  • The budget of the customer.
  • Our current knowledge and skillset. ( and politely be able to decline if the problem is well outside our domain)

...and I'm probably missing a lot of other aspects to take into account.

It's tempting to give in to our favored tool field of specialty, for example in the case of Go turning every system into a series of microservices. But many times this isn't worth the the effort, or at least it would delay enough the development of the application to put the project in an eternal cycle of development. It's important however to have a diverse knowledge of the technologies at hand, and be able to move fluently enough between different development environments.

I think experience solves many of these problems. After many years the urge to try and force a new technology into a software project goes away, but also the amount and diversity of known technologies gives us a better arsenal of tools to use in different situations. My advice to novice software developers is to keep researching, but more importantly listening to more experienced developers and learn from their experience; and to senior developers, to avoid having a closed mind, and getting rid of the "get off my lawn" attitude when presented with new ideas and solutions.

Photo credit goes to: Homespot HQ CC-by 2.0