Full Stack developers

Recently, I started to hear some buzz about full stack developers and how it's no longer believable to call yourself as such. It's a topic that I am especially interested in, as I have considered myself one of those for a long time. I will try to explain my thoughts and please, feel free to add yours as well!

Huh? What happened?!

I believe that in the past years, specially since 2010, web development has evolved very quickly. Mostly due to the increasing popularity of web apps and other types of apps that use the Internet in some way. This is great, really!, for humanity in general. We now have a more democratic and competitive environment to showcase our things, buy & sell, interact and communicate, but of course, that comes with a price.

What used to be relatively straight-forward from an architectural point of view, has become more complex now. Before 2010, I used to work mainly with open source LAMP software and Adobe Flash / ActionScript. Of course there were also libraries, plugins and a few frameworks, but nothing compared to the scale of what is available now.

So, how do I call myself now?

The amount of disciplines within web development has also increased. The separation between front-end and back-end doesn't even cut it anymore. Nowadays, we are starting to even have to choose an area of expertise within those domains, like Big Data, Game Development, Animation, mobile dev like Cordova or React native, framework-specific / CMS-specific development, creative technologies (Arduino, Kinect, IoT,...), etc. The size of the projects makes it almost impossible to get involved in all areas of active coding work at the same time. If we consider how quickly things are changing (specially frameworks), it's also becoming more and more difficult to keep switching between areas of expertise.

In fact, in the following chart, we can appreciate that only 3% of the web development job market is looking for a full-stack developer, while front-end developers are the most desirable at 20%.

Credit: Sundeep Pattem and Olivia Zhao original research for SkilledUp.com.

Developers that work in small projects, like Wordpress or Drupal websites, of course you can still define yourself as a full-stack developer, but this is something that will also be threaten by new platforms like Ghost, which implements a more complex stack consisting of Node.js, Express.js, Ember, Grunt, Handlebars, jQuery, Moment.js, etc.

It's a pity to let go something that you think you can be competent with, but it's just not realistic to try to spread yourself too thin. Tasks require of time, dedication and attention to detail, so it's just not possible to do everything (unless you are a prodigy or live with your hands attached to the keyboard).

What if I still want to have a go at everything?

Perhaps most respectable aspects of people who claim to be full-stack, is that it conveys ambition and determination. The ideal developer should be willing to have a go at learning new things, but also acknowledge when they need help from a specialist in the team.

After all, smaller companies and startups still NEED full-stack developers. Developers are often forced to acquire new skills when the resources simply aren't available. The problem for companies desperate to hire these guys, is that the real multi-skilled developers are quite hard to find.

On the other hand, for complex projects, it is critical to have at least one person with at least a functional understanding of each of the composite parts who is also capable of connecting various tiers and working with each expert so that a feature can actually be delivered. In a way, these tier-connecting, bridge-building software architects (who are likely experts in only one or a couple of tiers) are less full stack developers and much more full stack integrators.

If you want to have a go (maybe with a side project), one of the most popular full stack frameworks is MEAN.

Image from Bacancy Technology

MEAN is an opinionated full stack JavaScript framework that simplifies and accelerates web application development. MEAN stands for MongoDB, ExpressJS, AngularJS, and NodeJS.

Conclusion

So, what do you think? Is it just a matter of labels or are we really experiencing dramatic changes in our industry?

Featured image from PacktPub

Joan Mira

Interactive web developer and creative technologist in London