The Full Stack Developer Myth

Once upon a time, there were Full Stack Developers, but as time progressed, they disappeared. Now, all we have are impostors. People trying to be full stack, but failing. The Full Stack Developer is now as obsolete as a unicorn .

Back when I started programming, you could get by only knowing one language and a couple of supporting “languages”.

My story is similar to many from my generation. I learned a little Basic to catch the programming bug. Then I tried Pascal and moved on to C before I went back to school where I learned COBOL, JCL and CICS. Mostly it was COBOL.

It didn’t take long to learn any of those languages because the language was the language. Things didn’t move quickly. CICS was simple. And we only needed enough JCL to get our programs to compile.

The Beginning of Complexity

Once I graduated, I moved into the world of PCs. Here, I quickly adopted Clipper, a dBase III compiler. Once again, there wasn’t a lot to know and I was able to quickly become an expert in the language. Not because I was any super smart programmer, but because there wasn’t much to know. In fact, at my first job, there was so little to know that I was able to easily be a one-man IT department.

But today is different. Especially if you are programming anything of significance for the web. Today, to get a web application up and running that looks good and performs well, you’ll need to know: HTML, CSS, JavaScript and some sort of backend programming language. That’s just the minimum. If you are working in an enterprise environment, you’ll also probably need to know one of the popular JavaScript frameworks. Maybe some SASS. Node and WebPack. A UX/UI framework such as Bootstrap, Material, or Clarity. And the list can keep growing. We haven’t even touched on authentication protocols, knowing enough about security to keep your site safe, or anything about DevOps, Continuous Integration, or Continuous Delivery.

And yet, I still see most job request advertising for “Full Stack Developers”

Is that even possible?

What Does Full Stack Mean?

When we first started developing web applications, two things were true. They weren’t very complicated, and they didn’t use a lot of technology. Keep in mind that in the beginning, our biggest issue was cross browser compatibility. This kept us from advancing quickly. So, a typical web application would do 99% of the work on the server and make it all look good with CSS. HTML wasn’t that complicated. So, one developer could, with a little effort, keep everything they needed to know in their head.

The Boiling Frog

As things progressed, we added JavaScript, then some simple JavaScript widgets. HTML improved. CSS improved. And then on the server side, this thing called REST came along. Suddenly, the amount of stuff we need to know has exploded. A new framework is born every hour it seems. Updates happen at a blindingly fast pace. Can anyone keep up?

And yet, companies still want “Full Stack Developers”

The Emperor Has no Clothes

Is there no one who can see that this is a recipe for disaster?

I think programmers kind of like being able to dabble in several different technologies. Spend a little time here. A little time there. Here a little, there a little. It certainly isn’t boring.

But, the problem with this is all your code suffers. Oh, sure, I’m definitely a proponent in learning multiple languages. The more you learn, the better you get. But, I’m also a proponent of being an expert in one of them. At least one at a time. And there is the problem. Because we have to know so much, we can’t possibly be an expert in anything.

This last week, someone asked me how much of Angular I know. I had to confess, “maybe 80%” It wouldn’t surprise me if I knew even less. The framework keeps getting new features and I have little time to keep up. And I’m fortunate enough that I’ve spent 90% of my time over the last 4 years doing JavaScript development. And since Angular started the RC cycle, I’ve been spending a 100% of my time with Angular. If I’m having trouble keeping up, what about the guys who are trying to everything else?

Because I don’t currently even know what I don’t know, my code suffers. Which leads to my next point.

Bad for Business

Business at some level understands that having one guy who is the IT department isn’t going to work well. You don’t see any jobs advertised for that.

But “Programming” gets lumped together as one giant thing. But I’ll tell you. Work with a guy who really knows CSS. Or really knows Angular. Or really knows HTML. Two things would happen. Quality code would be produced much faster. The code would have fewer bugs. And the other developers, would probably become better in the areas they are weak in. This means that hiring a Full Stack developer is costing business more, even if they pay more for the individual experts.

