Intellectual masturbation in software development

This week I attended the Techorama developer event in Belgium, with an opening keynote of Hadi Hariri titled “chasing the silver bullet”. To summarize the keynote: “new” technologies arrive every day, and marketing tries to convince us (developers) we always have to use the latest and shiniest new tools available on the market. This is not true, and people with some years of experience in the development community know this: you should only use the latest and new tools when it adds value to whatever your business is, not for the sake of using new things.

This made the keynote relevant to me in two ways:
First of all, those events are always filled with “young ones”; developers with zero to five year experience who actually think they are going to change the world. They won’t, maybe one, if lucky. I was one of those young ones ten years ago, and when I attended these kind of events, I equally felt the urge to go back to the office and introduce all these nice new things. It is easy to get brainwashed when you are young. And there is the exposition room filled with sponsors that all claim to use and play with these latest things, so you kind of feel alien if you would think different. Of course, those companies are in general in the IT consulting business, so they only profit by introducing new technologies and sell additional services to use it, and if you are part of such a company, you might be able to actually always use the latest releases. To ISV companies who develop products, using the latest is only relevant if it adds value to your product, because it will come back and bite you.
Second thought. The word that came immediately in my mind, was the term intellectual masturbationMr. Hariri did not use it during his talk, but it would have perfectly fitted the topic at hand: Intellectual masturbation simply means the engineer does something because it is a challenge for his brain to apply a new technology, and he will get satisfaction from it, but does not take into account whether this adds any value to the product or company that is actually paying him. Where I work, a company creating software  for almost twenty years, we use this term every time an engineer comes up with a shiny new technology that will solve all our issues, or is just fun to use and gets some attention. Funny enough, the sales guys also want us to use these new tools and technologies, because it is nice to bring them up during sales conversations: “yes we have agile development”, “yes we do devops”, “of course we use continuous integration on Github”, “sure we use C# 5.0”. The fact they do not understand it is irrelevant since their job is selling our product and how they make the deal is not that important (so I don’t blame them), even if it involves showing off with “their” developers that use the latest technology on the market.

Just as Mr. Hariri speech, there is no real point to make in this article so far, but only a take away: if you are applying these new technologies, are you doing it for your own excitement, or, are you actually providing value to the business. You’ll see in this blog I work with a lot of new silver bullets, for example the article on Redis and Docker and NodeJS. It is not my intention to convince you of these technologies and apply them straight away. I write these articles while investigating these new technologies so I can see whether they can add value to my business. I’m only writing it down because maybe some day, somebody, somewhere in the world, saves a little time with it to decide whether or not it adds value to his business as well. And even though I did test Redis on Docker on Windows, I’m quite sure I will not use it in our product,  but that doesn’t mean you can’t either, or I will not use it later on in another project when it would be appropriate.

Because just as much as it is your obligation to avoid intellectual masturbation, it is your obligation as a (software) engineer to  be on the lookout for new technologies that can bring in more value to the company. You must remain up-to-date and learn new technologies. So go out and investigate the latest tool, but evaluate it correctly and you have a good career coming, else you are just wasting money.