Better Programming

Advice for programmers.

Follow publication

Why systems thinking matters and Engineering Managers should care about it

Francisco Trindade
Better Programming
Published in
4 min readSep 8, 2022

I’ve been discussing how to apply Systems Thinking in engineering leadership, and as part of that, it is worth talking about what systems thinking is and why it is essential in software development.

Starting from the beginning

Systems Thinking is a broad knowledge area approaching problem-solving by understanding how all the pieces connect and influence each other. If you are new to it, there is probably no better place to start than here.

This theory is not new, and different industries have applied it for decades. A great example is the Toyota Production System (TPS), which redefined how to manufacture products, focusing on the cycle from purchase to raw materials.

It is old news in software as well. Any team using a work methodology considered ‘agile’, like Scrum or Kanban, is influenced by the same ideas. At least in theory.

In summary, it’s pretty much everywhere. There is always a system, whether it is visible or not. Every group performing a regular activity will work under certain rules. Some will be formal and defined as processes, and some will be informal as habits acquired through time. And that includes your team.

Are we all cogs in a machine?

Even if these concepts already influence our work, it is relevant to talk about them because Systems Thinking has a lousy reputation in technology. And that is stopping managers from being more effective.

Making the final changes to that Pull Request

The usual concern of looking through a system lens is that it will dehumanize work. If everything is a system, are we all just pieces doing the same daily task? Are we killing innovation by focusing too much on the process?

In reality, the opposite usually happens. Managers inadvertently create ineffective teams by not making systems and processes a first-class concern within a team, constraining everyone’s work. Whether we want it or not, most team members’ individual performance is defined by their systems.

“The fact is that the system that people work in and the interaction with people may account for 90 or 95 percent of performance.” (Deming)

It’s unfortunately still too common for managers and teams to focus on improving individuals and their behavior without looking at the context producing that result. And that is often a waste of time.

The underperformance example

An example that has unfortunately become too familiar in my career is an excellent way to illustrate this: How to approach individual underperformance.

In many instances when I started to manage teams, I have been warned about individuals underperforming. In some cases, they would already be in a performance management process, meaning that the situation had already impacted their careers.

The natural behavior would be to focus on the person having challenges. Provide feedback and ask for behavior change. But unfortunately, while these attitudes might lead to a positive bump in results, they usually don’t last long.

I found it more beneficial to ask myself and the individual another question: ‘How did they get here in the first place?’ How is their team working, and how are they working within the team? If the team’s objective is to produce high-quality software, what is their system to create software from beginning to end?

The answers I found were usually interesting. While it’s not always the case, something else was broken in most instances. For example, the team didn’t have a good working process, and less tenured individuals found it hard to understand what to do. Or the team didn’t collaborate well, leaving less confident engineers behind since they didn’t know how to learn.

The situations vary. The exciting part is that I could improve individual performance by improving the team around underperforming individuals. That’s because they weren’t the dysfunctional part, but the system was. And the added benefit is that these changes also helped the broader team. A win-win situation, as they say.

Managers, focus on the system

In summary, pay attention to the systems in your team. As a leader, you have a perspective on how the work works that individual contributors don’t. And you have the capacity to influence it to help everyone achieve better results.

Understanding the systems doesn’t mean you will be able to change them all or that you can’t adapt them to the individuals in your team. But it does mean you will know the best levers to pull, giving you the best chance of success.

If you have found this content interesting, this post is part of a Leading Software Teams with Systems Thinking series. More broadly, I write about leading effective software engineering teams. Follow me if you are interested in the area.

Francisco Trindade
Francisco Trindade

Written by Francisco Trindade

Born in Brazil. Living in NY. Engineering at Braze. Previously MealPal, Meetup, Yourgrocer.com.au (co-founder) and ThoughtWorks.

Write a response

It’s unfortunately still too common for managers and teams to focus on improving individuals and their behavior without looking at the context producing that result. And that is often a...

Managers or Team leaders have that challenging task.

If we don’t focus on the individual, the person will suffer but if we don’t focused on the system the whole team will suffer.

The balance is something hard to attain and likely not sustainable…

--

Managers inadvertently create ineffective teams by not making systems and processes a first-class concern within a team, constraining everyone’s work.

Love this, so true. Process is there to support & empower people, without it we have chaos. Things will get done, but it'll be painful.

--

I found it more beneficial to ask myself and the individual another question: ‘How did they get here in the first place?’

Although I believe asking ourselves this questions helps a lot, what is the balance between helping the individual to improve their performance and improving the system/environment? Just trying to understand when to focus on the individual more and ensure they are performing as expected while improving the system too.

--