Right'in Code™

It's all about Right'in Code

The Value of a Full-Stack Developer

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.

We agree that the definition of the role of Full-Stack developer has evolved over the years.  Early in my career, “the stack” consisted of very few parts.  If you knew HTML, JavaScript, CSS, a server-side language (PHP/VB.NET/C#), and SQL and could put it all together to build a web application, you would be considered a Full-Stack developer.  Today, using what is considered a modern approach to building a web application, you would add to the previous list of technologies several client-side JavaScript libraries, additional tools to manage those libraries and other assets (version management/minification/bundling/etc.), new data transport and security tools/techniques, and custom back-end API’s to respond to client-side requests.  If are planning to support mobile, you just added even more complexity to the stack.  This evolution has increased the complexity of successfully delivering a web application by many orders of magnitude.

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.

 

-Richard

@rightincode