Excerpt



## The case against the full-stack developer
The anti-full-stack developer camp is perhaps one of the most dominating voices in the argument over what does (or doesn’t) constitute full-stack. In short, their argument is hinged around the idea that a full-stack developer is someone with “the ability to easily navigate the back-end and front-end with a senior level of expertise.”
While there’s some variety within this view, this camp believes that full-stack developers should be able to:
- Write all around top-notch client side (or, front-end) code at the same level as a front-end specialist
- Write equally top-notch server side (or, back-end) code at the same level as a back-end specialist
- Manage the server infrastructure
- Handle the non-technical project management and business demands of coordinating their work with product
- Oversee QA, DevOps, and security
And while this group concedes that many developers can do some work that spans both disciplines, they feel very few can do both well. In short: they allege that a truly full-stack developer is a unicorn, and that too many people bill themselves as a full-stack developer without having full-stack qualifications.
This camp’s gripe with the “full-stack developer” term can be summed up in the following points:
- It’s a way for companies to make unrealistic demands of their employees. It allows them an avenue to task one employee with massive amounts of responsibility, which benefits the company, and at the expense of the developer. Companies ask for huge amounts of work and expertise at a low price (compared to the price of hiring multiple specialists).
- It implies a global level of expertise that most developers don’t have. Being a true full-stack developer entails “” of both front and back-end tasks, which just isn’t possible, given the speed at which new tech evolves. Calling oneself “full-stack” with any less expertise is a misuse of the term.
dual mastery
- It encourages wide breadth, shallow depth knowledge. A full-stack developer can never fully immerse themselves in either the front-end or the back-end. A focus on the entire stack makes developers a jack of all trades, master of none.
## The case for the full-stack developer
On the other hand, the pro full-stack developer camp argues for a broader interpretation of the term. They refute the idea that a full-stack developer has to be an authority in every layer of the stack; instead, they need working knowledge of the entire stack, with true expertise in only a few layers.
Their definition of “full-stack” opts for a less restrictive set of requirements, describing someone who can:
- Comfortably write both front and back-end code to some extent
- Generate a MVP (minimum viable product) on their own with minimal support from others, if necessary
- Provide expert-level specialty in a small handful of technologies
- Show at least a basic understanding of technologies they don’t specialize in
In other words: from this view, a full-stack developer doesn’t have to be an all-around expert in every layer of the stack. Instead, here, a “full-stack developer” refers to being an effective and seasoned generalist: someone with a wide knowledge base, a solid specialty, and the willingness to admit when they’re out of their depth.
Their defense of the term “full-stack developer” is rooted in a few key thoughts:
- A good developer doesn’t silo their knowledge. While most developers are either front-end or back-end focused, to be good at either, you need to understand both sides of the table; forcing a strict line between the two sides discourages developers from learning beyond their specialty. On some level, .
the boundary between back-end and front-end is artificial
- Companies need all around developers. Specialization isn’t suitable for everyone, or for every business goal. Small companies and startups need the broad expertise and the versatility of full-stack knowledge to build projects with limited people and resources. Large companies tend to have more work for specialists, but can still
utilize full-stack developers in a project management context.
- They bridge the worlds of front and back-end. Specialized front-end and back-end developers have their place, but developers with full-stack knowledge help to bridge the gap between the two of them. Because they understand both sides of the coin, they can identify issues and opportunities that lifelong specialists might not. It promotes cross-layer functionality.
This argument alleges that full-stack developers don’t replace, but build on and complement the work of front and back-end specialists. Their core value lies in their ability to understand and work on the full breadth of a project, and to bring a more global technical knowledge to everything they touch.
In a nutshell, the philosophy can be summed up in this quote from The Pragmatic Programmer:
> “The more things you know, the more valuable you are…the more technologies you are comfortable with, the better you will adjust to change.”
## Aligning on a meaning that works
- Make sure your asks are reasonable. No matter which camp you ask, nobody expects a full-stack developer to deliver the output of a full development team. If you decide that a full-stack developer makes sense for your team, be sure you’re not inadvertently asking for a “unicorn”, or asking one person to provide the output of many. Most importantly: be willing to consider that there may be more than one skill set that can succeed in the role.
- Clarify how developers work together at your company. How does your team split work, and who oversees them? What kind of front to back-end flexibility do they expect out of any given individual, full-stack or not? If hiring managers and recruiters align on this point, it can be easier to understand how a full-stack developer would function in context. And better role alignment means a more efficient hiring process.
- Keep your company’s needs in mind. Generally speaking, the bigger the company is, the more specialized developers (and all other roles) can be. If you’re in the process of growing your team, be mindful of how a full-stack developer would work in the team—not just today, but in the long run, as your team scales. A 300 person team might have room for more full-stack developers than an 8,000 person team.
- Consider that “full-stack” is a moving target. The spectrum of opinions on the term “full-stack” mean that full-stack developers can come in many varieties. Just because a candidate labels themselves a full-stack developer doesn’t necessarily indicate a match. On the flip side, a candidate that calls themselves a front-end or back-end developer may have just enough all around knowledge to suit your full-stack role. Don’t ignore the terminology, but take it with a grain of salt, and let the candidates’ skills speak for themselves.