Trust on a Software Team


Team-Driven Developer

A newsletter with tips and tools for building software as a team

A quick note before diving in: I'll be skipping an issue for Thanksgiving 🦃 in the next few weeks and then skipping the last issue in December for Christmas 🌲.

Onto the issue!


Trust is a complicated topic.

Some might disagree with that. They might say trust is simple: you trust someone or don’t. Others might think trust is impossible to attain - it’s an ideal, not a real thing.

Regardless of what others might think, research has found that trust is vital to a team’s success. However, it can be hard to pinpoint what trust is. It's one of those “you’ll know it when you see it” situations. It requires intuition rather than computation.

This leads to confusion about what trust means on teams (especially on software engineering teams where computation is what we do). Trust isn’t thinking a teammate will never make a mistake. Instead, it’s the assumption of good intent and effort. Trust is about knowing that you are safe to do your best work within your team, that you can depend on one another, and everyone else feels the same way.

Let’s dig into this a little bit.

Note: I wrote this article several years ago, but it's been on my mind for the past few weeks (more why in the Team-Building Exercise). Hope you enjoy it!


Team-Building Exercise

As we discussed in the last issue, trust is vital to mitigating code review anxiety (among many others). Without trust, we are always wondering, "Am I safe?"

As mentioned in this week's article, creating trust is a complex task. You have to earn the trust of others.

What is the best way to gain it? In my experience, you have to be willing to give it first.

When we extend trust toward others through humble discourse, verbally affirming their decisions, and even deferring judgment calls to our teammates, we build the grounds for trust to grow.

Spend some time this week observing yourself and asking "Am I extending trust to others?" If you aren't, what ways could you begin extending trust toward your team?

One simple one that is helpful but often profound is simply affirming good ideas from others on your team. Instead of only nodding along, unmute and say, "That is a good idea. Let's try it." The simple act of positively affirming a decision or idea can build trust between the team.


Here are some more resources from me to help you build better teams!​

  • 📕 Code Review Champion - My book on code reviews will help you become a world-class code reviewer. From giving kind feedback to navigating conflict, this book can help anyone wanting to sharpen their code review skills.
  • ❓​Questions for Devs - Building a team takes more than catching up about your weekend at standup. I've used these questions to build relationships with my team and push past the same old surface-level conversations.
  • ​📋 Pull Request Template - Maximize your efforts in pull requests by giving context right at the beginning of a new pull request. Copy and paste this template into your repo, and voilà!
  • 📊 ​Code Review Metrics - Start measuring how your team tracks against a few common code review metrics. This python script will pull your GitHub pull requests and generate a CSV you can slice-n-dice to get the data you want. It also has graphs! As this is an open-source project, your contributions and feedback would be great!

Other Creators I Recommend

Image for Daniel Schaefer

Daniel Schaefer

Subscribe if you are a software developer that has the technical skills, but you're looking for opportunities to enhance your soft skills to advance in your career.

Image for NerdNotes | Learn. Build. Ship.

NerdNotes | Learn. Build. Ship.

By Chris Hufnagel

Join readers of Build Log gaining an edge on their own indie maker adventure. The wisdom, tips, and inspiration you need for your own product building journey.

113 Cherry St #92768, Seattle, WA 98104
Unsubscribe · Preferences

Dan Goslen | The Team-Driven Developer

Learn the tips and tools for building software as a team! Every other week, I send a long-form article, a team-building exercise, and resources to help you build better software teams so you can build better software.

Read more from Dan Goslen | The Team-Driven Developer

Team-Driven Developer A newsletter with tips and tools for building software as a team You’re staring at your editor. The code should work, but you’ve been fighting an error for a full day. You can’t figure out the problem no matter what you try. Or you’ve been staring at an empty file, wondering what code to write. You’ve got a vague Jira ticket, a lack of context, and a codebase that is difficult to understand. You’re blocked. Now, what do you do? It’s tempting—easy, even—to ping someone...

Team-Driven Developer A newsletter with tips and tools for building software as a team Imagine reading a technical design document or RFC. As you read, you notice that the language in the document is a bit confusing. For example: Requests likely need to be authorized using standard HTTP auth mechanisms What does this “requirement” mean? Are we using “standard” Authorization headers with base 64 encoded usernames and passwords? I don’t see a mention of HTTPS. And I also don’t know what...

Team-Driven Developer A newsletter with tips and tools for building software as a team A complex system is not the same as a system that delivers advanced functionality. Complexity within software refers to the characteristics of a software system and its ability to change over time. Functionality refers to the capabilities a software system exposes. In my experience, we often overlook this distinction more than we realize. I’ve seen engineers brag about how complex their system was as...