unremarkable.dev

My Operating System

I've been trying to write this blog post for a really long time. But every time I've tried to write it, I sound a bit like I'm trying to become some kind of thought leader on LinkedIn. So please, I know it sounds like I'm gearing up to stand in a red circle and give a TEDx talk, but please bear with me a little bit.

I want to take a little bit of time and talk about personal values. Honestly, I never really thought about it as a "value system" until the last year or so, when I was reading through Sarah Drasner's Engineering Management for the Rest of Us. Before then, I wouldn't have even given it a second thought. It's really just about who I am.

I also want to be clear and say that this is my operating model. That doesn't mean that it has to be your operating model. I admittedly struggle a bit with thinking that my set of values is the best set, and that other values (like, let's say, "debate") don't always work when it comes to having a successful career. But I can equally hold the idea in my head that I'm actually wrong about that belief and that most sets of values are still good, even if I find them incompatible for me. No matter what, though, I think it's extremely worth your time to consider what your own values are. I'll talk about that a bit more at the end.

These values don't necessarily come in any particular order, for what it's worth. At any given time, I may lean on one more than the other two.

Accountability

Being accountable takes many forms, but I've found my most all-encompassing definition to be something like "honestly giving a shit about the things I'm responsible for."

I think there's an easy lie about accountability that makes it seem like being accountable is just making sure I'm doing the tasks that need to get done, but that's both not enough and I'm not even sure it's the most important thing. It's more about recognizing the broader picture those tasks fit into and understanding how my work affects other people and how their work affects me. I'm not accountable for just the pieces that I pick up; I'm accountable for the entire system.

The other part of accountability that's important to me is never having a mindset of "that's not my problem." When I see something that doesn't work, I take notice of it. If it's something in my power to fix, I try to fix it. If it's not, then I find someone to work with who can. And that doesn't just mean "tell another team they have a problem," it means actually thinking about what the problem is, why it's actually a problem, and how I'd try to address it if I could. Think about the best bug reports that you've seen—that's what I try to replicate.

It's worth saying that I still get this wrong all the time. Too frequently, I notice the forest and not the trees. I'm looking too closely at the ecosystem as a whole and I drop the tasks that I wanted to get done. I get randomized by the urgent requests and forget about the important ones—the things people need now and not the ones that will be more impactful in the long run.

Collaboration

When I first started writing software, I never really thought about how much of it was going to be talking to other people. I don't know what school was like for everyone else, but software development was very much a "solo" activity. I went into my dark cave, typed the incantations onto a brightly lit monitor, and then crossed my fingers before building and executing to make sure it did what I wanted.

That is not what software development is, at least not for anyone working on anything other than an indie app. I write code that other people need to review. I review other people's code. I write, read, and comment on system designs, proposals, and product requirements. There's Slack messages, pair programming, and bikeshedding over what linting rules the code should have. Software development is figuring out how to collaborate with other people.

The good news is: I like working with people! I enjoy the discussions, the messy process, and bonding with people over taming the chaos. I like reading someone's proposal, seeing that they came to a different conclusion than I would've, and understanding how they got there.

The most important part of collaboration for me is empathy. I want to understand the point of view of the people I'm working with and use that to understand them better. I may not always agree with the outcome, but I don't think we can begin to have a serious conversation about it until I understand how they got there in the first place.

Curiosity

I don't think I'd be anywhere close to who I am today without being extremely curious about basically everything. I have a habit of wanting to take everything apart. Fortunately, this is a lot easier to do with software than it is with hardware. My history with household appliances hasn't always led me down the best (or cheapest) paths.

I want to know how everything works. I want to decompile your app to see how you got that layout. I want to reverse engineer your API so I can scrape your site. I want to know exactly how that huge pothole on my street got there. Each of these things has an interesting history and puzzle associated with it, and an infinitely deep well of questions that can be asked to learn more.

Curiosity has always been such a powerful tool for me. There are so many things that I have to do that are, let's be honest, incredibly boring. But staying curious about even those things means that I can find some level of interest in them and stay engaged.

The Dark Side

Each of these values has its own set of tradeoffs that requires balance, and I try to make sure that I keep all of those things in mind.

On the extreme end of accountability, there's the looming possibility of burnout. The more I feel like I need to take on, the heavier the weight starts to feel. Never saying "That's not my problem" runs the risk of being taken advantage of by people. Collaboration starts to suffer when you bring in more people. Everyone wants to feel involved, but having too many people leads to drawn-out processes and outcomes shaped by committee rather than guided by sound judgment. Even curiosity has its pitfalls. Left unchecked, I can spend hours constantly rabbit-holing on a particular problem. Or if I'm interested in too many things, I may find myself constantly context switching between multiple tasks and not actually getting anything done in the process.

To counterbalance these problems, I try to take inventory of the things that I'm actively working on so that I don't take on more than I can handle. If I find myself dropping more than normal, that's a good time to check in to see if I'm doing too much. I make sure that the roles in the decision-making process are clear. I also try to time-box what I'm working on to make sure I don't spend too much time doing research—and I take notes on what I learned so I can share them and have searchable information in the future.

Combining Values

I've found that these values also tend to resonate with each other nicely. While each value on its own is strong, it starts to feel more like a system when they're viewed together.

Accountability and collaboration are, by my definition, the very makeup of what makes a team function. When you have a team, it's important that everyone works closely together and trusts each other to make the right decisions. A good team should be there to help you if something goes wrong. And they should also openly communicate with each other and work together to improve over time.

The combination of accountability and curiosity is what drives me to really own the space that I work in. I'm constantly motivated to explore new areas that my team owns that I don't understand yet, and then to explore outside the boundaries of my team to figure out how it all connects together. When someone on the team needs something, I've spent time understanding it. And when something goes wrong, I have a good idea of how to fix it.

And finally, collaboration and curiosity are what drive me to "learn in public." I'm excited to share the things that I've learned. It leads to better brainstorming with the team and the creation of new ideas that we create together. It also creates a deeper sense of empathy where I'm deeply invested in understanding the people I'm working with.

Your Own Values

This brings me to the end of my TEDx LinkedIn post. If you read this far, thank you for indulging me! I think it's worth your time to think about your personal values as well. If you aren't sure where to start, I'd recommend the chapter "The Value of Values" from Engineering Management for the Rest of Us. (It's worth reading, even if you don't intend to become a manager.)

Here is a sample of some words that can express values, though this is a condensed list. You may find other values lists that are more comprehensive. Perhaps you may notice a few in here that resonate with you:

Accountability, Advocacy, Autonomy, Compassion, Collaboration, Contribution, Creativity, Curiosity, Dependability, Diversity, Empathy, Ethics, Excellence, Fairness, Family, Friendships, Fun, Growth, Happiness, Health, Honesty, Humility, Humor, Inclusiveness, Independence, Knowledge, Performance, Personal Development, Spirituality, Perfection, Power, Preparedness, Reliability, Success, Teamwork, Traditionalism, Trustworthiness, Versatility, Vision, Warmth, Wealth.

Take a minute or two to examine this list. Which three words resonated with you most? For those values you noticed yourself aligning with, think about why you picked them.

If none of those feel quite right, look for a different list or just start listing words that you feel like might fit. Figure out what drives you and learn how to feed that to help you grow. It may take some time to figure out, but the result is worth it.