Writing Software and Gardening


Team-Driven Developer

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

I'm not much of a gardener, but my wife is all about it.

I've learned much from her (and Monty Don) about cultivating a successful garden over the years.

It's so much more than "make sure to water your plants."

It requires attention to the seasons, your sunlight, and your soil. It requires procuring the right plans for the garden you want, tending to weeds, and knowing when it's time to try something different.

All of these are similar to what we need to do in software to create a healthy software team and a healthy software system.

Today, I'm sharing how writing software is a lot like gardening and how a perspective of "tending to our software" often gets missed when we focus on just putting plants in the ground.


Team-Building Exercise

This week's focus is all about weeds. What weeds are in your code that you overlook over and over? Can you spot any weeds that will eventually strangle and choke out your "garden?"

You likely already have examples in your head of code you want to change. Code that every time you encounter, it makes things just a bit too hard. That is exactly the code we are talking about.

The question is this: can we prioritize any of these weeds in the coming weeks or iterations for our team?

A great way I've found to get items like this prioritized is to point to on-call time, incident counts, or upcoming product work that the team feels will be impacted positively by an investment in removing some of these weeds.


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.

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 Hi! This week's newsletter is a bit different. I've suddenly run into some unfortunate build problems 😭 for the website and will need to share this week's article inline vs. on a separate post. Hoping to resolve these issues and return to normal in a few weeks! Related: I'm taking a vacation, so I'll be skipping the second issue this month. I'll pick back up in April! The other week, I heard an interesting...

Team-Driven Developer A newsletter with tips and tools for building software as a team The first time I hit the proverbial "deploy button" as a software engineer, I was anything but calm. While we were confident in our tests, we always feared, "What if something goes wrong?" or "What if we missed a critical test case?" This first deployment went fine, but over the past decade, I've had my fair share of botched deployments or the need to rollback quickly. It's not a fun place to be in. During...

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