Full Stack Developer. Is it a myth?
This is an odd topic for me to comment on. I see more and more job postings for "Full Stack Developers". A while back I read an article by some people I respect who claimed that they don't really exist. And their arguments, I found were flawed yet entirely valid.
How is it possible for the claims to be both flawed and valid?
Well, the claims were basically that MANY devs may have experience developing against the whole stack, but that they are unlikely to be experts in more than a few key areas. And even then, only within the scope of a few different languages or frameworks. This, I agree with.
And while I still think that describes in fair enough terms a person who is a "full stack developer" the truth is, that doesn't mean that this person will be a good fit for the job demanding the same thing.
Realistically, most companies of any size doing any project worth doing will at least have a small team of developers. As a result, they will naturally have differing needs in different areas. If you're a full stack developer but your strength lies in UI and you get hired into a team hiring a full stack developer but who already has a team of strong front end developers you may not be able to deliver, on timelines expected of you, the back end work that they really require.
So, I believe full stack developers are a thing. But at the same time, I don't believe anyone trying to hire a full stack develop actually wants or needs one. By being overly vague they are going to end up fielding applications from a much larger group of skill sets making hiring the right person even harder.
I have personally coded entire applications from scratch. Multiple times. Some for myself, and some for friends and family. Those friends and family are still running software I wrote 5-10 years ago to run their businesses. This is not, perhaps, enterprise grade software. But, it is in every sense of the word real, full, rich applications. I handled everything from Database design to back to UI to maintenance and upgrades. I am by no means an expert in all of those areas. And there are areas where I can offer a lot but I know I have no motivation.
And this is the other side of the problem. If I see an add for "full stack developer"... I don't even open it up. Firstly, choosing that as the position you're hiring for tells me you're inept. It tells me you don't know what you need. It also tells me that even if the job description offers more details that I'll need to dig in and find them and hope, in the end that those expectations are both well enough defined and accurate.
You might say "well, we want someone experienced in everything. They don't need to be pros at everything. We'd be fine with them catching up as they go." Except... the reality is simple... I've never met an experienced software developer who couldn't pick up a new area as they go. Literally, the only reason to demand particular skill sets is to ensure that they hit the ground running as quickly as possible. And, as I said, there are going to be natural holes or weak spots in the current dev team. It makes a lot more sense to tailor the requirement of the job to those weaknesses. Even if you expect this person to branch out into other areas later, by hiring for what you need know you can close the gaps while they learn in the areas where they are less needed or where are other skilled devs to pick up the slack.
Furthermore... the only reason to hire a "full stack developer" into a team is if you have a team filled with such developers. And, as others say... they aren't going to be the master of all domains. You've crippled yourself by spreading your talent too thinly. The reality is, the strongest development teams are those where there different areas have an expert as well as others who work in that area who defer to them. Everyone may touch every area, but everyone is expected to work primarily in the area they are strongest.
If you're hiring me into a team with a strong DB expert and a strong back end developer but you have no front end developer, then post a job for a front end developer and let me know either during the interview or (better yet) in the job posting that you expect me to work with and learn the back end and DB as well, but that it won't be my primary responsibility.
Then, I can focus my resume (and you can focus the interview) on my front end skills so you have a better idea before I even walk in for the interview if I'm going to be able to meet your needs. That doesn't mean that you can't ask questions about my experience in the rest of the stack. But it should be auxiliary information and only used to differentiate between two candidates with similar front end skills.
How is it possible for the claims to be both flawed and valid?
Well, the claims were basically that MANY devs may have experience developing against the whole stack, but that they are unlikely to be experts in more than a few key areas. And even then, only within the scope of a few different languages or frameworks. This, I agree with.
And while I still think that describes in fair enough terms a person who is a "full stack developer" the truth is, that doesn't mean that this person will be a good fit for the job demanding the same thing.
Realistically, most companies of any size doing any project worth doing will at least have a small team of developers. As a result, they will naturally have differing needs in different areas. If you're a full stack developer but your strength lies in UI and you get hired into a team hiring a full stack developer but who already has a team of strong front end developers you may not be able to deliver, on timelines expected of you, the back end work that they really require.
So, I believe full stack developers are a thing. But at the same time, I don't believe anyone trying to hire a full stack develop actually wants or needs one. By being overly vague they are going to end up fielding applications from a much larger group of skill sets making hiring the right person even harder.
I have personally coded entire applications from scratch. Multiple times. Some for myself, and some for friends and family. Those friends and family are still running software I wrote 5-10 years ago to run their businesses. This is not, perhaps, enterprise grade software. But, it is in every sense of the word real, full, rich applications. I handled everything from Database design to back to UI to maintenance and upgrades. I am by no means an expert in all of those areas. And there are areas where I can offer a lot but I know I have no motivation.
And this is the other side of the problem. If I see an add for "full stack developer"... I don't even open it up. Firstly, choosing that as the position you're hiring for tells me you're inept. It tells me you don't know what you need. It also tells me that even if the job description offers more details that I'll need to dig in and find them and hope, in the end that those expectations are both well enough defined and accurate.
You might say "well, we want someone experienced in everything. They don't need to be pros at everything. We'd be fine with them catching up as they go." Except... the reality is simple... I've never met an experienced software developer who couldn't pick up a new area as they go. Literally, the only reason to demand particular skill sets is to ensure that they hit the ground running as quickly as possible. And, as I said, there are going to be natural holes or weak spots in the current dev team. It makes a lot more sense to tailor the requirement of the job to those weaknesses. Even if you expect this person to branch out into other areas later, by hiring for what you need know you can close the gaps while they learn in the areas where they are less needed or where are other skilled devs to pick up the slack.
Furthermore... the only reason to hire a "full stack developer" into a team is if you have a team filled with such developers. And, as others say... they aren't going to be the master of all domains. You've crippled yourself by spreading your talent too thinly. The reality is, the strongest development teams are those where there different areas have an expert as well as others who work in that area who defer to them. Everyone may touch every area, but everyone is expected to work primarily in the area they are strongest.
If you're hiring me into a team with a strong DB expert and a strong back end developer but you have no front end developer, then post a job for a front end developer and let me know either during the interview or (better yet) in the job posting that you expect me to work with and learn the back end and DB as well, but that it won't be my primary responsibility.
Then, I can focus my resume (and you can focus the interview) on my front end skills so you have a better idea before I even walk in for the interview if I'm going to be able to meet your needs. That doesn't mean that you can't ask questions about my experience in the rest of the stack. But it should be auxiliary information and only used to differentiate between two candidates with similar front end skills.
Comments
Post a Comment