Hiring Full-Stack Developers? Read This First.
Looking to hire a full-stack developer? It might be more complicated than you imagined.
These ‘needles in a haystack’ are not only rare, but also incredibly tough to hire. Most have already been employed by bigger agencies or companies. If you want to “steal” them, you’ll have to offer a much higher wage. You could train one on the job, using your own resources, but you run the risk of having them taken from you by someone who can offer a higher salary.
Despite some misinformation to the contrary, in many cases a full-stack developer will not be the answer to all, or even most of your problems. (Unless you’re a startup with a very specific project — we’ll get to that in a moment).
What Does “Full-Stack” Mean?
“Full-stack” developer means different things when applied in different situations. Most commonly, it means having one developer who can work on multiple technologies and in multiple languages. See this chart:
A true full stack developer needs be proficient in at least on of the technologies in all of the rows above, ideally more. In other words, a full-stack developer is a generalist across multiple layers, not a specialist in any one layer.
However, it’s rarely a case when a client has such a need that requires a developer to have such a broad skill set.
More often, when we get requests for a full stack developer, the client wants someone who can quickly switch between front-end and back-end development roles. These developers would work with the client-side languages like Bootstrap, Foundation, Backbone, AngularJS, and EmberJS. They would also work in server-side languages like PHP, Ruby, Python, Java, and .Net, and tools like MySQL, Oracle, and SQL Server. Occasionally, although rarely, they should also be able to help out with Infrastructure and DevOps.
Let’s think about this for a moment.
In almost every other industry, specialists command the high prices for their skill set, which takes years of precise training and practice. You wouldn’t go to a specialized corporate lawyer to mitigate a divorce, and you wouldn’t expect the doctor at a walk-in clinic to do neurosurgery. They simply do not have the resources, time, and energy to devote to specialization if they’re busy training in many other areas.
Simply put, there is no such thing as a full stack doctor, or a full stack lawyer.
The same goes for developers. A full stack developer is a generalist. Good for many things, but not great at any one thing — and if you’re suddenly faced with a situation that requires attention by an expert, your expensive full stack dev might not have the answers you need. As in almost any other area, attempts to offer many “average” services result in the inability to offer even one “great” service.
Of course, there are several developers out there who have been coding for more than a decade and have thus gained experience in a wide spectrum of technologies. However, what we are saying is definitely true for a developer with a couple of years of experience and a degree from Udemy. Unfortunately, odds are that most developers who label themselves as full-stack are latter, not the former.
On top of technical expertise, your full-stack developer must also have a solid enough understanding of each component of the stack to be able to explain it, in plain english, to the management or your clients, who may not be technically-oriented. So in addition to the development skill sets, the developer must now be the only one who can explain highly technical concepts — and if they aren’t very social, then this will lead to communication problems and confusion.
When you’re hiring a full stack web developer, you need a developer who knows everything and has great communication skills, too. I think you’d have better odds if you ordered a “Venti, half-whole milk, one quarter 1%, one quarter non-fat, extra hot, split quad shots (1 1/2 shots decaf, 2 1/2 shots regular), no foam latte, with whip, two packets of splenda, one sugar in the raw, a touch of vanilla syrup, and three short sprinkles of cinnamon,” at your local Starbucks and got it perfectly made.
When Should I Hire a Full Stack Developer?
Most people want to hire a full stack developer for one of the two reasons
- They need a CTO or someone who can make the technical decisions
- They want to save costs by hiring one developer who can do everything instead of hiring several different developers
In any case, there are two main issues you’ll have to address when working with a full-stack developer:
Attrition and scaling.
Lots of people like you have a similar mindset when it comes to full-stack engineers. Full-stack web developers and engineers have high attrition rates and are naturally motivated by self-interest. Their skill set means that they can always be on the lookout for a better deal, if not for money then for more interesting projects. If your developer leaves for someone with more money, you’ll soon be looking for a replacement, and as we’ve already covered, the odds are stacked against you
The second problem is scalability. If finding one full stack engineer is tough, finding 10 is nearly impossible. Soon, you will either feel capped, or start looking for specialist developers depending on your business needs. In that case, you would have probably been better off just hiring specialist developers in the first place.
Many people see the work we’ve done on other projects and come to us in the hopes of hiring a full-stack developer. However, they often don’t actually need a full stack developer, or we see that in the long term hiring full-stack developers will ultimately end up costing the client more money, while offering less expertise, than if they hired multiple specialists.
For example, one problem that we see over again is that a full-stack developer hired to work on the front and back end of a project rarely splits time equally across both these types of tasks. Usually, the time split ends up closer to like 80-20, with the developer spending 80% of their time on either the front end or backend, and providing only ad-hoc support to the other side.
Here’s how to decide if you might do better with a specialist of a team of specialists:
How big is the project?
If your project requires a relatively small investment of time and resources, selecting a full stack specialist for all development efforts may be justified. Otherwise, a full-fledged team is recommended to manage scalability and the risk of your developer leaving you mid-project.
How complex is the project?
Complex projects require deep knowledge in various areas the development cycle, so hiring dedicated specialists for each skill is your best bet.
What’s the ratio of front end / back end tasks?
If your project requires 70% of time be spent on one over the other,hire a specialist. You can then teach them the other parts on the job, or hire a freelancer for the remaining 30% for that.
What stage is your business in?
Startups tend to love full-stack developers. That makes a lot of sense — if you’re trying for an MVP in two weeks, then a full stack professional will be perfect for your needs. But in almost every other case, it’s better for scalability and quality if you hire several specialized team members instead.
How specific is the problem?
Again, the more specific a problem is, the more likely you need a specialist to solve it. You wouldn’t expect a generalist doctor to perform neurosurgery. Similarly, you don’t want a full-stack developer to spend his or her time looking into a highly specific issue.
It’s entirely possible to hire a great full-stack developer and have a profitable and long-lasting relationship with them. But this possibility exists within a relatively narrow window. If you’re working with a startup and need to quickly produce a MVP, then it could be worth seeking out a talented full-stack employee. But in most other cases, you’ll be better served by hiring several specialists to save you time and money while offering top-tier expertise.