The Trend is Not Your Friend

Tzafrir Ben Ami
JavaScript in Plain English
5 min readJul 18, 2023

--

“Cristal ball of trends” generated by DALL·E 2 (cool, right?)

“The trend is your friend” is a famous phrase among stock traders and investors. In a nutshell, it means that traders should follow the direction of a stock price since it tends to last for some time, and usually it is more profitable to “ride the wave” than betting against it.

Now, my knowledge of the financial markets is limited and if you ever want to become rich you should not take any financial advice from me (no seriously, please don’t). That being said, when it comes to software development our goal is not to take a short-term profit before moving on to the next trade. Chasing the latest technology trend (or hype) can eventually discourage your business.

Short declaimer: I am not a Luddite opposing any new technology. Software development has evolved tremendously in recent decades and without it we would still be punching cards to write programs. However, working as a developer for quite some time taught me to be a “trend-skeptical” and examine new technology trends with caution.

What makes tech trends so attractive?

As software developers, we are eager to adopt new technologies, and there’s nothing wrong with it when done for the “right” reasons (such as improving performance, enhancing security, enabling new features, etc) and after proper evaluation. But if we’re being honest here, there are also other reasons for developers being a little (maybe unconsciously) obsessed with new technology trends — let’s look at some of them:

Fear of trending out

“If you see a bandwagon, it’s too late” (James Goldsmith)

The software industry is very agile and driven by innovation. Companies are constantly improving or creating new products and services to stay competitive. In a good sense, it pushes developers to expand their skills and knowledge to keep up with rapid changes. But there’s also a downside to it — similar to the FOMO (fear of missing out) phenomena, where one might feel that everyone else is having fun except him, developers are concerned about being left behind and becoming irrelevant while everyone else is moving forward with technology.

Have you ever seen a blog post about the “Top 25 frameworks every web developer must know” (just being cynical, of course, there are at least twice as many) or “The 39 AI tools to learn if you wanna become a CTO”? These posts attract our attention by applying the common fear of many developers of being left behind. How will you become a CTO if you only know 15 AI tools?

By itself, there’s nothing wrong with learning new tool\technology. On the opposite, you should challenge yourself with new topics and concepts all the time. But don’t let it develop into an exhausting “rat race” after each new industry hype, and more importantly, don’t let it take your attention from focusing on deeply understanding the technology currently on your plate. By the time you’ll finish reading this post, there will probably be another AI tool you must learn or a new Web framework that you much know…

Netflix is using it!

The fact that some technology is used or developed by Netflix\Google\Facebook or any other top-notch tech company doesn’t necessarily mean that the same technology fits the needs of a small or mid-size company. The requirements are not the same, the resources are not the same, the scale is not the same, and the budget is not the same — so why should the solution be the same?

For most parts, I will credit this technology to be robust, scalable, and so forth, but there are other factors to consider when evaluating technology. The number of engineers in tech giants working to support and maintain some of the internal tools they are using is probably higher than the total headcount in many mid-size companies’ R&D groups. In some cases, the complexity of implementing the new technology solution\tool and the resources it requires might NOT be worth its benefits over using a “simpler” (and maybe less trendy) one.

Ultimately, the fact that Netflix is using some technology is a positive signal for its quality, but on its own cannot be the reason for choosing it over an alternative solution. Make sure you choose a technology based on your actual needs without ignoring its drawbacks just because of its current hype.

Out with the old, in with the new

“New things are always better than old things” (Andy Warhol)

As humans, we are often more interested in new shiny things while getting bored with old ones, and as developers, we are probably more likely to be affected by this bias. Sure, we know the cons and pros of the well-established framework we have been using in our previous projects. But a new tool that promises to simplify the development process and improve performance sounds much more existing.

Were you ever frustrated from working on a system full of crappy bugs and tech debts? Did you want to re-write it from scratch “the right way” (famous last words) using the latest technologies and best practices? There might be good reasons to do so. For example, when a system was built with outdated technology no longer supported, but usually incremental and more focused refactoring might be a safer solution.

Just because something is new doesn’t mean that it is better. Don’t be afraid to get “stuck” with a technology that’s been around for some time. It’s probably reliable, well-documented, and well-tested.

The Survival Bias

The survival bias (or survivorship bias) occurs when we focus on someone or something’s success while ignoring failures, which might lead us to misjudgment the overall situation. Not all 60s music was iconic, but the songs and artists still popular today are the most memorable and significant ones while others were long-forgotten.

Historically, most technologies we were using have been gradually replaced by improved ones which became the new “mainstream” (until replaced by others). We used to write SOAP web services and in recent years REST gained much more popularity. Monolith apps are replaced by micro-services architecture (also some argue that we should go back to monolith apps). The titanic progress that software development has made in a relatively short period might lead us to the wrong conclusion that it inherently moves forward in the sense that old technologies are always being replaced with improved technologies.

But the reality is that just like with 60s music, not every new technology is better than the one it aim to replace. The ones that do will be adopted by the community and eventually become the prevalent choice. But first, it should overcome its “competitors” — technologies that aim to solve similar problems — and go thru several release-feedback loop cycles. Yes, REST is probably preferred over SOAP nowadays for good reasons, but should rush and replace your RESTful services with GraphQL?

We got the idea, now what?

Back to my initial declaimer, the purpose of this post is not to preach against implementing new technologies and tools. That was not my intent. On the opposite — don’t stick with your current tech stuck when there are better alternatives or the requirement change, but make sure not to rush into new industry hypes for the wrong reasons.

And as always, I’d be happy to hear your thought if you disagree with me — comments are always appreciated 👇

More content at PlainEnglish.io.

Sign up for our free weekly newsletter. Follow us on Twitter, LinkedIn, YouTube, and Discord.

--

--

a "Full stack technology leader", trying to solve complex business problems with technology - mainly on the Web and large-scale systems (but not just)