If You’re Not the Default Developer, Someone Else Is
By Lars Klevan
Who’s the developer on your team who handles… the random stuff? Keeps track of the library upgrades? Helps customer service troubleshoot a tricky issue? Lends a hand with a development environment problem?
If this isn’t you, then there’s probably a developer on your team who is. If you were to ask how they’re doing, you might be surprised to find them frazzled, overwhelmed, and maybe a bit under-appreciated.
Two weeks ago, I joined a new team, and it wasn’t obvious to me at first who was taking care of these day-to-day issues. I was on a team call when, to my surprise, one of the developers said “Customer service sends me private messages all the time, and it’s taking up a lot of my energy.”
This reaction made me think about one of my favorite posts, “The Default Parent,” and how easy it is for this workload to pile onto one person.
The premise of “The Default Parent” is that one parent is the go-to for… the random stuff. I’ve found myself thinking about that post many times over the years when my partner ends up doing more of the work for the kids, despite my good intentions.
Reflecting on that post has helped me be more sympathetic and more aware of how easy it is to fall into that trap. And I think there are some insights from that article that can help our teams understand and support the Default Developer better.
There are three themes from “The Default Parent” that I think we should reflect on in the context of the engineering team: interruptions, information overload, and worry.
Interruptions
In “The Default Parent,” the author @mblazoned describes the interruptions (accurately, in my experience) as, “Mum, mum, mum, mommy, mom, mom, mama, mommy, mom. All. Day. Long.” Unfortunately, kids don’t know how to distribute workloads round-robin or least-recently-used, so they do what comes naturally: go back to the person who helped them the last time.
Our coworkers are hopefully more considerate and appreciative than children, but they can have the same effect on the Default Developer. Those interruptions might start with an innocent, “Do you know?” or “Could you check?” But it doesn’t take so many of these questions before the whole day is shot and the Default Developer finds themselves wondering, “Why didn’t I accomplish my goals for today?”
Like kids, our coworkers want their answers now, and they know where to go to make that happen.
Information Overload
@mblazoned describes information overload like this: “I was once in California for work and got a call asking me where George's sneakers were. And here's the worst part... I knew.”
Developers who work on a team for a while start to be the source of truth for how the system works. Software systems are complicated, and it takes time and dedication to reason about the interplay between code and data and configuration. That’s really valuable knowledge and it’s not surprising that others start to depend on them like a manual for the system.
Not only does the Default Developer know how to read the code, but they also know why it was done that way. They know which customer made that specific request three years ago. They know why that weird boolean check is there. They know which emails go out to the end users on week four, and why people in Europe don’t get them.
Being the expert on all of those skeletons in the closet can be time consuming and overwhelming.
Worry
On the subject of worry, @mblazoned says, “Even when [Default Parents] do get a weekend away, they leave a detailed spreadsheet of daily activities organized by event time with notes. They arrange carpools and playdates, and leave a wrapped present for the birthday party. The non-default parent? They just leave.”
What does the Default Developer have to worry about? Maybe it’s the cadence of library upgrades and why the project is pinned to node 10.2 until bug 73713 is fixed. Maybe it’s that the database connection limit that was surpassed during a rolling restart last week and could tip over if the worker process is scaled up during a release. Maybe it’s the documentation about how to provision new appservers that’s a little out of date.
The point is, they feel like things would fall apart if they weren’t there, and honestly, they’re not wrong.
At this point, it’s tempting to transition into brainstorming solutions for all of these problems. We could have a rotation. We could encourage questions in a public forum. We could improve our documentation.
But I actually want to hit pause and offer you a different suggestion.
What I’d really like you to do is to reflect on what it might feel like to be the Default Developer on your own team. It is human nature to go to a smart, helpful, and hard-working person when you need help getting unstuck, and I don’t think that we can stop that. But spending a few extra minutes to thank them and acknowledge their contribution to the team could go a long way.
Let’s wrap it up with the amazing words of @mblazoned: “The only dream left for the Default Parent is to contract a highly contagious, non-life threatening virus.”
Does someone on your team feel that way? Hint: if you’re not sure you should find out!
About the Author
Lars joined BetterUp in 2016 as a Staff Full-Stack Engineer. He lives in Minneapolis with his spouse and two elementary-age daughters. When he’s not out walking around the lakes he can be found playing tabletop games or eating nachos.