Patience in Software Engineering


Team-Driven Developer

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

When I bought my house a few years ago, I set up a small fire pit in my backyard. One of my favorite things to have friends and family over for a "fire night." I'll crank up the fire, set up the chairs, and people trickle in and out one by one.

Hosting these events (along with my love for camping) has helped me get good at building fires. I might not be ready to tackle Alone, but I’m a pretty decent fire builder.

And one key to building a great fire is patience.

You can’t build a fire by holding a small lighter or match to a huge log and expect it to be roaring a few minutes later. You also can’t rush an already burning fire and dump everything all at once, or you’ll smother it.

No, to build a good fire, you need to practice patience. You prepare your kindling and set up your wood before ever lighting a match or making a spark.

You’ll build a fire faster by being methodical and patient rather than hopelessly trying to light a log with flint and steel.

Sadly, the software industry has forgotten patience. We want to ship things too quickly, make large assumptions about our users and force paradigms that are poor at best and broken at worst. We are trying to light a log with a small lighter.

Here are some ways in which software engineers can practice patience in their craft (beyond being patient with one another, which is valuable in its own right).


Team-Building Exercise

Be honest: does your team sometimes get impatient in shipping work? I'm not talking about working hard and focusing on fixing an urgent issue. I'm talking about moments when the team is clumsy, hasty, or unwilling to collaborate.

This week's Team-Building Exercise is about reflecting and working to add more patience into your development lifecycle.

If you think your team needs to improve its patience, your work is cut out for you. It's a challenging task. There is a tool I think can help:

Create a rule that every comment or suggestion in a code review or a design proposal needs a response.

If you read the article, you'll notice that I said you don't need to do that all the time. And that is true. This isn't for the rest of the time, but just for a short time of maybe a month or two. It will naturally decline and go away once you stop enforcing it.

By requiring every comment, question, or suggestion to have a response, you'll force authors to slow down and not ignore them. You might not need a full sentence as a new comment in a thread; you can batch a few together and address it all at once. Even using emojis to signal the acceptance of an idea or praise for a suggestion can count.

You'll even find that reviewers and comments will be more thoughtful in their suggestions. If they know someone needs to respond (and they'll need to respond back!), they will also be more patient in their feedback.

Of course, there is a risk of a bad actor here. Someone could add a ridiculous number of comments and make it difficult for the other side. If this does happen, I'd imagine this person is already not getting along with the team, which will simply escalate an existing conflict. It might even force the conversation about how the team ideally works together (which is a plus in my book).


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 Build It Better Newsletter

Build It Better Newsletter

by Jonas Fleur-Aime

Creating great software is not just about completing new features faster, submitting more pull requests, or fixing bugs. Every Wednesday I publish tips and tactics to help you meet tough deadlines, tackle tech debt, handle scope creep, manage stakeholders, make sure you're building what customers actually want, and more. I'll draw on what I've learned after spending 15 yrs as a software developer, Engineering Manager, CTO, and startup advisor.

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 Software engineers are all about principles and patterns. Short acronyms like DRY, YAGNI, KIS, etc., are used everywhere within the industry to try and concisely communicate an axiom of how to write software. One principle that arises within software engineering is that of reusability. We have this idea that we can build software components once and reuse them everywhere. The idea is that by building...

Team-Driven Developer A newsletter with tips and tools for building software as a team A few years ago, my wife and I replaced all the windows in our home. When it came time to install it, I figured it would take the better part of a week (it’s about 22 windows). Instead, the company said, “Oh, it takes about two days.” I was skeptical but guessed they would send a larger crew or something than I had imagined. On installation day, two guys showed up. Two! How were two guys going to replace...

Team-Driven Developer A newsletter with tips and tools for building software as a team 👋 Welcome to the first issue of 2025! And a special welcome to all the new subscribers over the holiday! Let's jump right in. As I’ve encountered more and more problems as a software engineer, I’ve often found myself having one of two knee-jerk reactions when faced with a new problem: 1) too easy 2) impossible. Of course, those reactions are extremes. Most problems lie somewhere in the middle. Additionally,...