33

What is your opinion about full-stack teams? I'm referring to teams where the desire is for every member to competently contribute at every point in the stack.

  • Do they work?
  • What has been your experience?
  • Does team size and/or experience level inform your opinion?
  • Do you notice an increase/decrease in quality?
  • Do you notice an increase/decrease in team and product cohesion?
you are viewing a single comment's thread
view the rest of the comments
[-] freagle@lemmygrad.ml -1 points 1 year ago

Think about the alternatives - either you divide the stack into separate teams or you have non-overlapping experts in the same team. Both are horribly worse.

With the multi-team architecture, no one can deliver anything on their own. They all have to hand off their work to someone else and receive handoffs from someone else. Rework becomes huge as downstream teams with expertise not present upstream identify flaws and send work product back for revision.

With non-overlapping experts, you have a team of N with N bus factors of 1. No one can get sick or take vacation. If someone quits, dies, or wins the lottery, the whole team shuts down while they try to find a replacement. You can fix this by hiring 2 or even 3 experts per area. So now your team is full of redundant experts that fight for expert recognition. The handoff problem remains but is somewhat lessened.

A full-stack team is not a team of pure generalists. A full stack team is a cross-functional team that owns the entire value stream (design to production) and cross-trains internally. Hiring people with specialized knowledge is predicated on their willingness to learn all other areas and teach their area. Only T-shaped professionals (depth in one area, breadth across the stack) inhabit the team and only people with the humility to learn need apply.

Over time, a full stack team outperforms every other team. The team is internally redundant on all tech, so bus factors are lowest when new people are added and bus factors continuously get larger over time as people cross-train. New hires have built in training because the team is always training. New tech can be added regularly because everyone is always training and learning.

Full stack teams are the best form of software team hands down.

[-] tinker_james@programming.dev 2 points 1 year ago

Have you witnessed/experienced this in action?

[-] marcos@lemmy.world 2 points 1 year ago* (last edited 1 year ago)

You mean people taking ages to release because the work is divided between multiple teams and each one is creating a slightly different feature?

Yes, I have seen that.

Or if you mean a team of generalists with an specialist here and there not suffering from this problem?

I have seen that too.

I have also seen people solve the specialization problem by making their own layer more general than it would technically need to be, and become about as productive as a full stack team. The interesting part is that I have only seen that done by generalists, so I really doubt a set of specialists-only teams can be really productive.

[-] tinker_james@programming.dev 1 points 1 year ago* (last edited 1 year ago)

In your experience, is success dependent on each member (or most members) being T shaped?

[-] marcos@lemmy.world 2 points 1 year ago

It's dependent on many members being T shaped. Not all, and I don't know if "most". But you need enough to handle the basic flow of the system and interact with all of the specialists.

load more comments (3 replies)
load more comments (3 replies)
this post was submitted on 19 Aug 2023
33 points (94.6% liked)

Experienced Devs

3956 readers
1 users here now

A community for discussion amongst professional software developers.

Posts should be relevant to those well into their careers.

For those looking to break into the industry, are hustling for their first job, or have just started their career and are looking for advice, check out:

founded 1 year ago
MODERATORS