Drowning in Tools in the Web Development Industry

Louis Lazaris
Tweet

Every once in a while in this industry we need a reminder that our trade as front-end developers — and I say this in the most positive way possible — can be a frustrating thing.

A few years ago when I mocked the number of frameworks and libraries that were proliferating at the time, and poked fun at the manner in which they were being presented, that whole concept seemed to strike a chord with everyone in the industry. That website went viral and I don’t remember a single person saying that I was out of line for making light of the situation.

“Oh, your head hasn’t exploded yet? This should do it.”
H9RBS.js

Amazingly, we might be in an even worse situation today.

Since late July, I’ve curated a weekly newsletter focused on tools called Web Tools Weekly. Throughout each week, when going through my feeds (yes, RSS is alive and well) and doing various forms of other research, I’m constantly bookmarking new apps, scripts, plugins, libraries, CSS frameworks, productivity tools, testing tools, and more.

In fact, I could probably release that newsletter daily and I’d still have enough content. As of this writing, I have a categorized list of approximately 500 different apps, resources, scripts, libraries, plugins, etc. that I haven’t yet included in any issue. And let’s not forget about the 500+ tools that have made the cut in the first 30+ issues.

And that’s the result of research from just one person!

Is This a Good Thing?

Many, if not all of us, would probably agree that being so inundated with tools is both a good and a bad thing. We might summarize the good and bad like so:

  • It’s a good thing because there’s an endless supply of tools at our disposal, helping us solve virtually any problem we face as front-end developers.
  • It’s a bad thing because it’s often too much, and too many options can be paralyzing and can make us sometimes hate what we do.

Of course, not everyone will agree word-for-word with my assessment in those two points, but I think everyone will agree that there are upsides and downsides to all of this.

Why Does the Problem Exist?

Most of you probably understand why we are in the situation we’re in. The web platform is an open platform that anyone can use for whatever reason they see fit.

The Web Platform

The web platform

We use the technologies that comprise the web platform to build things. And much of the time, we build stuff in the open, allowing others not only to give feedback on how to improve what we’ve built, but to take our project and make it their own. That can be a powerful thing.

This is one of the great things about our industry and, unlike some business strategies, this openness and collaboration doesn’t stifle innovation; it does the opposite.

Getting Your Head Above Water

I’ll be the first to admit that the title of this post was meant to draw attention. But I think it’s an honest description of where we’re at, so I’m not ashamed of using it.

The problems I’ve discussed – and I hope I’ve made clear that these are good problems to have! – are not going to get better soon. I expect the situation to basically stay the same. And if new open technologies are added, then we can expect that things will get worse.

So how can we cope? How can we keep using new tools, remain productive, and stay abreast of what’s new?

I’ll be happy to hear your suggestions in the comments, but here is my advice:

Don’t Feel Overwhelmed

In this industry, it’s been said that “if you take a year off, you’ll feel obsolete.” That’s a direct quote from the Tuts+ article I linked to earlier. And the worst part of this is that you don’t have to take a year off to feel that way. To me, the key word here is feel. Yes, you’ll feel obsolete, but it won’t be as bad as it seems.

In my view, it doesn’t matter if even 80% of developers in the industry are “left behind”. What matters is that we’re getting stuff done. Pick up new stuff at whatever pace you feel comfortable with and whatever pace you need in order to get stuff done.

Sure, if you fail to keep up with certain tools, you might not be able to market your skills to some hot new Silicon Valley startup. But you might have to lower your standards. There’s lots to be done in places all over the world, and not every developer job posting requires that you know everything.

Let Tools Be Educational

More than likely, you’ll come across dozens of new scripts, libraries, and plugins every week. Just about every one of these tools has its source code open for us to use and examine.

So learn from them!

You might not be able to use a particular script right now, and maybe you’ll never use it. But you can still peek at the source.

Look at it and ask yourself: How is the code organized? Is it using any unfamiliar patterns that you might want to take note of and read up on? If there’s a pattern or a method you don’t recognize, would it help to ask about it or look it up? Is there something in the source that looks odd that you can benefit from by understanding better?

That strange opening semi-colon.

from jQuery Boilerplate source

The point is, every piece of code ever written has some educational value to someone somewhere, even if nobody ever uses it in a real-world setting.

Focus on Solving Problems

Don’t worry about the latest new tools and technologies unless you can definitely see some benefit to learning them.

At first, I’m sure many developers were hesitant to take the time to learn a CSS preprocessor. Without much programming or command-line experience, it was viewed by many as a daunting task that didn’t seem to have much of a return on the time investment.

