Wednesday 23 July 2014

The Full Stack Developer

Back in 2010 Carlos Bueno wrote a blog post on The Full Stack Developer and since then there have been various posts that comment on it such as this post and this post which made the full stack developer seem an impossibility.

I’m not sure I buy into this idea of a Full Stack Developer as somebody who can for example throw together a web site using the latest framework/library, work at the TCP protocol level and understand i/o bottlenecks in a database system with any degree of mastery.

Whilst there are some extraordinary individuals out there that can manage this I doubt the majority of developers today can do so.

We as developers have, out of necessity, become specialists in specific areas of computing.

The rate of change, number of languages/tools/frameworks/libraries and depth of understanding required means that in general people simply don’t have the time to be able to keep up with all the changes to all the various areas of computing.

For me a full stack developer is most likely somebody who is able to work with the stack that makes up an application, so in the Microsoft world for a web application that may be angular SPA coupled with Asp.Net <whatever> and Sql Server (not just through EF).

A developer that has a good understanding of the stack they are working with means that they can understand trade offs that may be being made in the different areas of the stack, or if you need to tune for performance where they can actually make the most difference.

So back to the original posts I mentioned, is the “Full Stack Developer” they describe better than other developers? Most people seem to think the answer is an unequivocal yes, I on the other hand am not so sure.

As I mentioned before the rate of change in our industry is so high that, as pointed out in this post I recently read, as the lifecycle of the app/product/service moves on you need specialists whose knowledge is specific to a single area.

In general I sincerely believe that as a developer you should take the time to learn the stack that you work with but for the majority of developers understanding, for example, the difference between main memory i/o and disk based i/o won’t help them in day to day work. If you find that you do need that information the internet has all the resources you need to learn about it at the time you actually need it.

I humbly suggest that if in your day to day work you are worried about relative i/o speeds between cache and main memory or if request rate and size are also a consideration you might just be working in a specialised area at which point are you still a “Full Stack Developer” or are you now a specialist?

No comments:

Post a Comment