Soft Skills Engineering - Episode 297: Flat decisions and pointy-haired boss

Episode Date: March 28, 2022

In this episode, Dave and Jamison answer these questions: Liam asks, I was the second hire in my team and worked with one lead engineer who created the entire codebase from scratch. This... engineer’s code was functional but not well architected and has many inconsistencies. They have since left the company and replaced with two new senior developers who are a lot stronger technically. We recognize issues with the current codebase but we’re finding it hard to make decisions on the best way of solving things. We’re all at the same seniority level and the managers above us do not have hands-on experience with our codebase or tech stack. Because we’re at the same seniority level I don’t want to start acting beyond my job title and make all the architectural decisions, but at the same time I don’t want to be a pushover. How should decisions be made in a team with a flat structure and no defined leader? My previous manager quit the company last year and we’ve been assigned a new one. While the previous manager knew technical side of the project really well, the new one seems to be clueless. He is not even showing any interest in learning about what we do. He is a good people manager, but lack of context makes him really bad project manager. What should I do? Should I talk to him to convince him to learn more or maybe it is normal and we were just really lucky with the previous manager?

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than four cores just to run your company's security software to be a great laptop this is soft skills engineering episode 297 i'm your host dave smith i'm your host jameson dance soft skills engineering is a weekly advice podcast for software developers about all the non-technical stuff like how many extra cores you need just to keep that virus scanner happy At what point do you need a dedicated laptop just to run the security scanning software? And then you have your other laptop that's for doing stuff. This one runs security scans. This one's my work laptop.
Starting point is 00:00:37 Yeah. Actually, now that you say that, that is what has happened at previous jobs that I've been around. There's the Skunkworks laptops that you can actually do stuff on. And the other ones that are crippled by paralyzing software that... Yeah. It makes your laptop secure because when a hacker gets on it and tries to run a crypto miner, there's no CPU cycles left. If they're trying to export all of your data through your machine, the network bandwidth is already taken up by the live screen recording that it's streaming to your company's central monitoring servers. Good luck exfilling any of this data.
Starting point is 00:01:19 Yeah. That road is already full of cars. All right. This episode is sponsored by OpsLevel. OpsLevel makes shipping great software easier, and we will share more about OpsLevel later in the episode. We want to thank our tremendous patrons. Thank you to the folks who contributed at the level that we shout them out every single week.
Starting point is 00:01:39 Thank you so much to Craig Motlin, Rum & Code, I Love Mavis, The Stochastic Parrot, Alice Jost, Andrew Pollack, The Eat Your Job Podcast, Ian Walter, Aaron Duna, CameronHall, Patron.com.au we're hiring, Ira Chan, Monkey Face Emoji, Jonathan King, testingisdocumenting.org, Oladapo Fadje, William Angel, Ragnar Harrison, Timmy Garabrant, Nick Hathaway, Travis Sanders, Braden Keynes, Ibot, Winrar, Nick Kantar, and Philip John Basile. Thank you to all of those wonderful people. Join them by going to softskills.audio and then click support us on Patreon. Any dollar amount will get you an invite to our Slack team, which is fantastic. We would love to see you there. I learned, what did I
Starting point is 00:02:19 learn. There was a thread I was reading the other day. Someone was talking about sharing secrets with each other and mentioned there's some mutual Prime sharing technology that SSH uses, which I didn't know is a thing. And I helpfully contributed by linking to the Amazon help docs about how to share your Prime account. I thought you were going to talk about Prime numbers. Wait. No, that's what it is. I mean, yeah. You thought it was Amazon Prime? Well, that's just what came up when I Googled prime sharing. Oh, okay. I was just trying to contribute, you know.
Starting point is 00:02:50 And did it help? It helped me. That is awesome. So that's what you're missing out on. As crazy as this is to hear, I have never equated Amazon Prime with prime numbers until this moment. It's the original Bitcoin. Prime numbers somehow related to hashing. Okay, we better get out of here.
Starting point is 00:03:12 Eject. pull the record do you want to read our first question dave sure thing this comes from a listener named liam who says i was the second hire on my team and worked with one lead engineer who created the entire code base from scratch this engineer's code was functional but not well architected and has many inconsistencies they have since left the company and been replaced with two new senior developers who are a lot stronger technically we recognize issues with the current code base but we're finding it hard to make decisions on the best way of solving things. We're all at the same
Starting point is 00:03:45 seniority level and the managers above us do not have hands-on experience with our code base or tech stack. Because we're at the same seniority level, I don't want to start acting beyond my job title and make all the architectural decisions. But at the same time, I don't want to be a pushover. How should decisions be made in a team with a flat structure and no defined leader? Functional but not well architected and has many inconsistencies. is this your code base or is this my personality to do hey oh let's see i would say functional not well architected has many consistent inconsistencies pick two okay that was a that was a joke around the here's a list of three good things pick two except two of these are bad
Starting point is 00:04:24 yeah i picked the two bad ones poorly architected and inconsistent and it is not functional do you remember a few years ago when flat structures were all the rage in tech well i don't know were they all the rage in your area of tech i was working at a startup at the time so flat so it was very easy for us to follow fads because they're like 10 of us yeah it's like super easy this what's the fad this week jameson well i'll tell you monday is new fad day you know i think the industry well i'm going to speak for the entire software industry i think the industry has moved away from flat a lot over the last i don't know say 10 years i agree and it coincides with me moving into engineering management so i think they were just waiting for me waiting for you to change the
Starting point is 00:05:14 world we're we're gonna be flat until jameson gets here and then really knows how it's done it couldn't possibly be that the moment jameson and i both moved into management suddenly the whole world changed it couldn't possibly just be that our perspective shifted a little no they recognize the value from us doing our work oh okay i think the reason i asked that question was to ask have you been in the situation where there is a not a clear decision maker and so not a clear decision is being made i have not and the reason might surprise you i feel like you just read me a buzzfeed article headline well that would be more like the three reasons and you won't believe number two
Starting point is 00:06:00 I'm now engaging with your question to find out if I'm going to be surprised or not. That was an engagement hack just to get you to lead me to the question. No, I've never been in this experience because for better or worse, I'll let all my former coworkers decide if it was for worse. I tend to be the one that just kind of steps in and volunteers ideas and kind of becomes the de facto leader on accident with no input from anyone and certainly no democratic process. It just kind of happens that way whenever I see a vacuum. I have been in this situation because sometimes I'm fine stepping in and trying to move things forward in a group of peers or equal hierarchy, but sometimes I'm really not. And sometimes I'm
Starting point is 00:06:42 fine with it and I'm not fine with it within the same group even. So yeah, I've been around this before. How should decisions be made in a team with a flat structure, no defined leader? You're all the same seniority level. Two new senior developers. Okay. So I'm assuming that you are all three senior developers because you're all the same seniority level and you said that the two new people who joined were senior developers so you should all be relatively mature and experienced i think here's what you do go steal a mannequin from a department store and put a suit on it okay and then that's that's your manager now okay is this like the rubber duck manager yeah exactly business casual dress no jeans yeah tall in stature strange in shade of skin
Starting point is 00:07:31 and texture but it's like that's fine manager's a little plasticky to the touch when i shake its hand i just don't it's very rigid i don't feel much rigid and room temperature poor at returning hugs but always there yeah fantastic listener never interrupts never never interrupts yeah and then you rubber duck manager you just ask this person present this person your problem talk it out and and i think you'll come to an answer well okay that that i think if you explicitly raise this as a problem um a group
Starting point is 00:08:18 of three senior people should be able to make decisions without consensus if you if you can arrive at consensus that's cool if not you should not be blocked by lack of consensus at the very least you have an odd number so you can just vote if you want to you're just absolutely stuck yeah as long as there are strictly less than three options on the table you can vote shoot you can't always just vote. Just found an edge case. Oh, dang it. No, I think if everyone here is mature and senior, they will recognize the fact that they have their own ideas about what is best and what we should do. And the group will not always agree with them. And it is harmful for the group to block until everyone gets their way. And so I think you can present that to the group as like,
Starting point is 00:09:06 this will help us out, even if sometimes we will not make the decision that each of us individually would prefer. We just need to get good at deciding things as a group and move forward so we're not blocked. That's true. And sometimes, like the way, I think most people, the image they would get now is this idea that people just kind of muscle ideas through anyway, whether everyone's on board or not, I'm going to push my idea. But let me tell you that a truly mature senior engineer recognizes the return on investment of debating or delaying an idea because of a preference of their own. And excellent engineers will sit back and say, and not even say this out loud, but will sit back and think, I don't fully support this, but it's not worth our time and energy to debate this one. I'm going to support it, fully support it on the outside and make it clear to the others that, hey, I'm on board with this.
Starting point is 00:09:58 even if you're not totally on board with it. Now, I'm not saying that you should sacrifice every preference you have, but a truly mature senior engineer knows when the battle is worth it and when it's not. Have you heard of Fist to Five? This to Five? Fist to Five.
Starting point is 00:10:15 No. I also haven't heard of the other, the mispronunciation of that either. This to Five? Five Fists of Fury is what we have called it internally because I couldn't remember what the name was, I think. i knew it was five and fist or something like that okay so it's a it's a quick way of checking for consensus when you present an idea and you you say your idea and then you ask for a fist of five
Starting point is 00:10:40 and you can hold up or use slack emojis hold up a number of fingers on your hand or use slack emojis to indicate zero is i'm totally blocking i'm hard against this five is i love it and we'll champion it. And then there's a grade in between of like, anything below three is blocking in some way. And anything three and above is not blocking with an increasing level of enthusiasm and agreement. So if you're stuck on just the mechanics of like, do we agree or not, then this is a very cheap way to check if you agree or not. And sometimes you really are just stuck on the mechanics where people just agree or don't care, but you can't get people to engage enough to express that clearly so that can be helpful yes and sometimes it is a matter of engagement where
Starting point is 00:11:27 it's like actually i don't care at all but you're not hearing as as someone who brought the idea that to the table sometimes you're not hearing you don't hear the voices of people passionately agreeing or disagreeing and some people hear that and think okay you agree some people hear that and think oh you're blocking my idea until i hear an affirmation yeah i like that i like that you kind of you have a mechanism whereby everyone has to engage but if you get the the fist of fury you get not consensus from that what do you do next well i mean this is where it requires you know consensus building by the way is a skill and this requires everyone who's participating to be good citizens i think in the process and if you don't have all good citizens it requires a
Starting point is 00:12:10 special amount of skill from the person who's pushing a particular idea to navigate that and And it can be, that can be challenging to do, but I found that if, you know, if you can really summon a high volume from your vocal cords and just yell, you can get a lot of people on your side. I mean, we have, you mentioned consensus explicitly. Do you have to have consensus? I feel like you don't, right? Well, I might define, I might define consensus a little bit.
Starting point is 00:12:38 I don't necessarily think of consensus as unanimity, but I think of it as at least agreement from enough people to be able to proceed or a level of agreement enough you know like not stark opposition you know so in other words agreement or absence of strong opposition to proceed yeah can we talk about the one part of the question that says i don't want to start acting beyond my job title sure what's that about i interpreted that to mean this the question asker did not want to kind of set themselves up as the boss of the two peers yeah by saying hey we need to make a decision and i will make it yeah and and i can see reasons for not wanting to do that like you don't want to be perceived as a kind of a know-it-all or someone who took over
Starting point is 00:13:26 but at the same time this team needs someone who's willing to step up and say i am going to champion this idea and i think we should go for it i think this team needs that I think you can also make it clear that you, well, assuming this is true, that you are not trying to tell them what to do. You're trying to help the group decide. And so the, the ideal outcome here is not necessarily the team implements all of your ideas. It's that you work through things instead of kind of waffle over them for a long time. if you just say that i think folks might be glad to have someone help out with that responsibility yeah if it does turn into all your ideas winning then you have performed a coup and right and congratulations you've solved now you have solved this problem where you can't all decide and you have a new problem you have a team full of resentful team members you have a morale and retention problem exactly
Starting point is 00:14:23 maybe maybe what's needed here is for these three team members to sit down with each other and say out loud the nature of the problem that this team has like hey we're all senior engineers we've all got similar levels of experience we have different opinions we need a framework for making decisions together anytime you say the words we need a framework to developers you never know what you're going to get though i could turn into a 20 year long open source project yeah i don't know i if i were smarter or more well versed in the literature i would be able to talk about explicit decision making frameworks but i am not so probably you can google that and do what it says try it perfect i'm sure there's stuff out there in fact i'm going to google it
Starting point is 00:15:08 right now go for real-time literature googling making frameworks there's a lot of content marketing for me to go buy some products probably some courses so i think the key is products buying stuff i think that's the key to making decisions i don't know i'm out of ideas me too i think maybe just like bring a blowtorch to work and you'll be so intimidating that everyone will want to do your ideas you just use it to warm up your lunch very carefully awesome all right we've answered the question hey jameson have you noticed there's a special kind of pain that software teams feel when they get big enough pain of open floor plans no i'm talking about the pain of owning a huge pile of services but having no clear ownership
Starting point is 00:16:02 this makes so many routine things harder than they need to be like knowing who's on call onboarding new hires finding out who owns what if you're lucky you have some spreadsheet or maybe like four spreadsheets that list all the services your teams operate with manager contacts and on call schedules but you probably don't even have that i've definitely felt that pain well this is where ops level comes in ops level is a product that replaces that old spreadsheet that no one trusts with an always up-to-date catalog of all your services and teams. And Ops Level takes the friction out of launching new services by providing guardrails that let developers focus on writing code instead of chasing down people and getting approvals. When I worked at Amazon, we had tools
Starting point is 00:16:43 like this. I can't imagine living without them. But small and medium-sized companies, they can't afford to build them. And this is why you need Ops Level. I've lived without them. It's rough. the rolodex of people who've worked there a long time is not as scalable as ops level go to opslevel.com soft skills to solve this pain and learn how ops level makes shipping great software easier end the suffering go to opslevel.com soft skills would you like to read our next question jameson i sure would this is from an anonymous listener who says my previous manager quit the company last year and we've been assigned a new one while the previous manager knew the technical side of the project really well the new one seems to be clueless they are
Starting point is 00:17:28 not even showing any interest in learning about what we do they are a good people manager but lack of context make them feel like a really bad project manager what should i do should i talk to them to convince them to learn more or is this just normal and we were really lucky with the previous manager oh the old people manager skills versus technical skills this is me i'm i'm the manager oh in this question no not literally right i mean no no well i don't know it's anonymous maybe i could be previous manager quit the company last year i mean yeah the previous manager did quit the company last year it lines up oh boy this is the job the first job where i have not known the full stack of the work that my teams were doing where i could jump into any part of
Starting point is 00:18:20 the code and be a productive contributor interesting which is not exactly what they're saying their previous manager did but i think there's some overlap there and it there are a class of problems that i am not useful for solving when it comes to things that i need personal hands-on experience to know uh i'm not great at solving the nice part is i work with a lot of developers who do know all that stuff and i can just ask them so i i mean i should probably ask them if they wish i knew more or wish i was more hands-on in the code well but my impression is that it's going fine because i ask them and they tell me instead of me just throwing out ideas of how hard something will be or how long i think something would take or what's the right kind of
Starting point is 00:19:06 tactical code level approach to take to solve this problem i took this problem and spun it into an opportunity. Now you get to decide all these things. Good, good news. Who does? The question asker. Oh, I see. You just not any interest in learning about what we do. Lack of context makes him a really bad project manager. Yeah, you have that context. So now it's your problem. Like you're well, congratulations. You're the technical lead. Is that what I'm hearing? I think so. Yeah, because it sounds like the previous manager was doing people stuff and technical stuff. and this one is not and actually i think that's a little bit rare to have someone who as a manager is really good at the tech side and the people side would you agree with that i think so i feel
Starting point is 00:19:48 like i have seen it happen more when someone has moved into management from previously working as an individual contributor at that same company where they have they kind of like add on the people stuff but bring all the engineer context from when they were primarily just building stuff yeah but i i have not seen it very often for new incoming managers where they come in and can be the kind of hybrid tech lead people manager successfully yeah yeah it is interesting i find myself in a similar situation as you where i've come into a team not having any context on the particular tech stack or frankly the product which I've had to learn over the last year and the fact is I am not very useful at acute narrowly focused technical questions and I found
Starting point is 00:20:39 that I mean this this answer might not help the person who's asking this question but it might help the the manager is that I've found that I really need to lean on my team for those small questions like they're not small but like kind of the narrowly focused technical detailed questions And I tend to exert my will a little bit more on the higher level system and architectural questions. And maybe that's just because that's where I've got more experience and I don't need as much fine, low-level detail context to do that. It feels like it's often more abstract, which means you could contribute to it without as much low-level detail. So the question asker says it makes them a really bad project manager. And I really wonder what that means.
Starting point is 00:21:22 Is the engineering manager throwing out deadlines or timelines? Yeah, that's a good question. Because I could see that being a problem. If they are being asked, how long will this take? And then instead of saying, I don't know, let's go talk to the team. They say, two weeks, because that's the default estimate. Whenever someone asks you how long something will take, it seems kind of big, but not huge. It's always two weeks.
Starting point is 00:21:44 But that example you just shared is probably not a bad project manager. A bad project manager would say, team said two weeks, I'll promise it tomorrow. you know yeah but i know they can get it done faster if i just force them to i know they're sandbagging by 13 days out of 14 yeah i just know their type from my previous jobs at different companies yeah and i i'm also interested in this question like what makes them a bad project manager i'm actually interpreting that a little differently which is the question asker saying is that it makes this manager a bad technical lead like over the project that they're working on that there's probably a whole bunch of decisions that were made by the previous manager
Starting point is 00:22:25 on a regular basis that now there's no one to make those decisions and this manager might not even know that you know it's like oh i didn't even know the previous person was making all these decisions yeah that's an interesting point i mean you kind of said it jokingly earlier congratulations now you're the tech lead but maybe you are at the very least you should raise you should be able to raise this issue to your new manager yeah and you don't have to frame it as the last person did this and you are not doing it and it sucks you're not doing enough and you have to do it but you can raise it as a as a pain point you're experiencing on your team that you had someone who's fulfilling this tech lead role and we don't as much anymore how should we
Starting point is 00:23:06 solve that and maybe the answer is you will do it and then maybe you get to say please give me more money to do more work yeah maybe the manager will just jump into it and and didn't know that that is a thing but can do it yeah maybe those are the only two options just trying to yeah that's it what the other thing could be yeah and i really do think that when a new manager comes in it behooves you as someone who cares about the team to make sure that all the responsibilities that the old manager were doing get covered somehow and so i would i think it'd be really appropriate for you to sit down with this manager and outline for them some of the things that the previous manager did that this one this person isn't doing just so that they at least know like these are things that need
Starting point is 00:23:47 to be done on the team and as a manager it's your job to delegate that or at least make sure it gets done and volunteer for some of them maybe but this is your chance to make sure the team has good continuity yeah that's a fair point that how would this person know if they it's very possible they just never knew what the team used to work like and no one told them so they're not aware of what is missing there and i've worked for managers who are very technically unskilled or just they just don't bring that experience to the table when they start a job. And it is very tempting to be a whiny, complainy engineer. You're like, how could I possibly work for someone who doesn't know what a linked list is? Oh, you know? But the reality is these people have a lot to teach
Starting point is 00:24:28 an engineer, especially because the question asker says, this is a good people manager. Well, great. There's probably a lot of skill here that your old manager didn't have. Because like I said, it's pretty rare to have someone who's extremely skilled in both those areas. But you could have a lot to learn, first of all, and it could create an environment where you get to grow. And, you know, I don't want to rehash the become a tech lead thing, like, you know, we've now mentioned it twice, but I'm kind of going in that direction, which is that you can be a partner to this manager. And that's how I have worked in the past, where it's like, I've got a people manager, I report to this person, they don't have the tech skills. So we
Starting point is 00:25:02 partner on a lot of stuff. You know, the people manager comes to me for input on other members of the team so i can help them calibrate and make sure everyone is treated fairly you know from the perspective of someone who understands their skills you know the people manager will who if they're really good they'll often do things that you didn't even know should be done like advocating for your team with the rest of the company making sure the rest of the company knows what you're working on and why you are important you know i've had a people manager who was really really good at that yeah it was almost like he was a full-time marketer in a past life and so within the company he did a fantastic job of advocating for us and making sure that people knew who we
Starting point is 00:25:37 were, why we were important. And we got a seat at a lot of tables we wouldn't have gotten if it weren't for him. And I loved being the technical counterpart to that person because I would show up at these meetings that I never would have gotten into with people who I really wanted to work with all because this person was really good at navigating that kind of stuff. So I think this can be a blessing in disguise if you'll take advantage of it. So not even showing any interest in learning about what we do. That is potentially concerning if your manager really just doesn't care about the output of the team if they don't care or are not interested or do not have time to dig into how you implement stuff that could be one thing but if they don't care about what you
Starting point is 00:26:19 do day to day and and what your team is producing that seems like a different yeah problem it's very possible that your manager has a bunch of stuff on their plate and like figuring out the code review process here is very far down on probably not even on the plate it's not that they don't yeah it's not that they don't care it's that there are other things that are that are more pressing yeah if it's if it's literally about the output of the team and how to tell did we do the thing that we are supposed to and what are we supposed to do then that's a big deal but if if they're not spending as much time on the day-to-day hands-on engineering things it's probably because they're trying to keep up with all of the other stuff that comes with
Starting point is 00:26:59 being a new engineering manager at this place could be and i think you as a team member really need to carefully set your expectations for what you need this person to do for you because like jameson said the code review process is probably not on the top of their list or even on their list and there's probably a hundred other little decisions like that like hmm for our sprint point estimates should we use fibonacci sequence or powers of two no opinion doesn't care right so don't expect them to because when you expect them to that's where you find pain that the i've heard it said that the difference between expectations and reality that's where pain lives and you want to try to get those expectations clear that's really metal what's that come to the difference
Starting point is 00:27:41 of expectations and reality the pain zone were we just really lucky yeah i don't know i think you should learn stuff from this new person and and help them make sure that the work is allocated to somebody. But it's very possible. I don't know if I said this explicitly. If I did, I will repeat myself. And if not, I'll just say it for the first time. And it's a mystery to me which one of those two this is going to be. They might have no expectation that you want them to be this involved technically. Maybe they had a bad experience in their past career where someone thought they were micromanaging because they were so involved in the day-to-day and pushed back really hard or something like that so figuring out if this if this is something that they know
Starting point is 00:28:27 you want is probably useful and and what need you are trying to fulfill by having them do this is probably also useful because there might be a different way to do that that fits in with their skills and responsibilities yeah all right i'm done you're done all right we're gonna we're gonna quit this show this episode only yeah oh happy several weeks late sixth podcast anniversary yes congrats to you jameson much like my real anniversary and that you forgot yes it comes and goes and then i notice later and think oh crap you have tolerated me more than most companies have been willing to do this is the longest job i have ever had if it is and the lowest paying. Yeah. Maybe those things are related. Maybe money makes me quit jobs.
Starting point is 00:29:22 We've been doing this all wrong. Yeah. You've been going after more money, but every time you get more and then you stay less. Yeah. All right. Well, I think we're done. Thank you so much for listening. What can people do if they want their own questions answered? Go over to softskills.audio and click the ask a question button. You can fill out our form there and as always thank you so much to all of you who have taken the time to fill out questions there's kind of a lot of questions let's just say it's probably going to take us longer than six years to answer them all another six years but keep them keep them coming we love it we do have another six years of material yeah we we definitely do keep the questions coming we
Starting point is 00:30:01 absolutely love them all right see you next week Thank you.

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