But now more and more developers are recognizing that large projects gain a lot from using the features of a tool like Sass or LESS. Thus, many developers have correctly concluded that the time investment to learn a preprocessor is well worth the potential return.

And that’s the same principle we should apply to learning any new tool. Don’t use something because all the cool kids are using it; use it because it helps you be more productive or because it addresses a specific problem.

How Do You Handle the Situation?

That’s my take on where the industry stands today and how we can make the most of it. As you can see, even though it can be discouraging if we focus only on the negative aspects, there’s a lot of good in the industry and I think the good far outweighs the bad.

But that’s just my view. What about you?

  • Do you feel overwhelmed by the volume of new tools and technologies available in the industry?
  • Do you think there are other positive or negative aspects to all of this? And more importantly…
  • How do you personally handle it?

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • cryptical

    I definitely agree. I constantly feel overwhelmed by all the stuff I’m “supposed” to know as a front-end developer, and constantly behind all the cool kids. I’ve taken a year out a couple of times simply because I was on contracts that didn’t require me to learn anything new, and have scrambled to play catch-up once those contracts ended (like now). I’m glad to know I’m not the only one!

  • Slpixe

    Good article,

    Loved looking into H9RBS.js was a good laugh,

    I think the vast array of choices we have is a good thing, like any software e.g. PHP, there are hundreds of frameworks most of which should pose benefits over another, however every so often a different way of looking at something yields a great result and enhances that technology overall e.g. HHVM.

    I wouldn’t expect most people to look into every PHP framework, but learning one or two can be a great learning experience. CSS frameworks shouldn’t be any different

    For front-end frameworks, having pre-processors provide us with mixims and such, could help with preparing future CSS specifications, to understand pros and con’s of different methods and approaches before reaching a release

  • Philip Cox

    I enjoyed reading this article. I Am new to web development, about 1.5 yrs now, so I find this subject a particular interest. I am doing fairly well in avoiding the new tools available and following advice to take the time and learn the core languages(html, css, php, javascript, xml). But, I do try to keep myself informed of all that is new.
    But, I do find I ask myself, how much is enough until I should look into the frameworks, as they seem to be the future of development?
    Not remaining stagnant is something that appealed to me with web dev, so I do look forward to getting stuck into to these new tools.

    • http://www.heathergaye.net Heather

      It’s well worth investigating some PHP frameworks as soon as you feel confident with PHP. Frameworks do all the heavy lifting so you don’t have to worry about, say, writing your own database access, security, email handling, &c from the ground up. Also, inspecting how the popular frameworks are written, and the constructs they provide for development, can be used as a template for best practice – it’s a really great way to study software architecture, rather than just commands & syntax.

      Javascript frameworks like jQuery are good to use because they make simple, common actions translate to simple, more legible code. Same with CSS preprocessors (LESS & Sass).

      Basically, at this point in your career, it’s a good time reach out to senior colleagues or industry acquaintances and ask them what they’re using; also what they’ve tried & discarded, and for what reason. Regarding the tyranny of choice mentioned in the article, you don’t need to investigate every single framework in existence, just go through a small handful of popular ones until you find one that feels good to use. I try and spend a couple of afternoons with a new framework if it’s getting a lot of attention; if I find it easy to pick up, and it fulfils a particular use case I have, then I’ll incorporate it into my existing toolset.

      • http://www.heathergaye.net Heather

        Caveat: in case it comes up, don’t bother with Drupal right now. It’s being rewritten to bring it in line with latest tools & best practice – total paradigm shift – and the new version won’t be ready for probably another 12 months. It’ll use Symfony, which is as good a framework to start with as any.

  • http://www.yiannistaos.com/ Yiannis Christodoulou

    Great article, Louis, congratulation. I also prefer the dozen libraries and sources. I like to have a lot of options for my next project!

  • M S

    Whats needed, is a framework that allows you to write everything, js, css, php, sql, etc using only ordinary everyday regexp-syntax.

    That way everyone with half a brain could pick it up quickly, and no extra documentation would be needed.

    Kids could learn to build a website in an hour.

  • http://jeditux.wordpress.com/ Fernando Basso

    When I read that sentence, I immediately opened my “knowledge and insights” doc and wrote it there. A very useful and intelligent piece of advice indeed.

  • http://jeditux.wordpress.com/ Fernando Basso

    My approach to solve the problem is a bit peculiar, I guess. I simply try to avoid “tools” as much as I can. I sure use jQuery (but not always) and used less twice (learned just what I needed at the time), but I generally stick with the basics in an old-fashioned way: a text editor (generally vim, but not always) and the browsers. I do use all the browsers’ built-in tools, however.

    I committed myself to learn all the dev tools in all the browsers. I can’t tell the number of times I was unable to solve a problem, then opened a different browser which showed different error/warning messages and was then able to solve problem right away.

  • http://www.mathewporter.co.uk/ Mathew Porter

    Its great that we have so many tools at our disposal, its all about utilising where required. I use a handful of tools and libraries in the majority of projects which have come from the way i work over the years. Each to their own and what gets the best results / performance.

  • http://scn.sap.com/people/christian.jianelli Christian Jianelli

    Too many things to learn, too many things to care about, too many tools, too many… some people may not accept this, but we are all overwhelmed, it is a fact.

  • Chris_Krammer

    Normally I skip though Twitter once a day and see what the new, interesting stuff is. Mostly I save it to Instapaper then and work off this list once in a while. I also subscribed to a couple of newsletters where I do the same. But meanwhile I’ve accepted, that even if there is some new that you “need” to use, it can wait. Get the stuff done you really need to and then look at this “hot shit”. The world keeps spinning …

    • LouisLazaris

      Chris_Krammer

      But meanwhile I’ve accepted, that even if there is something new that you “need” to use, it can wait.

      I agree! That’s a good way to look at it. And to be honest, there’s not much choice, especially when there is so much to examine and learn.

  • http://jonassebastianohlsson.com/ Jonas Ohlsson

    I think the key is to understand that just because you learn about new tools everyday, you actually don’t have to – and neither should you – try to learn them all as they get thrown at you. In fact, as has already been mentioned, you could surely continue to do a decent job for quite a while even if you didn’t learn any new tools at all.

    At the very least, let the community do the validating of whether the new tools are something really worth learning or not. You’re smart, you can pick it up quickly once the time is right. If you’re busy, no need to spend all that time on stuff you don’t even know is gonna stick around for long.

  • Jingqi Xie

    While there would be new frameworks to appear every day, most of them would soon be forgotten and very few would be remembered given enough time. And what is famous for a while is not necessarily really a good one – maybe just because its owner has enough money to promote it.

  • http://www.davetgreen.me/ Dave Green

    Brilliant read. I’ve been a ‘professional’ front-end developer for 18 months, and in that time I’ve had to learn to ignore the vast majority of tools, articles about the tools, tweets about the tools etc. I firmly believe you have to strike a balance between using or supporting the latest ‘bleeding edge’ tools and technologies, and using what you know works and helps you get the job done in a time frame that means you can keep your job!

  • http://webplatformdaily.org Šime Vidas

    My approach: If I’m not hooked by a tool in the first few minutes, I close the tab and ignore it haha

  • Aaron Farr

    I needed that. Thanks!

  • M S

    Most of the time when you try tools that come “highly recommended” by others, 99% of the time they like the tool because they have been using it for 10 years and have memorized all the ridiculously complex secret handshakes that are needed to get around the shitty user interface and other weird quirks

    …aaand you’re back to where you started.

    So lots of advice from old-timers are not so useful for beginners.

    After trying tool after tool after tool like that, for years, and they all turn out to be babies only a mother could love, its easy to give up and conclude its all crap anyway.

    I for example, use net-beans a lot, but i wouldn’t recommended it.
    Its just where i gave up, and pulled over.

    Would love to see a list of stuff that is good right out of the box, and that isn’t promoted only by apologists.

  • http://brewerlogic.com Adam Brewer

    It definitely is overwhelming having so much one can learn, but in a way it’s a testament to how versatile our industry is; a solution can be found in many different ways. However, learning will always be something that’s required out of us, so it’s important to enjoy and appreciate what you do.

    My take on it is to learn as much as possible initially, then to look at where your strengths lie, and finally refine and polish those skills into a craft that you’re proud of.

  • LouisLazaris

    One thing I neglected to mention was that Addy Osmani’s article Front-end Choice Paralysis is a relevant article discussing a related idea.

    I had initially meant to include a link to Addy’s post in my article, but for some reason I had forgotten where I had seen his post (i.e. I couldn’t find it on his blog). Thanks to Brian’s post on the same subject, which mentioned Addy’s.

  • http://rundtomwp.dk/ govertz

    I gave up long ago, and the thing that happened was I became more productive.