21 May, 2015 at 13:47
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 :
...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