A Few Words On Architecting Technical Solutions

I was having a conversation with some other engineers about architecting technical solutions. As is my habit, I ended up talking about some of my personal philosophy.

To me, success is about finding the space between what’s possible and what’s good. And there’s not one objective answer, the right thing is defined by the goals and constraints of the parties involved.

By success I mean that, as an engineer, I want to build a system that everyone is happy with. Everyone being the team, the business and our users. That’s hard to accomplish of course. If it was easy, everybody would be doing it.

The challenge with designing a system for a for-profit business is not just imagining something that seems conceptually possible. It’s about trying to anticipate the cost of building the thing, where cost is ultimately measured in person-hours and calendar time. In my experience in building software, all of the other factors in cost are dwarfed by a couple of things. Is the tech you choose battle-tested, and does the team who is going to build it have enough expertise in that tech.

The 3 Challenges of Influencing Your Team

Recently I had a conversation with a good friend of mine. Rachael Stedman is a great engineer and manager, and we often talk about how to help each other improve. With permission from her, I’m reposting this with very little editing.

rachael: Does this mean you’re still happy as an ic? What kinds of things are you doing / owning as a ic?

polotek: I'm happy with the work I'm doing. There are definitely some frustrations. Most of those I chalk up to a gap in leadership. So I'm working on what it takes to gain that influence as an IC.

rachael: As a manager I’m realizing how meaningful it is to have strong IC leaders to partner with  

polotek: Right now I'm helping to upgrade our frontend. Which also entails making a lot of decisions about standard patterns. And hopefully I can spend time really helping the team level up.  

rachael: That sounds great - how are finding making those kinds of standard decisions - is it hard to get buy in?

polotek: Oh yeah. There's no process. And no real venue for getting the right people to engage with the details. I think we've talked about this before. There are a few stages to trying to get things done. Engagement, decision-making, and adoption of decisions. Each one is difficult.

rachael: Lol I think the most I know about getting alignment I learned from you. And repeating yourself

polotek: The reality is if you really want to push something forward, you have to go around to all the key stakeholders and get them to make time individually.

rachael: Yeah, my new pet peeve is when people use “disagree and commit” to push things through without actually getting alignment. I like the breakdown: engagement, decision-making, adoption. Interesting word choice: engagement. Engage each stakeholder? Engage with criteria? Engage with... data? Other things?

polotek: Yeah. It's probably over-used. But it comes from a place of accepting that people aren't always paying attention to you. You won't get what you need out of them until you get them to actually pay attention.

A lot of times I see people put something out there, in a document or a slack message or whatever, and they're confused about why it didn't result in any feedback or activity. The reality is that unless you help people understand why it's important, they may filter it out of their attention and expect someone else to deal with it. Because we're all busy, we're all constantly doing that filtering. So you can't just put something out there, you have to get people to engage with the conversation you're trying to have. Engagement.

rachael: Oooh well said

My Approach to 1-on-1s

This is an outline of how I approach having 1-on-1s with my direct reports. I think of 1-on-1s as my primary tools for connecting with an individual and working on their morale, engagement, productivity and growth.

I usually like to find out if my report wants to lead the conversation. You might start with a simple question. Do you have an agenda or something that's on your mind? If not, then I think about which one of the major points below I want to get into.

These are the high level areas I like to hit, and I've listed some relevant questions/prompts with each one. This isn't meant to be comprehensive, and it's not meant to be a script. I like my 1 on 1s to be more organic and I'll jump around these topics depending on how the conversation goes.

How are you doing? (every 1-on-1)

  1. How's your project going?
  2. Are you struggling with anything?
  3. Can I help you knock down any barriers?
  4. Are there places I can step in and help facilitate communication with others?

I've got some feedback for you. (Positive or negative. As often as needed)

  1. I've observed these things you've been doing
  2. I've gotten this input from people you've worked with
  3. This is how you did on recent projects
  4. Let's talk about this scenario where you did good/needed improvement

Let's talk about what's happening around the org. (At least once a month. Definitely when significant changes have happened.)

  1. Can I address any recent changes that you're curious or concerned about?
  2. Can I address any rumors or things that worry you?
  3. Let me tell you what the leadership team has been talking about that may affect you.
  4. Let's talk about the wider org direction and make sure you're connected to what our business goals are.

Let's talk about your career path. (Once a quarter at least. You can do this in smaller more frequent iterations too)

  1. Let's set some goals for the next few months
  2. Let's check in on the goals we set for you
  3. How can I create opportunities for your growth?
  4. Let's talk specifics on what's going to get you to the next level
  5. Let's talk more long term. Where do you wanna be in a few years?

Let me tell you my thoughts on the direction of the team. (How often you do this depends a lot on your team and how your company operates)

  1. Here's what I think the priorities are for our team right now.
  2. Here's where I think we're doing well and where we have challenges.
  3. I'd like to get your opinions on these things and talk about where I think you can help move things forward.

Keep in mind that there is an implicit number zero here which is connecting on a personal level. Ideally I'm always building rapport and trust throughout 1-on-1s and in other scenarios. I find time to talk about family, recent events, hobbies, future plans, etc. I'll sometimes even let this conversation take up significant time in the 1-on-1. I don't like to make people feel rushed or that there's always something intense that we need to talk about.

There is some initial onboarding into 1-on-1s. The first several are going to be about getting to know my new report and finding out what they need from me. That requires some more targeted information gathering. Here’s a great post by Lara Hogan that focuses on that. Questions for our first 1:1