DEV Community


Discussion on: The full-stack dilemma

merri profile image
Vesa Piittinen

There is no way around it. If a team consists of only full stack developers who each can process any of the tasks on the product log the result won't be as good as you get with specialists. The tools used by fullstacks are likely to be constructed so that they don't even need to concern themselves with all the specialist issues.

I like to think a bit more out of the box and go beyond frontend vs. backend vs. fullstack, because I would argue in reality a good team needs a variety of personas.

You need a person who supports and listens others. You need a person who get others excited. You need a person who knows what looks good and how to create good looking things. You need a person with taste for small technical details. You need a person who likes the architectures and bigger pictures. You need a person who can make things feel good. You need a person who cares to know the business side of things. You need a person who cares about the customer viewpoint. You need persons who like to push out features. You need a person who likes to refactor and improve. You need a person who likes to write. You need a person who likes to talk. You need a person who likes the organization and stability achievable in the "backend". You need a person who likes the chaos and evolution of the "frontend".

These things mix and match very differently in people and finding someone who can handle it all is very rare, and some of these things do go a bit against each other and there is a limitation of time anyway if one single person wanted to put the effort and excel in being "the most perfect and complete developer persona ever". It is a false individualistic focused dream. The price of remaining great in a variety of skills is to keep using all of the skills. You want people dedicate their life to other things than only being the greatest programmer. Besides not all sorts of persona features are needed in every team.

While the listed person features above can't realistically be all obtained into a single person it makes sense to grow as much into each as possible, because it is valuable to at least have basics nailed as that helps a single person to know where their weaknesses and interests are.

From the perspective of creation of a great team placing people together with various backgrounds each with their different "core focus" is likely to give good results. Let people grow into roles, keep the option open to switch if needed so they can accelerate learning new stuff to avoid staleness, make sure everyone is happy with how they're doing.

Okay this became a slightly odd late night post but I let this be what it has become and just submit it now :)

mbarzeev profile image
Matti Bar-Zeev Author

I totally agree with pretty much everything you've written.
So if that is the case, and the software insustry knows that "full-stack" means compreomising over quality and mastery - does that mean that the software industry is knowingly giving up on quality and professionalism?