Why I Care

Some in the comments have accused me of being some old dude who can’t find a job. Trust me, I have no problem finding work! No. The reason I care is because I’m sick of working on the crappy code left behind by guys who either didn’t invest the time to learn how to code correctly using the tools they had, or lacked the experience to know where to even start.

Now that client side development is a thing, it isn’t enough to be able to hack a result together, which is what most full-stack developers are doing who have most of their experience on the back-end. Even otherwise really smart programmers are getting this wrong. Just because you know JavaScript or TypeScript (or whatever client side language you use that transpiles to JavaScript) doesn’t mean you know how to properly write a client side application that can be maintained, let alone one that can be tested properly!

I’m Not The Only One

I had no idea this was such a hot topic. I haven’t received this many comments on a blog post in quite a long time. Some agree. Others disagree. All seem pretty passionate in their view. Many didn’t seem to read the whole article.

But here’s the deal, I’m not the only one. A quick search for “Full Stack Developer Myth” brings up the following articles:

To be fair, a small company may think they need to hire someone who can do it all. But, they’d be better off hiring a “Full-Stack Agency” who has specialist in each area. Unfortunately, my experience has shown a company who should be using an agency also has no clue about the skill level they should be hiring.

Practical Reality

I’m not sure I have an answer for the dilemma I’ve presented. Show your manager this article? Refuse to take Full Stack jobs?

No, I doubt those will work.

What I’ve been doing is interviewing for jobs on the strength of what I’m an expert in. It doesn’t always work. But for the companies that recognize that I know way more than most of their developers who are just getting by, this lands me a secure, well-paying place in the dev shop.

Spread the word. Full Stack developers don’t really exist. The best developers are specialist and business would do well to hire specialist over generalist.

This page contains copyright material from http://blog.dmbcllc.com and you have no rights to copy and paste the full text into your own blog even if you have written permission to the contrary. Violations will be reported.

Once upon a time, there were Full Stack Developers, but as time progressed, they disappeared. Now, all we have are imposters. People trying to be full stack, but failing. The Full Stack Developer is now as obsolete as a unicorn .

While I can understand this perspective there are far more things at play that go into these decisions like budget, size, scope, and the age of the company. A startup, small business, or even big company project can’t always hire specialists for every role. In fact there comes a point where overspecialization becomes a big problem and then you have to change staff constantly as the business\tech needs change. I hire full stack engineers who are very capable but I also understand there is a limit to how deep they will go in any one area. Most of them actually… Read more »

I think a full stack developer today refers to someone who has worked across many roles because they have the talent and intelligence to be able to pick up a new technology and run with it very quickly. They will usually have one thing that they currently specialise in, but they needn’t be pigeonholed by it. It’s true that it’s very difficult to be on top of the full stack involved in delivering modern software. Trying to stretch a single developer across everything they need to know can result in blown out project schedules and a pretty average implementation. But… Read more »

As long as you can code both front end and back end, you are a full stack developer. How good you are at them, that’s the quality of the developer not the nature of the job. I agree that frameworks and stacks changes faster than what you can learn and it is impossible to know your stack at an expert level. But at the same time, I feel the industry do not need experts any more. Anything slow on the backend just launch more instances or do more caching. For the front end, there is no point to make it… Read more »

It makes sense, of course, but I think it should mean that you are able to adapt to the technologies that the company is using, which can be some tools and languages that are constantly in your sprint and others that you do occasionally. Interviews should be adapted to that, so you are not tested in a closed environment to show how much you know from your head, but how you solve problems and understand concepts.

I am an early middle-aged “obsolete”, “unemployable” American programmer. I wonder if companies are not really looking for such folks, but instead want to prove to the immigration agency that they can’t find any *qualified* Americans for the job; of course, the guy they get from India doesn’t have that knowledge either, but nobody checks up on that.

