this post was submitted on 10 Jun 2023
17 points (90.5% liked)

Experienced Devs

3954 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
 

I think this is a struggle for many of us. Not only to re-organise existing teams but also positioning teams in a larger organisation. What team composition works for your cases? What roles are filled within a software development team, and what roles run across teams? What kind of teams are there?

I've applied teamtopologies and unfix to help communicate about our team structures, but I'm curious about what problems people encounter and what solutions you've discovered.

Some challenges I've been facing:

  • Finding or training security officers
  • Organising IT operators
  • Dealing with access control and compliance
  • 24-7 Coverage
  • Keeping Data Scientists productive
  • Avoiding superheroes
  • front-end and back-end teams
  • dedicated testers
  • The role of QA and Product

I'm curious to see a discussion :)

you are viewing a single comment's thread
view the rest of the comments
[–] valence_engineer 3 points 1 year ago* (last edited 1 year ago) (2 children)

I feel trying to structure everything "perfectly" is just micro-management and is never going to be close to "perfect" for the usual reasons top-down everything never is. My general thoughts are:

  • Employees should feel they are achieving autonomy, mastery and purpose. They'll work out all the details themselves if they're motivated and empowered to do so.
  • To that effect teams should be able to do their end-to-end work without being blocked by/dependent on other teams 80% of the time. Not for 80% of each piece of work but 80% of pieces of work they put into production.
  • The vision of the company/department and what rough path is being taken towards that vision (metrics, projects, goals, etc.) should be crystal clear to everyone.
  • Incentives (promotions, yearly reviews, bonuses, etc.) at a corporate level should correlate with driving forward business value versus bureaucratic box checking.
[–] nibblebit 2 points 1 year ago (1 children)

The price of perfection is infinite. It's not about structuring everything, and it doesn't have to be top-down. But, at some point, a team grows to more than ten people, and it's not enough to self-structure. At some point, you must agree on who is responsible for what instead of everyone being accountable for everything.

I agree with you on all points as to desired outcomes. I think it is particularly interesting that you emphasize how important vision is. I have found it difficult enough to have a medium-sized organization even come up with a vision, let alone effectively communicate long-term, medium and short-term plans to engineering teams. Aligning projects with goals and setting milestones is a great way to communicate a vision. I've found it tricky to use metrics to track progress or performance. Do you have any ideas about how to use metrics to help align with a vision?

[–] valence_engineer 1 points 1 year ago

For context, my answers are in regards to growing companies versus those past that stage that now get more value from focusing on pure optimizations. I've found that approaches which work for the latter actually hurts growing companies and vice versa.

At some point, you must agree on who is responsible for what instead of everyone being accountable for everything.

In my experience splitting into teams of 6-8 people and then assigning focus areas to teams works fairly well. Assuming you split in a way where teams are not blocking each other the vast majority of the time.

Do you have any ideas about how to use metrics to help align with a vision?

I was thinking more of business metrics which may or may not tie into vision. What metrics does the business care about (customers, revenue per customer, customer sentiment, fraud reports, etc.) and why do you think each team helps those metrics? A team may be supporting other teams but otherwise they should be pushing forward some business metric you care about and are measuring. If you're not measuring it then how do you know the business is actually doing better or worse in an area (or that a team is helping)?