What do you mean, "Full stack developer"?

Recently there has been some discussion in the tech world about what being a Full stack developer means and whether it is even realistic to assume mastery of all the parts of the programming stack at a level which allows one to boast proficiency in every tech. Usually this concept is used when talking about web developers who can work with every stage and area of the development process: front and backend code, database, deployment etc.

While there certainly is a lot of depth in all of those areas, most of the web based solutions are architecturally very similar. There's a whole lot of use cases where the performance and availability requirements are not that high. Even for a service which ends up being heavily and widely used, there usually is an initial stage of prototyping and building the first versions which are good enough to start growing the business. There simply is no need in these cases to go beyond the default, tried and true configurations and architectural decisions that we have been doing for 20-30 years already.

In that time, especially after open source development really took off, the amount of available frameworks and libraries has grown in such a way there rarely is a need to develop that much code in a modern web system. You can basically glue a bunch of dependencies together and build a system quite easily.

Obviously there are some special characteristics to most of the projects, but an experienced team of full stack developers can either hone in on the needed skills as they go or an expert in that area can be recruited to handle the more difficult details. At the same time, the skills of the team grow.

The benefit of having a team of full stack developers is that everyone in the team has at least a basic understanding of all of the parts of the system. This makes it easier to build a system in which all of the parts are utilized to their potential and they are well integrated as a whole. It reduces risk and makes scheduling absences easier. At different phases of the project more work may be needed in front end or database, for example and in these cases it really helps resourcing to have a team of people with diverse skills.

Finally, let's not forget the fact that in most cases a deep understanding of the problem domain is more difficult to obtain than some extra skills in a tech you're not that familiar with. Even if you bring in an expert, they still need to familiarize themselves with the project and that takes time.

Agree. In our company we all call ourselves as full stack developers. We are all individually capable of creating full web service from scratch. Still of course we do not all master all areas - but together we do. Mastering and being able to develop is definitely different.

To view or add a comment, sign in

More articles by Matti Uusitalo

  • Katsaus SQL-tietokannan käyttämiseen Clojuresta käsin

    Taustaa Aloitellessani Java-koodarina innostuin heti Hibernatesta. Ei tarvitse kirjoittaa ollenkaan SQL:ää, vaan ORM…

    6 Comments
  • What is it about Clojure?

    So I've been working with Full stack Clojure projects in the last few months. This is the first time I've seen…

  • Peek in to generative testing with Clojure spec

    I wanted to try out Clojure spec so I dug out some of my old Project Euler code and added some definitions. I know the…

  • First shot with Python type hints

    As I mentioned, I'm late to the party but better late than never. Today I got a very interesting recommendation in my…

    1 Comment
  • Why we want short sprints

    Here's the deal. Everyone says one week is the ideal length for a sprint.

Others also viewed

Explore content categories