“Full-Stack” Developers

In his blog post titled The Myth of the Full-stack Developer Andy Shora, a front end web developer from London, explains how he feels about web developers that claim to be “full stack” developers. Many web-based applications used to be built on a relatively simple “LAMP” (Linux, Apache, MySQL, PHP) stack, but in recent years the number of frameworks and architectures and frameworks available to web developers has grown enormously. Shora believes that with the modern abundance of software layers and architectures, developers can’t have enough of a mastery of each to really consider themselves full-stack.

It’s easy to become disillusioned with your own skill level in a field. While interviewing junior web developers, they were asked to rank their mastery of six different areas of development (UX, HTML, CSS, JavaScript, SQL, and a back end scripting language) on a scale from 1 to 10. They tended to rate their skill level in each area between 5 and 8, considering themselves full-stack developers with a moderate level of understanding in each area. When given 30 points to distribute between the six areas, instead of maintaining the same ratio between the skills they tended to highly rate some and rate others far lower. While they considered themselves full-stack developers it’s clear that they all understood that they had their strong skills and they had their “good enough” skills.

If you create some app that a lot of people end up using, it’s easy to get an inflated sense of your skills. While you might have created something that works in the end, it’s highly unlikely that you did so with full mastery of every single layer of your application. It’s possible to only have a minimal enough understanding of every piece of an application to put them together in a way that, at the very least, works.

I think it’s only becoming more and more difficult to really be a “full-stack” developer on today’s web. As more frameworks and architectures and layers are continually added, it’s almost impossible for one person developing every layer of an application to have a full mastery of all of them. I don’t think this is a bad thing, and I think this article has helped me realize that. While it’s important to be able to understand how different parts and layers of an application work together, I think that’s best left as its own role on a team. Everyone is able to specialize in their own area and someone else’s specialty is to coordinate how they come together.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s