Hype in Software Development
Developers, don't believe the hype. Be warned: everything that glitters doesn't compile.
Join the DZone community and get the full member experience.Join For Free
Increasingly often we come across a new technology, a new trend and most possibly a new hype. And, we, developers, somehow lose our sight of the goal we want to achieve and sadly embrace the hype. In an effort to bring the hype into the game, we can create a very big technical depth from day one. In this post, I'd like to share some of the examples of the hype I have seen so far.
What Kind of Sorcery Is This?
Developers write obscure code because of the hype about fewer lines of code. The fewer lines of code we write, the smarter/knowledgeable we are.
The true sorcery, sigh...
On the contrary, the hard part is rather making it clear enough. If we can't understand the code after some time, it's almost a crime scene. For every little change, we need to investigate the same crime again and again.
Dare to Enter My Abstract Factory
The developers sometimes apply abstraction too eagerly. Perhaps they want to create the most generic program ever or they want to apply a cool pattern. Suddenly, they can end up in a magical world where they lose their sense of reality and what the problem was. The abstraction isn't free and applying the right level of abstraction might be hard. In the end, you might become architecture astronauts.
Have you ever used a NoSQL database with relational mindset? Back in the days, I saw this being applied. Multiple documents that represent the domain similar to relational databases. Nonetheless, we didn't have foreign keys, joins, and transactional guarantees. Yet, somehow it was the "right" choice. What's more, it was web scale!
Who wants their databases to scale indefinitely? So, why not use a scalable solution like Cassandra from day one? Many developers used it. Well, if you are inserting less than a million rows a day, does it still make sense to use a solution like it? What about provisioning, deploying and maintaining such a complex system?
Some big company saved their organization by adopting microservices. It's proven to work for them. So, what can be wrong with microservices? Maybe there's nothing wrong except the fact that your development team is 3 people. Or, you never had anything that provides some value.
If you have a line of things to be handled like some sort of tasks, you can use a queuing system. Developers have wanted to use a Redis for queuing because of the hype. They have used it. At the time, it lacked library support and wasn't resilient enough. There was an option of using existing battle-proof technology yet it didn't happen. Hence, the developers got lost in the dark with no light and getting support duties constantly.
Agile frameworks won't fix your organizational problems. Moreover, inventing buzzwords like "organic agility" for your organization won't provide anything, either. Most of the organizations fail to take into account the very core of the Agile Manifesto. Soon, the organization ends up in a people depth: roles, methods, and inconsistency. After all is said and done, the time and money get invested in the wrong place without thinking about the return on investment.
Yes, it does. And, your team decided to choose a brand new programming language that doesn't suck. Over time, things can go south and you might realize the fancy new language wasn't that good after all. It lacked framework support, IDE integration support, and so forth. All in all, it started to make your life miserable. This isn't really about Java but a more general case for the programming languages. Every language has its advantages or disadvantages. Some of them are great at getting something done fast and some of them are low-level and so on. One should be careful about getting excited about new languages.
The frontend development is the mother of hypes in software development. There are hypes about tooling, language, frameworks and almost everything. Everything changes so fast and people too often gets enthusiastic about new stuff. Hence, I'm not able to list anything here as it might get obsolete soon. The hypes in front-end development make developers feel old. The sad thing is we can't even avoid hypes in front-end development.
Nobody cares about these hypes. The only thing that matters is to make one's life easier through writing software. On the other hand, you might even make someone's life harder because of the hypes. So, do be careful.
Published at DZone with permission of Yusuf Aytaş, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.