Soft Skills Engineering - Episode 216: One-on-ones and inter-team power struggles

Episode Date: June 29, 2020

In this episode, Dave and Jamison answer these questions: Questions I have a weekly one-on-one with my manager. What should I talk about in them? Things like feedback and career goals become... old and repetitive real soon, and I end up discussing current work items. I understand that a one-on-one is my time to ask questions and don’t want it to be a longer daily-standup. My front-end team mates are in a power struggle with my back-end team mates and my design team mates. They’re intentionally making technical decisions that artificially constrain the choices of other teams. For example, design wants a certain interaction for a new feature, and my team says “nope, it can’t work that way, cause the components we built don’t allow that”. Or, they make tickets for the back-end team as in “endpoints have to work this or that way, because our components assume that structure”. This often seems detrimental and confusing to other teams. When I push back against my team they are angry. When I defend my team other people are angry. When I try to strike a compromise I feel gross because I usually think my team is wrong. I’ve tried talking with other teams and managers about the problem. I feel gross about that too because I don’t want to point fingers or throw my team mates under the bus. Where should I even start?

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than arguing over whether a value can be null at runtime to be a great engineer this is soft skills engineering episode 216 i'm your host dave smith i'm your host jamison dance soft skills engineering is a weekly advice podcast for software developers about the non-tech stuff that goes into all the tech stuff i feel like you can have two inverted arguments about this where the people that like dynamic languages are going to say, why would you ever put in all the effort to know whether a value can be null at compile time
Starting point is 00:00:34 when you could just do it at runtime? And then the people who like static languages that don't have null will be like, why would you ever want to find out at runtime if you could know at compile time? And then they both just yell that at each other louder and louder. And then the people that use static languages
Starting point is 00:00:48 that let you have null are in the middle getting yelled at from both sides. Yeah. and then eventually the runtime folks lose out because the creators of their languages admit that this has all been a great mistake i don't know unless rich hickey likes null he likes runtime nulls yeah thanks rich ruining it for everyone really he doesn't like the optional or maybe type oh okay that's maybe a better way to state it okay whatever well i i'm in a different camp which is i like runtime null exceptions when you try to
Starting point is 00:01:24 dereference a null oh you don't even just okay yeah like i optimize to increase that metric is that like asmr for programmers it gives your brain little tingles every time you you know a null pointer exception happens oh look at the shape of that stack trace so comforting oh should i thank our patrons do it all right thank you to the folks who donate at the level where we shout them out every single week thank you to braden canes dennis bogdanov evgeny sladkowski john grant luke bayliss microconfig.io nick hathaway nick kantar alexander philip john basile ryan real mccoy the agile ventures charity sean stanley tactical radio steven arman lee travis vinlock thank you to all those people thank you to everyone who has donated
Starting point is 00:02:08 you make the show happen you help it keep going if you would like to join this group or to support the show or to join our slack team you can go to soft soft skills.audio click support us on patreon any amount greater than zero gets you an invite to the slack team any amount greater than your credit card gets a stern email from your credit card company any amount greater than your credit card limit oh god it gets a stern email from your credit card company so keep it between zero and that and that limit yeah we very nice we should start accepting barter like you could send us some pelts we'll send you a slack invite convert it to yeah slack invite or a shout out hey i am a hundred
Starting point is 00:02:56 percent on board with that if you have something you want to send us in the mail i actually don't care what it is we will definitely give you a slack invitation they don't have our addresses though a problem easily remedied with one email yeah that's true send us an email and i will give you an address to mail some random thing actually it'll probably be someone else's house just for security but when they call me and tell me this weird thing showed up i will give you a slack invite hey this package showed up and i didn't die come pick it up all right let's get into our questions do you want to read our first one dave i sure do okay this comes from a listener named chetan who says i have a weekly one-on-one with my manager what should i talk about in them things
Starting point is 00:03:37 like feedback and career goals become old and repetitive very soon and i end up discussing current work items i understand that one-on-one is my time to ask questions and i don't want it to be longer just a longer daily stand-up i think your instinct is good yeah one-on-ones are for stuff that you don't talk about in other meetings and theoretically you have another venue to talk about status it's sort of like the old joke about those two books what they teach you at harvard business school and what they don't teach you at harvard business school these are two separate books released by two people and together they contain the sum total of human knowledge because it's all the stuff you learn at harvard and all the stuff you can't learn at harvard
Starting point is 00:04:16 yeah what else is there like that's everything it is so you talk about status in status things and you talk about everything else in one-on-ones literally everything yeah it's a long list that means you should never lack for things to talk about that's right what's the problem it's like thermodynamics today we'll be talking about supply lines and logistics in the lord of the rings trilogy and compare and contrast with supply lines and logistics in game of thrones show how much effort tolkien put into it yep and how it adds to the realism of this fantasy novel perfect i mean it's on the list yeah you can't be faulted unless you work at i don't know what kind of startup that would be like a startup that actually where is where you're writing
Starting point is 00:05:12 yeah where your work is about supply line logistics and fantasy novels as a service it's not it's a platform we're going for the platform play that is hilarious yeah what do you talk about so you've you've been on both sides of a bunch of one-on-ones how do you think about it as a manager what are you hoping to get out of a one-on-one i think as a manager i'm hoping to stumble upon information that i would not have access to through any other means. By the way, that's a gigantic slice and event diagram of all the information, but stuff that's relevant and pertinent about your job that I just can't find out through other means. I don't know. I'll tell you what, when I was a manager, I found a
Starting point is 00:06:00 surprisingly high amount of information was about personal struggles or things at work that were causing a person to be less productive than they felt they should be. That was pretty common. I think it was surprising to me personally because I don't like sharing that stuff with my manager yeah it's uncomfortable for me but you're unlikely to hop into a stand-up and say like hey working on this bug ticket and I have depression right so it'll take longer besides that no blockers right I am taking blockers to block the reuptake of serotonin in my brain no work blockers right I have blockers but I'm actually short on blockers which is the problem my prescription lapsed and i didn't get it renewed yeah like no seriously
Starting point is 00:06:47 those are exactly the kinds of topics that come up in one-on-ones but not in stand-up so it's sort of like i don't know is an early warning system the right way to put it you want to know about things so that you can help with them instead of find out when it's too late i would think of it not like an early warning system and more like a spy network where you kind of have agents throughout the company who give you information and you piece all of that information you synthesize all of it and you can start to have a correct mental model of how the organization is working by combining assimilating all these little bits that you gather okay and do you collect that information by walking up to someone
Starting point is 00:07:28 and saying hey what's the scuttlebutt what's the news hey what have you heard i do it by moving the office water cooler to be right next to my desk and then just leaning over to it every time someone comes to get a drink of water and see what they're talking about yeah that was a plot from the office that's right that's exactly right so i feel like i also hear and the question asker mentions explicitly kind of career discussions as a topic but i i hear their complaint which is you can't every single week say my five-year plan is to get promoted three times or something and then right say like now it's my four-year and 51-week plan exactly like you're like okay well another week has elapsed in my five-year plan i am a 0.4 percentage points further along than i was last
Starting point is 00:08:16 week. So we are on track. We're green. No blockers. Exactly. Yeah. So what about on the other side, if you're a person having a one-on-one with a boss, how have you thought about that in the past? Well, I do think there's a place for sharing status depending on the relationship with your boss and the rest of the team. Sometimes your manager may not have visibility into some of the details that are important for them to know about. And so I think it is okay to share status occasionally but if they're like a hands-on manager who's in stand-up commenting after every item and totally up to date then then obviously that doesn't really have a place in your one-on-one there's no point in doing that but yeah i'm okay with status updates especially if it's like
Starting point is 00:08:59 extra sprint you know work that's kind of outside the norm where you're maybe doing some research or forming a working group or you have like extracurricular activity that you've been organizing for the team to do it's great i think it's great to share updates on that stuff yeah so status updates that's what you're saying you give to your boss when you do one-on-ones i'm saying don't be totally shy of doing status updates unless your boss already knows the stuff you're doing if you're just repeating the stuff you said in the presence of your boss during stand-up that's a waste yeah to me i think of the purpose of a one-on-one is to help your boss i don't know who the you is in this situation the the manager and the employee work better
Starting point is 00:09:43 together and that's very vague and broad just like what you said dave about it's everything that isn't status but the way i think about it is sometimes in one-on-ones we won't even talk about work directly if there's nothing pressing work related we'll just sort of get to know each other and chat and that gives a benefit in that we have a closer relationship now and it's easier to talk about things when when stuff comes up so you're sort of like i don't know building your relationship cred with that person yeah so that it's easier to work together later in the future yes you're you're reminding them that you too are a human being exactly feelings and needs so i'm bad at remembering things and i keep notes on one-on-ones so i have a note for each one-on-one that i have
Starting point is 00:10:32 with each person that says sort of what we talked about and if there were any things that we had to do for for either of us from it i also have a kind of top level just sort of stuff about this person so if they talk about their kids i'll put like here's what they said about their kids they have this many kids they're this old just like things to remind me of facts about them to see them as a person not just an employee so you're saying you keep a file on each person i do it's like i'm sure like dentists do this and i don't know those people that you see every once in a while that shouldn't know that your child is going into third grade but somehow do how do you know that it's been like a year since i've been here last congratulations on starting the third grade
Starting point is 00:11:17 yeah it's like borderline creepy yeah you hope it's because they have a file and not because they're following your every move you seem a little too interested in my life yeah in in my mind having a regular one-on-one scheduled with your manager is there because sometimes it will be very helpful and the rest of the time it won't be harmful like sometimes you'll have really important stuff to talk about you'll share really important information or context or learn it sometimes it'll it'll really change things and the rest of the time you're just sort of spending time to get to know that person but it's if if you don't have a regularly scheduled time it's hard for a report to just schedule a meeting with their boss and say like hey this is the
Starting point is 00:12:07 meeting where i tell you i'm getting divorced and that's why i'm having a hard time at work you know like you have to have that cadence and that habit of talking so that when there is something really important to talk about that it's there there are there are habits that that will make it easier to share that information yes interesting so you're saying that all of these seemingly possibly useless meetings are actually preparation for when they're really important i think so i mean the pareto principle probably applies to this like it does to literally everything else i'm gonna horribly butcher it but basically you get 80 of the value from 20 of the of the effort so maybe like most of your one-on-ones are not useful and then a small number of them are very
Starting point is 00:12:54 useful but if you didn't have all of them then you wouldn't get any of that value does that make sense yes i think so i think that makes sense you don't know which 20 are going to be or which anyway whatever i think i got it yeah and honestly i mean your your work is kind of like that too yeah if you had perfect information about what would happen in the future based on the work you were doing i bet most of it would not deliver value but you don't know it so you do a bunch of stuff and then figure out like yeah we were right about this thing so you're probably wrong you're saying that uh if i if we could predict the future a little better we could do one day work weeks i think so yeah probably i suspect there's probably a bunch of people who have
Starting point is 00:13:38 already figured this out and are already doing this yeah if 20 gives 80 of the value i'll just do that 20 yeah exactly yeah okay so i have i have noticed a disconnect between what people think are in their manager's minds and what is important to their manager versus what is actually in their manager's mind and what is important to their manager and i'll get to how this relates to a one-on-one in a second, but typically what I see is people think their manager knows a lot more than they do. First of all, they see more than they actually see. And second of all, they probably have a misplaced set of priorities, meaning that the employee thinks that the manager feels very strongly about subject X, but really it's subject Y. This comes from the fact that
Starting point is 00:14:28 managers and employees work in very different environments and their interactions are limited. so all of that having been said a good thing to do in your one-on-one in my opinion is to ask questions about what's going on in the manager's mind things like how is the team performing how can i help on the team is there anyone that needs my help what do you think are the biggest priorities tell me about what you're thinking about the future of this team where do you see us in a year in two years what are your thoughts on the on the financial prospects of our company in a year or two years. And boy, I mean, there are some managers
Starting point is 00:15:03 who can just fill an entire one-on-one sharing all this information with you, having just seeded them with one or two questions. And I have found those to be very, very valuable. And I take notes and I try to really understand what's going on in my manager's mind. That's interesting. I have a list of one-on-one questions.
Starting point is 00:15:17 So usually I have one or two things. Sometimes I have zero things that I bring to a one-on-one to talk about. And the rest of the time is employee driven. But if the employee doesn't have anything they want to talk about, i have a big old list of questions to ask them and they're sort of the the opposite of what you asked so okay it's it's me asking the employee those questions basically and me trying to get
Starting point is 00:15:41 at what is in their head but i haven't thought about it's weird to say like can i tell you my my long-term plan for the team yeah exactly yeah i think in general the the more the more you bring to it the easier it is for the one-on-one to fulfill that purpose so if you want to know something or want to get something out of it then it's sort of on you to do that yeah cool have we answered the question well i think so but i actually have a question for you first okay where do you see this podcast in a year or two years everywhere i see it on billboards buses written in the sky written in the earth everywhere archaeologists uncovering ancient yeah in the temples we will build as a monument to the podcast yeah perfect now what was this symbol
Starting point is 00:16:34 what what did this square smiley faced god represent with the weird thing sticking out as a reference to our logo if you have not seen it yeah all right now we just got to make it happen and we'll start by answering this next question that's right i read this is from an anonymous listener who says my front-end teammates are in a power struggle with my back-end teammates and my design teammates they're intentionally making technical decisions that artificially constrain the choices of other teams for example design wants a specific interaction for a new feature and my team says nope it can't work that way because the components we built don't allow that or they make tickets for the back-end team that say endpoints have to
Starting point is 00:17:18 work this way or that way because our components assume that structure. This often seems detrimental and confusing to other teams. When I push back against my team, they are angry. When I defend my team, other people are angry. When I try to strike a compromise, I feel gross because I usually think my team is wrong. I've tried talking with other teams and managers about the problem. I feel gross about that too because I don't want to start pointing fingers or throw my teammates under the bus. Where should I even start? I just want to make sure I got this right. Your team is making artificial constraints on other teams when you try to defend them you can't because you know they're wrong but then other teams try to do it to you and you try to compromise but you don't
Starting point is 00:17:55 want to do that because you know they're wrong wait no the other teams i don't think the other team is is imposing these same constraints on them i think the other team is like don't impose constraints and the question asker is saying what if we only impose half the constraints and then everyone gets mad at them oh okay okay so the front end team is imposing all these weird constraints on the back-end team. And the back-end team is saying, look, it doesn't work that way. So I think you should join the back-end team. Oh, you're saying that's your advice to the question asker? Yeah, exactly.
Starting point is 00:18:25 Yeah. Join the sane team that works well together. Yeah. And fights against arbitrary fake constraints. Some of these practices don't look awful in some contexts. So this idea of the front-end team sort of suggesting a structure to the backend team i've seen work pretty well when there are divisions between front end and back end and the front end has to build something they can't just do nothing but they want to assume a certain data structure so they might send that to the backend team and say like hey if can you make it fit this structure and then they build against that that api contract basically but i mean if they can't then the front end team doesn't just cross
Starting point is 00:19:03 their arms and say like well too bad because i already built this code and everybody knows once you build code you can't change it so you have to change your stuff i had a customer when i was in the defense industry years ago who used to say the main difference between software and hardware is that once the software is built you can't change it he was an electrical engineer by trade so you know he really hated software i have seen several there are plenty of software people that hate software too though like a brand for some developers computers were a mistake is that's right a rallying cry yep it is interesting though because the way that i couch this is we have a front-end team who's saying no back-end you need to build this universal general purpose api in a
Starting point is 00:19:53 way that is deeply coupled to my current web framework that i'm probably going to keep for the next six months yeah this is some some background this question is from 2017 so these components are long gone that's right there's no way these components still exist yep that's three years is is javascript years are dog years basically that's 21 years they're like hamster years yeah it does feel like they're sort of running wild a little bit yeah my impression is this person is not the manager of the team because they say teammates it seems like they're a person on the team who's sort of caught in the middle yeah and is trying to resolve things it's like those cowboy standoffs where there's three people with guns all pointed at each other
Starting point is 00:20:43 and they all have shifty eyed looks that keep staring back and forth between each other and this person like crawls underneath one person's leg and stands up in the middle of the circle and it's like what if we all lower our guns and they all point their guns at this person now we agree we'll get this person first and then go back to our standoff yeah that is a very good metaphor i'm sure that happened in the wild west all the time try talking with other teams managers i feel gross because i don't want to start pointing fingers or throw my teammates on the bus yeah i can see that especially if you think they're wrong it would feel weird to go to another team's manager and say hey i'm sorry my team is wrong and bad like i don't know how to
Starting point is 00:21:24 fix it but i recognize they are bad and wrong and do you have any openings on your team yeah yeah this is dysfunctional i mean contracts between teams are are useful and helpful to decouple things but this is not that kind of decoupling contract where you just say here's how we work together and we'll go build off our our separate things to to meet both sides of it this is like top down where the top is literally it's it's like middle out because design is not part of this yeah it's like the front end code dictates both the design and the back end exactly there's this weird middle tier that's throwing the rest of the organization into its orbit so what do you do about it this strikes me as a missing role on this team and that role would be
Starting point is 00:22:13 one of a software architect or a more senior principal or staff engineer whose job it is to review and approve the contracts between systems in this software system and that way both teams would be presenting designs to this more senior role person who holds the role and that person would be like nope that's too coupled or nope that's uh that's a temporary thing and you know we're not going to build our api against this weird little jquery widget that you found and copied and pasted but yeah i mean it kind of strikes me like there's no arbiter here where ties can be broken yeah ideally that's i think you're right when you say an architect or principal engineer that you're saying between the front end and the back end team they're sort of yes involved
Starting point is 00:23:02 in both right that's right someone who hierarchically is responsible for both of these teams yeah i mean that's a pretty common way to handle disagreements between people or groups at the same level as you sort of bubble it up to someone at a level above that can hopefully weigh between the two that's right and and if if you have an established review culture with that person at that higher level then these disagreements usually never even happen because the front-end team would be too embarrassed to put a design in front of that person which is not what's the word help me word i don't know i don't know what you're trying to say it ends with minical let's check google oh wow google doesn't know what i want
Starting point is 00:23:50 it looks like there aren't any great matches for your search okay equanimical yes what does that mean i think it means like fair to both sides yes equanimity yeah equanimical equanimical equanimical equanimical having the property of equanimity how about we say that to be concise yes anyway equanimity that's what we're looking for here is a design that doesn't impose any undue burden on any individual team i'm assuming that doesn't oh no it's what's that it's ecumenical are we reading the same definition right now no it's a different word yeah the one that says of relating to or representing the whole body of churches yeah so that's one there i think this might have a religious background but it
Starting point is 00:24:43 means worldwide or general in extent influence or application this is probably not the right word i didn't know about this word i think equanimical might be wrong too okay we're pivoting this to an entomology show etymology ah i can never remember i can never remember that one either it's etymology etymology oh i was bitten by the dumb joke about how they're almost the same thing nice oh okay i can't remember where we were though the point is we need someone who can arbitrate this kind of stuff and stop one team from acting only in its self-interest and not the self-interest of the group yeah what if it doesn't exist though i mean it sort of seems like it doesn't because then it's you it hasn't happened then it's you congratulations you are
Starting point is 00:25:35 now the principal engineer that's right you must be separate from both teams to judge fairly between them so that's promotion just is is part of it that's right get it and a pay raise yeah so congratulations you did it so it feels gross to talk to the other person's manager and throw your own team under the bus but i think it should be totally great to go talk to your own manager and say i feel like our team is not behaving in a way that serves this company yeah it's not about throwing your team under the bus it's about helping i mean ideally you think of these other teams as sort of your extended team too and they can't really do their job well because because of decisions made on your on the front end team so that's right sort of helping everybody and then
Starting point is 00:26:25 with that conversation with your manager it's time to do a little bit of root cause analysis why is our front end team so dead set on having all the other teams work around them and you know i hate to say this but it could be that your front end team is operating at like the max capacity of their abilities meaning that they're like look i have these components these tools in my toolbox they're the only tools i know and if you build me an api that isn't compatible with these tools i can't build your front end hmm that seems unlikely i feel like i don't know it's hard to know without all the details i mean yeah there is that's like the competency gap but there could also just be kind of a hubris issue where it's like no this is the way i like to build and
Starting point is 00:27:08 therefore you all need to go with it yeah that may be possible as well like they're capable of using other tools but they choose not to it's not bad that the front end influences the back end or the front end influences the design it's bad if it only goes one direction design and front end when it works well always has some healthy back and forth where a designer builds a thing and you say great this will take six months to implement your like 3d whizzing around this virtual world after to reach the email form at the end of the maze ui or whatever or like you didn't put any hover states or error states in or there's always this back and forth and trade-off and and the design rarely ends up exactly like it was in the initial like photoshop mock-ups or
Starting point is 00:27:56 whatever yeah that's pretty common but it's not like the front end says nope here is how it will be and dictates it to the designers or to the back end yeah so that part seems gross they have to listen just as much as they're uh pushing back and then some of their stuff might have to change right and then sometimes the the pushback isn't exactly pushback it's more like helping the other teams understand the cost of their design decisions so for example the design team may want some whiz bang thing and the front end team job is not to just say no but rather explain to the business the cost of this will be x whereas if we do it this other way the cost will be one tenth of x yeah and i've had a i've had a situation like that i remember i was working on a front end
Starting point is 00:28:35 team years ago, and the designer wanted to do this drag and drop UI, which I'm not opposed to on principle, but our UI had major performance problems where, you know, you would do a click and it would take three or four seconds for the UI to respond sometimes. And so I knew that if we wanted to do drag and drop, you couldn't start dragging something and then have the whole UI freeze for three seconds while you're trying to move the item. And so I knew that if we wanted to build the drag and drop, we would first have to invest a lot of effort into optimizing that to get rid of all the lag you know so it's like can't do it not because it's bad but because our ui actually sucks sorry you just contradicted yourself you said your job is to say no it's to
Starting point is 00:29:14 help you understand the costs right you should have said we can do it give me six months to fix the performance problems and then the two days to do drag and drop that's right that's right and a moratorium on new features in that time because every new feature slows down our ui a little bit okay so i think our advice is generally that your heart seems like it's in the right place where there's not enough there's not enough listening on this team and it seems weird and see if you can try and find i don't know someone someone higher up in the in in the org chart to help balance between these concerns or talk to your own manager yeah and also i think there's a culture gap here where uh there's a team acting in its own self-interest and i would call
Starting point is 00:29:58 this an ownership gap the team doesn't feel ownership over the whole problem they only feel ownership over their immediate area of responsibility yeah so you know just just go close that culture gap it should be no problem yeah just change your culture and make it good instead of bad maybe like go get some vinyl lettering and put it on the wall say maybe it says we're all in this together yeah get one of those kitty hang in there posters oh those are culture right yes we haven't talked about ball pits in a long time but that goes a long way towards making your culture good that's drawing a ball pit you can't share a ball pit with someone and not feel like they're on the same team as you you're sharing a ball pit but really
Starting point is 00:30:40 you're sharing human connection that's right all right have we answered the question now i think so good luck yeah good luck sorry as jameson said this was three years old so apologies we don't usually reach this far back but you know these problems are evergreen though that's true it's just that the the components are in a totally new framework now that's right which means that people the back end had to be rewritten a few times since then anyway to accommodate the new the new front end components well we switched front end frameworks so you got to switch back end languages too that's just how it works i don't make the rules even though i did all right what can people do if they want their own questions answered dave go to soft skills.audio
Starting point is 00:31:19 and click ask a question where you can fill out our form with as much or as little information as you like. Thank you so much to everyone who has done that. We will eventually answer them all. We very much appreciate it. If you want to support the show and get an invitation to our Slack community, our cult, uniforms are pending,
Starting point is 00:31:32 then go to support us on Patreon and just contribute a buck. That's all it takes. And we'll send you an invite at the beginning of every month. You said uniforms are pending. While they're pending, we've relaxed the uniform policy to be whatever you have on you at all times. so technically you're always wearing the uniform always because it's it's it's what you have on
Starting point is 00:31:54 or don't that's the uniform yep all right catch you next week

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.