Totally agree! Don’t get me wrong I work with an avalanche of contracted programmers from India who are great – but what about homegrown developers – just because I reach the age of 40 (I’m actually 60) suddenly I’m obsolete (for god sake I haven’t stop learning and willing to take on new technologies) – it’s just a ruse for companies and the public sectors to say we can’t find any talent – so we have to reach out to other countries – pure BS! Do you know how many interviews I have conducted to weed out the interviewees you… Read more »

One more thing – as a nation we keep promoting STEM and encourage our students to pursue technology – Why should we ask this of them only to have them go into deep financial debt from student loans and find out when they graduate there are few jobs because most are taken by foreign contractors. Again, hire our citizens first and have companies prove to the government they cannot find local talent.

An interesting point of view. The problem is that multiple areas of expertise could be involved in a system e.g SQL, C#, Windows Service development, Web services, some kind of front end which could involve several disciplines e.g HTML/JavaScript/Jquery/Angular, responsive UI across several device types etc. Not all companies are in a position to hire an expert in each area. Inevitably with holiday/sickness/people quitting and a replacement not being found you will have to cover outside your chosen area of expertise at times. The answer as in many things is that you need a happy medium. There is certainly a… Read more »

I don’t, and never have, believed in the “Full Stack Developer”. You might as well refer to it as “Jack of All Trades, Master of None”. I’ve been in this industry for 42 years and have never met anyone who has mastered the “full stack”. It’s a smoke screen.

Full stack depends on the definition of what is meant – and that will vary from project to project. Its quite possible for a single person to implemtnt everthing from the backend/database through to the HTML of a web site. on a small to medium project.

But really ‘full stack ‘doesn’t realy apply to anything as we all really on soemthing from someone else be it a libary, framework, browser, compiler etc.

Perhaps the best dfefinition of a full stack developer is someone who can work on any part of the project and they do exist!

Exactly… VC driven endeavors are seeking the holy grail in developers. Since most newly minted (within the least 10 years) dev folks don’t really write code from scratch. They must source from many code bases. That and some/most organizations place no value on original thought and are bound by security concerns. These all drive to the end products being of “sameness”.

The truth is there is nothing new under the Sun in regards to software development. Just the “sameness” of the trilogy.

Input
Process
Output

However you package it/sell/pontificate all resolve to these three constants.

The big problem are the idiots who keep re-inventing the wheel, usually ‘improved’ by making it oval in shape and adding pointless features. I work mainly in C++ and what the ISO steering committee has done to a ‘universal’ language is criminal. Yes a few new features such auto, the new breed of smart pointers and multitasking is welcome, but the rest is pretty pointless and makes it difficult to keep backwards/forwards compatibility between environments/compilers. Why remove autopointer killing forwards code compatibility at a stroke – unbelievably stupid! Same applies to JavaScript so many ways of doing the same thing… Read more »

this is what kills me about “DevOps.” I’m a developer. I want to be good at writing software. don’t ask me to ALSO learn IT infrastructure, server operating systems, databases AND security. I won’t be good at those things and I will be worse at development. hire an IT staff!

Yes, you can be full stack, it’s a question of what stack, there’s just so damn many things out there that nobody can possibly master them all. In fact, you can’t even master one thing – does anybody really know 100% of Java? Every single API in the JSE and JEE? Get real. At best, someone can be really good at the Java language, have a good idea of what’s available, and know what resources to consult to figure out how to solve this or that problem they haven’t had to deal with before. In other words, Full Stack is… Read more »

You need to define ‘full stack’. If it means DB, middle tier and front end (browser) then you need to more fully define front end. Did you drink the Angular cool aid or maybe the React cool aid? Where will these frameworks be in 5 years? Maybe think W3C for a definition of front end and then add toolsets like JQuery but I posit that if you throw stuff like angular in to the mix then you have a ‘hopeless’ mix. To me angular is a separate language. A specialty that does not belong in the ‘full stack’ definition.

Buzzwords like “full-stack” come and go. What matter is being able to craft a good software. I can think of many good software engineers who can pick up any technology and code better than most “specialized developers”. Why? because they have what is called software craftsmanship.