Funny you should ask – I’m known for having a strong distaste for the “full-stack developer” moniker, and I’ve started many a friendly debate on the subject.
I was recently asked a series of questions and decided to create blog posts from the answers.
Everything herein came straight from this horse’s mouth. I didn’t once flex my Google-fu or Bing-kwondo except to determine the best way to spell Bing-kwondo. My goal was to respond to the proposed questions solely with the knowledge I’ve gained from experience over the years. When reading my response, please remember – with passion comes opinion. I value your opinion, even if it is different from mine, as difference breeds understanding and growth.
I put “full-stack developer” on my resume partially because I do believe I fit someone’s definition of the term, but mostly because I’m afraid “ludicrous-stack developer” won’t appear in search results.
It’s marketing fluff, at best.
If you put a gun to my head, I’ll concede some validity to the title. Developers needed a succinct way to characterize the breadth of their capabilities, and “full-stack” became the hammer.
The problem, of course, is that there is no concrete definition.
I’d describe a full-stack developer as one with the proven ability to fully execute a project from start to finish, specifically including the following tasks (<assessment>/<excitement level> on a 1-10 scale based on the types of projects I’ve worked on in the past):
- Brainstorming (9/10)
- Requirements gathering (8/10)
- Architecture (8/10)
- Dev Ops (also up for discussion) (8/10)
- Database design (7/9)
- Graphic design (7/5)
- UX (8/9)
- UI (7/7)
- Maintenance/support (8/2)
- Infrastructure (9/10)
- QA (10/6)
- The ability to lead a team in the process (8/9)
- Front end coding (8/9)
- Back-end coding (9/9)
- Sales? (1/1)
So why is that my definition of “full-stack”? Because I consider myself to be a software developer, and I’ve performed all of those roles.
I realize that’s a massive skill set, going far beyond what might traditionally be considered a software developer. Most days are spent wearing just one or two hats, but the spirit of “full-stack” is in having the experience of wearing them all.