Being Blameless Toward Yourself


Team-Driven Developer

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

I returned to work last week from a short vacation.

When I logged back in, I quickly saw there had been some problems while I was away. Some code that processes authentication requests was running extremely slow.

As I read through the thread, I realized this was code I had worked on😳

And for the rest of the week, even though my team had solved the problem quickly and prevented an outage, I kept apologizing over and over. I was casting blame on myself.

This week's article dives into the differences between taking responsibility vs. blaming ourselves for errors (big and small).


Team-Building Exercise

This week's Team-Building Exercise is about helping your team avoid the trap of self-blame. Look for ways to encourage someone out of a "blame spiral" where, like me, they apologize profusely and ignore the progress or learnings that came from the error.

Navigating the different emotions and factors that come into play when recognizing a failure can be difficult. You can't just say, "Don't worry about it." You have to acknowledge the failure and address it while moving beyond it.

One way I've found to help redirect attention away from the person and toward the learning is to reframe things in light of the team and not one person.

When they say, "I broke XYZ," I remind them that the code went through a code review and, therefore, other engineers missed the same bug during the review.

I remind them that our code has automated tests that didn't catch the bug either.

I remind them that we tend to prefer shipping quickly in some cases rather than having perfect code, and there is accepted risk when we do.

Then, we have to keep the focus on learning. What can we improve to avoid this bug (and ones like it) in the future? What tests do we need to write? What could we have done differently?

In either case, creating a culture of encouragement and a focus on continual improvement is the basis for creating a safe and blameless culture.

Find a teammate to encourage in either a failure or a job well done this week.


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 Building Custom SaaS Web Apps

Building Custom SaaS Web Apps

by Thomas McGee

I’m a web developer by trade, but I’m a creator at heart. As such, I constantly find myself making, designing, and coding new things to make life easier for creators of all kinds. Whether it be Radarist for managing your projects and tasks or Startboard for easily organizing your web bookmarks—I’m here to make it easier for anyone to earn online.

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.

600 1st Ave, Ste 330 PMB 92768, Seattle, WA 98104-2246
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 We've recently started a group at Webflow to enhance our existing code review process.And it made me think of an older article I wrote all about the point of pull requests. In a nutshell, pull requests aren't the same as a code review, but they are a common channel to help code reviews run smoothly. I rewrote and added some parts of the article based on the discussions we were having as a group, and wanted...

Team-Driven Developer A newsletter with tips and tools for building software as a team If you’ve ever joined a new team, tackled a legacy codebase, or stepped into an unfamiliar domain, the feeling can be overwhelming. There’s too much to know—and not enough time to learn it all. That’s why I use a model I call traversing the knowledge graph. It helps me orient quickly, pull in the most relevant context, and start contributing with confidence. In this post, I’ll describe: How I think and...

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...