Build effective software product teams

Team: NOT just a group of people working together.

The software industry has changed a lot in the last years, well… actually, it changed a lot since it started, and it may change a little more until it reaches a proper level of maturity. We (as industry) have problems understanding these fast paced changes, so it becomes a real challenge to react properly to it.

The most important thing about software development is the communication between humans, between the members of a team primarily and secondly with customers. The later we cannot control how it is done and organized, but the internal team we do. Even coding is a way of communicating first with other developers and secondly with a computer. We have to take care of the language used in the code too, but this is a story for another time.

Having a good team, performing well is crucial to have a good performant business. It is the only way to effectively achieve business goals. In this fast paced industry in which we are, we need the contribution of each one of the team members. It doesn’t work having one or two minds managing all the people and commanding what to do.

When talking about software product teams, the old fashioned industrial era management style does not work anymore. Managers should manage the product, not the people. Here are some properties of poorly managed teams:

  • Centralized and military top-down structures
  • Planning and coordination done only by management
  • Strict work policies
  • One skill job positions
  • Department boundaries defined by functionality
  • Rewards based on individual performance
  • Employees viewed as tools
  • Employees accept the factory workers role

Good performance teams need motivated and empowered people, working in a cohesive way. We want people that understand what to do and act proactively, and the only way to do it is having everybody on the same page. Here we have properties of good performing teams:

1 — Small teams

It is a real challenge to keep all these communications alive. Everybody heard about the two pizza team sizes of amazon, that you should be able to feed your team with two pizzas (american pizzas I guess they are talking here :P). But the thing is, we are talking around 12 people maximum here. The second part, often omitted, is that everybody in the team should have a pass through to their customers. Which leads to our second point:

2 — Business oriented

If the communication flows, development and business interact with each other, and developers can make sure that they are delivering what the business needs. They should ask many questions, negotiate the tasks, propose different possible solutions and pick the best, … act like professionals, not factory workers just accepting orders. If this never happens, the business is never going to be able to take advantage of the technological capabilities.

3 — Technology led

In the same way, we have to bring an atmosphere of continuous learning to the team. Being engaged with different technology communities is also something to take into account.

4 — Autonomous

Extra: Trust

Trust is often overlooked by many companies, but is crucial to make teams work. In a team we need to provide a healthy psychological safety where members can work freely to create these inventive ideas. Last, but not least, getting rid of toxic people is way more beneficial than trying to get the right people, or the best people, whatever it means being the best. A single toxic team member can lead to the destruction of any kind of cooperation.

Just like any sport played in teams, every member has a different role(s) and has different responsibilities(s), but in order to win, they have to work together, in a cooperative way, have cohesion, be aware of the movements of each team member and act of a single unit. This is the spirit, values and attitude you need for any team. We win or we lose together, as a team. The word team goes far beyond just a group of people working together.

Software engineer as a profession, frustrated musician as a hobby, casual sportsman and social drinker in my free time. My personal blog:

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store