Several days ago, a colleague of mine gave an excellent talk about Full-Stack developers. There were several points he made that I thought were interesting:
- The definition of “Full-Stack” has evolved over the years
- Based on his definition, to maintain the skills necessary to be a Full-Stack developer is extremely difficult or impossible
- Given the maintenance difficulty, it is probably not worth the effort to do what is necessary to maintain/become a Full-Stack developer
For the most part, I agree with his assessment of the role Full-Stack developer. As with all ideas and concepts, there are counterpoints, different opinions, and other perspectives.
10 years ago, keeping up with the technologies required to successfully build a web application was a fairly easy task. The pace of change was something one could truly mange within a typical work week and acceptable work/life balance. Of course this is a personal preference but the frame of reference for my statement is a 40 hour work week. Fast forward to today. The pace of change is incredible. As an individual developer, keeping up with changes in the technologies that are a part of “the stack” are impossible. My colleague and I agree on this point. One cannot master all the technologies and still be productive. If you tried, you would spend all your time learning, never building, and a reasonable work/life balance (again personal definition) could not be achieved.
So is it worth the effort to maintain/become (or attempt to become) a Full-Stack developer? This is where my colleague and I disagree. It is my personal belief that striving to become or maintaining your role as a Full-Stack developer is definitely worth it. I don’t believe that one could master all the parts of today’s modern technology “stack” but I do believe you are much more valuable to an organization seeking solid contributors. As a hiring manager, I am never impressed by how “deep” your knowledge of a specific technology or part of “the stack”. The tools and technologies change constantly. What I’m looking for is your ability and enthusiasm to solve problems with the appropriate tools and technologies. Your ability to fearlessly and with an open mind explore the leading-edge of our profession is also more valuable in my opinion.
The Full-Stack developer may or may not exist today because it is 100% based on your definition. But it is my genuine belief when reviewing your career as a professional software developer, the broader your knowledge maximizes your value and minimizes your risk. Define what Full-Stack developer is to you, set your limits on work/life balance, and go capitalize on the incredible career of a software developer.