One thing that frequently bothers me when reading technical blogs or when talking to people about software development in general is that people often get extremely enthusiastic about some new kind of technology, library, framework or tool that they recently started using or heard other people talking about. In essence, there is nothing wrong with that. We are after all geeks, and the people who like to write or read technical blogs or talk about software development with others are typically passionate geeks and it’s only normal that we’re enthusiastic about tools, frameworks, libraries or pieces of technology in general. The thing is… we really ought to be a bit more careful in the way some things are often hyped in an uninformed manner.
I have a very simple rule when it comes to avoiding hype: if you can’t say something bad about it, you don’t know it well enough (yet). And until you are able to say something bad about a library, framework, approach, technology, tool or whatever, i simply can’t believe all of the good things you’re saying about it without some form of skepticism. In life, nothing is perfect. In software development even less so. Every single piece of technology or approach has its drawbacks, issues and problems. And quite often, those things only become noticeable after having truly used it on a real project for a while. I think most of us will be able to agree on that. So really, what does that tell you about someone when that person is extremely positive about something, without being able to mention any downside? That either tells me that you don’t know what you’re talking about or that you’re not even using whatever it is that you’re hyping on something real (hobby projects don’t really count). So does it really make sense for one to listen to it? Conversely, if you are very positive about something but are also able to mention the negative points that you’ve encountered (they don’t have to be huge, and can in fact even be minor) then i’m immediately much more inclined to believe what you’re saying.
Granted, my approach frequently prevents me from being an early adopter. But if/when i do become an adopter, i will be a pretty informed one. In many cases i’ll know about the negatives before they bite me, and will either guard myself against them, work around them if i have no other alternative or simply choose to ignore the technology altogether if the positives don’t outweigh the negatives. The only downside that i’ve experienced so far from this approach is that i’ll never be one of the cool kids on the internet and among the hype-hungry developers. Then again, that’s probably more of an upside than a downside, come to think of it ![]()
Looking back over the past 5 years or so, i can say that i was late in adopting unit testing, agile development, Inversion Of Control, Dependency Injection, ORM, and probably a bunch of other things that i can’t really think of right now. But i’m pretty sure that i know all of those things pretty well by now. A large reason for that (i think) is because i took my time and made sure that i made informed decisions before adopting something. I experimented, thought about drawbacks, tried it in real projects, learned from mistakes that i made, worked around problems that were inherent with the piece of technology or approach in question and only then did i consider myself able to make informed statements about it. That doesn’t mean you can’t talk about something that you don’t know fully yet. A lot of very valuable blog posts are written by a lot of people who are learning things or are just experimenting with things. The smart ones among them though, will be very honest about how much they know about it, how much they don’t know about it, and how far they are in the learning progress.
So, as Public Enemy said: don’t believe the hype!
Get informed instead.