Soft Skills Engineering - Episode 137: How to get answers to technical questions and Should managers also be technical

Episode Date: December 24, 2018

In this episode, Dave and Jamison answer these questions: What’s the best approach to connecting with people who know about specific technologies that could help me if I have a question? An...d what’s the best way to cast a net via co-workers, friends, & family? The details of my situation are that I’m trying to build a PostgreSQL database from scratch, and I’m running into lots of problems. I spent 2 hours digging through the Postgres documentation, I asked questions on my University Slack channel, and even the PostgreSQL team Slack with no answers. I also reached out to my boss. But I still have no answers. In any case, I’m just happy I had the wherewithal to walk away after 2 hours instead of spiraling into an absolute rage and wasting my night cursing PostgreSQL. Should a team lead do technical work or restrict himself to people management? What are the pros and cons from each approach? HR in my company wants to change from a unified model of team and tech leads (single person performing both roles) to a split model (one team lead with multiple tech leads that hold no people management responsibilities) and I’m not sure what to think about this. I feel not having the team leads ““on the ground”” will make them less effective in the people management aspect.

Transcript
Discussion (0)
Starting point is 00:00:00 It takes more than great reference counting skills to be a great engineer. This is Soft Skills Engineering episode 137. I'm your host, Dave Smith. I'm your host, Jameson Dance. Soft Skills Engineering is a weekly advice show for software engineers about non-technical topics. I just want to dive into the patrons.
Starting point is 00:00:15 Dive in. So I will do it. I will stop talking before I dive into it. Thank you so much to Matthew Wedwick's Agile Ventures charity, Zach Granin, David Jackson, Nick Kantar, Sean Clayton, and Chris Hogan. They are all donating at the level where we thank them every single episode.
Starting point is 00:00:28 if you would like to support the show you can go to softskills.audio and click support us on patreon thank you very much and every time you support us we increment a reference to you and eventually we'll garbage collect you when you stop supporting do we no it doesn't work that way you'll never be garbage in my heart but you will be collected do you want to read our listener comment oh yeah sure so we got this comment this week uh it says this is a comment on episode 135 which was about publicly correcting speakers. It says, I've been in a very similar situation to the question about correcting speakers and it went well in the end. At my last job, once every two weeks, developers would get together and present a challenge that they had overcome or something
Starting point is 00:01:10 new that they were learning. This speaker was talking about a new framework and said something that I knew was not true. I didn't want to correct them on the spot, especially because I was the only manager in the room. So after the meeting was over, I fired the speaker. No, I'm kidding. good job uh seriously i quit the company sorry kidding again no seriously i sent an email to the speaker saying that there was a mistake in what that was said and what the mistake was the first answer was that there was no mistake i sent back the documentation and pointed out why it was wrong then the speaker replied oh yeah you were right sorry no problem i just asked this person to send an email to everybody correcting
Starting point is 00:01:46 the information which they did in the end everybody got the right information and the speaker was not embarrassed win win or if they were they were embarrassed privately privately embarrassed that's my permanent state though so that's fine cool thanks for sharing that yeah all right i'm gonna read the first question all right this is from a listener named uh mikel maybe yeah what's the best approach to connecting with people who know about specific technologies that could help me if i have a question and what's the best way to cast a net via co-workers friends and family the details of my situation are that i'm trying to build a postgresql okay holy war is it Postgresql
Starting point is 00:02:21 PostgreSQL Post GreSQL Database from scratch and I'm running into lots of problems I spent two hours digging through the Postgres documentation I asked questions on my University Slack channel and even the PostgreSQL Slack with no answers
Starting point is 00:02:40 I also reached out to my boss But I still have no answers In any case, I'm just happy I had the wherewithal to walk away after two hours instead of spiraling into an absolute rage and wasting my night cursing post-gre-S-Q-L. Just an editorial comment. Jameson added all the mispronunciations.
Starting point is 00:03:00 I'm just covering all the bases, however it's pronounced. You know, on a slight tangent, the most surprising database pronunciation I have ever heard is the database that most people call SQLite. SQLite? Or SQLite. Do you want to know how the creator actually pronounces that? How?
Starting point is 00:03:18 Esquilite. Oh, I thought you were saying sequelite is the surprising pronunciation. No, I heard sequelite and esquilite. Sequelite is more common, I think. But the creator actually says esquilite, and he says it's supposed to be like stalactite or something like that. Huh. Yeah. Is that the one that grows up or down?
Starting point is 00:03:35 That one grows down. I wonder if there's some performance metaphor that I'm not smart enough to get. I could be misremembering the metaphor, but I don't know. Anyway, I was just, I was so dumbfounded because it's like, no one has ever argued that. And anyway, I listened to an interview with the creator and that's what he said. So there you go. That's what you got from the interview. I literally remember nothing else.
Starting point is 00:03:58 Okay, so. PeopleLite is a program that helps start debates over how to pronounce it. And it maybe does some other stuff too. Turns out there's a lot of programs that do that. All right. Like, for example, for revision control, I use Gite. okay let's get back the g is silent it's just it stop it okay uh yeah so how do you how do you get answers to your specific technical questions
Starting point is 00:04:25 i think if you switch to mongo then you won't have to worry about sequel anymore yeah the problem will have no sequel that's right that'll cut out a whole class of problems if you switch to serverless you might not have to worry about mongo anymore because you won't have any anything or if you just retire then you can forget about all this stuff you can distill all these technical problems to one simple problem which is how do i feed myself stack overflow does not have an answer for you oh shoot i made a poor mistake huh this is interesting what do you think well so there's a little bit more to the question that we edited out there's a lot of specific details in here about various different database features that Mikkel has tried to use to solve
Starting point is 00:05:13 his problems, including constraints and loops and all kinds of different things. And I've seen this kind of question asked before where it's like so many details about all the things you've tried, but not a lot of like distilled, boiled down, basic, like fundamental question that you're trying to answer. You know, have you seen that kind of question before, jameson i've asked that kind of question before yeah yeah it's like i don't sometimes i feel myself doing it when i don't know enough to distill my question down so i just throw everything in and hope that in there there's a clue that someone reading will be able to pick out some meaning from yeah so yeah yeah i've done that too and i'm it makes me remember a framework i used to
Starting point is 00:06:00 reviews, well over 10 years ago, where if you wanted to report a bug to the framework creators, one of the requirements was that you provide a minimal compilable example of the bug in action with their framework. And I always thought that was kind of a frustrating burden to put on a bug reporter until the first time when I went to report a bug, and I'd had to create a minimal example of the bug in action. And I just couldn't, right? Like outside of my app, I couldn't reproduce the bug. And it occurred to me that that little exercise made me realize that I actually didn't understand what was going on here. And there may be other things at play outside of the framework itself, like things that I had caused. And I really like that. I really like that mantra that
Starting point is 00:06:38 you want to distill the problem down to its essence so that you can communicate what the problem is. And a lot of times when I do this, I find that I can solve the problem without actually asking someone else. Have you heard about the XY problem before? Oh, yeah. Yeah, we have. It's been a long time, but we should reiterate it. This is totally good. Okay. I'm going to steal it from the first DuckDuckGo search result. The XY problem is when you ask about your attempted solution rather than your actual problem. So you want to accomplish a task, you have something that you're trying to do to accomplish that task, and you ask about that thing instead of the actual underlying need. And I feel like that can come up a lot in technical questions too, where you're
Starting point is 00:07:16 asking, how do I use these specific Postgres features correctly? But there's something you're trying to do behind that and that might be the better question to ask how do i have a one-to-many relationship or whatever it is um and i i think the distillation you're talking about is often distilling it down to to what problem you're actually trying to solve if it's a question not a bug report necessarily yeah like um i'll go ahead no you go ahead oh i will go ahead i have uh friends who got into some wordpress development from a non-technical background and they are picking up programming by getting specific tasks assigned to them. And they go about trying to solve them without ever having this deep grasp on the underlying fundamentals. So they end up doing
Starting point is 00:08:03 this kind of thing a lot where they ask very detailed tactical questions that include a lot of context around what they've tried and how it's working. But the solution is often there's some programming fundamentals or language or technology fundamentals that apply broadly to lots of different questions that might help you and and the focus on this specific tactic obscures this underlying lack of knowledge does that make sense yeah i think so it's it's not like they're dumb no they just they they're focusing so much on solving this specific problem that they they almost don't have time or haven't spent enough time to get an understanding of the fundamentals which would apply to this specific problem and you can still have like tactical questions if
Starting point is 00:08:44 you understand the fundamentals but yeah a lot of them can go away yeah the more basic ones like i'm just trying to think of a wordpress situation without getting too technical it's almost always something with javascript and some like i don't know we need to like make these drop downs interact in this specific way and we found this code on the internet that kind of does the thing and it's not quite working when we apply it to this context and it's yeah to be clear i'm not saying they're like not smart for not knowing this stuff it's just there's there's these common patterns that occur across questions. So I feel like the thing to take away from that is you kind of need to balance these very tactically task-oriented questions with investing in understanding the
Starting point is 00:09:24 technology that you use underneath. And ideally, you kind of do them both at the same time. And that makes it easier to understand or answer these task-based questions. Yeah. Yeah, totally. I mean, I totally get that. And I think this is pretty common to people who are new to the field as well or even not new to the field but new to a particular technology you know and it's like you just kind of sometimes have to spend some time studying the fundamentals before you can even really ask the right questions like an analogy that i thought of was if someone came to you and said hey my shoe's not working and they were like i've tried here are all the things i've tried i've tried different laces different sizes different colors but after everything like my hands are
Starting point is 00:10:02 still cold you know and yeah it's like oh well that's because you're using the shoe in the wrong place right it goes on your feet for your hands we have this totally other thing and if you had studied apparel theory then you could have known loves science yes finger science yeah anyway you know i think we often come asking questions we ask too many details that are ancillary to the problem instead of really understanding what our problem is at like a base level and then communicating that i i feel that viscerally when i'm in an unfamiliar technology i just struggle to even clearly express the questions that i'm facing yeah and i when i work with a thing i'm an expert in i still have questions that pop up but i feel like i can frame them a lot more easily
Starting point is 00:10:49 and i feel like i can give the right kind of context to help someone cut to someone that knows or might know the answer cut to what i'm actually asking yeah sometimes when i'm in a new technology and I know how I would have accomplished something in an old technology, I will sometimes say like, well, here's how I would have done this in this old technology. Is there an equivalent way or a different pattern in this new technology? Sometimes that helps give people a concrete like anchor point for them to make recommendations on how to solve your problem. Make sure you stick in some little barbs about the new technology too. Like here's how I would do it in this old good thing. But since I'm stuck using your new stupid thing, it's too primitive to implement
Starting point is 00:11:27 an old good solution. How do you cavemen solve this problem? That usually gets people to answer your questions. Yeah. All I have are these two rocks to bang together. Well, I feel like the answer we gave Mikel is like, go learn all of Postgres. I think it's good general advice. I don't know how it helps him in the specific though. Yeah. I mean, if you're brand new to a technology like postgres and you have a problem you want to solve i think this is where i would spend time going through like tutorials reading like introductory documentation um instead of like diving straight into the errors you're seeing and googling those and then reading the docs that come from those error messages i would say start over and try to figure out like what is the
Starting point is 00:12:12 postgres way to do what you're trying to do and even asking that kind of a question can be a more helpful than saying like well i you know why are my why are my constraint checks failing you know I mean, that's attacking the fringes when I think maybe you need to go to the basics. And I'm reminded of a coworker I had who was really good at this. I think Jameson and I are similar in that we actually like to solve problems by, or sorry, we like to learn new things by having a problem that drives us through the process of learning it, like a task we're trying to accomplish. But I, and that works.
Starting point is 00:12:42 I think that actually works for a lot of people. But I had a coworker once who he could actually sit down and just like read the documentation for something new say it was postgres or whatever and build up like this foundational layer of understanding of the technology before he would actually try to apply it to any problem and what i found is that he went down a lot fewer dark alleys and he had a lot he had good answers to questions as they came up rather than just kind of like trying something out seeing that it failed asking how's that overflow you know attacking the fringes i don't know it took a lot more time up front and more maybe motivation to do it but in the end i think he spent his time a little bit
Starting point is 00:13:18 more effectively than i tend to i certainly don't have time to invest in learning up front that'd be way too slow i have problems to solve yeah yeah i don't have time to read for 20 minutes i have it'll take me two hours to find the docs to accomplish the specific task um i also think you might want to explore a little bit more in-person time with uh if there's somebody who knows it's i found it's often easier to get for asking a specific targeted question asynchronous chat or stack overflow or those kind of methods works pretty well but if if i'm just like what even is a postgres i i feel like i benefit more from talking to somebody about it because i can ask broad questions and get quick answers and like figure out okay i'll dive into that thing later and
Starting point is 00:14:06 i can cover a lot more ground and get more of an overview and that helps me more at the beginning where I don't have that much of an overview or solid understanding. Yes. And in person, they can ask follow-up questions to help narrow the search space that they're trying to answer questions in. Yeah, yeah.
Starting point is 00:14:23 Like if someone came to me with a question that was just kind of a big brain dump of all the issues they've encountered, I'd be like, okay, tell me what you're trying to accomplish. Let's walk through that. And then maybe I can recommend some courses of action. Yeah.
Starting point is 00:14:33 What if they just came and were like, Dave, what's the big O of Postgres? oh yeah that's a great question is it no well your meta question your meta question is the great question the question itself is terrible but how do you answer that's a good question no because seriously like that that question betrays a lack of understanding of the concepts that are being asked about right and so how do you say that to someone like well you clearly have no idea what you're talking about you know like yeah i think i i think that's where a face to face conversation helps because then like you said you can ask a bunch of follow-up questions
Starting point is 00:15:12 like why why do you need to know the big o of postgres yes and what do you think big o is before we go any further yeah and what do you think postgres is and what is is actually but seriously like coming coming to people like you want to minimize the effort it would take to answer your question and so if there's like fundamental errors in your question um it's hard for someone to be able to answer it especially in written form you're expecting them to like take time and write down an answer to you when there's like some fundamental assumptions that are wrong in the question you're asking you want to sort those out i think in person before you go with these like targeted specific questions yeah i think you're right i agree okay question answered question
Starting point is 00:15:50 answer good luck with your sql and let us know when you abandon it and embrace no sql uh do you want to read our next one yeah this one comes from an anonymous listener who says should a team lead do technical work or restrict him or herself to people management what are the pros and cons from each approach hr and my company wants to change from a unified model of team and tech leads a single person performing both roles to a split model where you have one team lead with multiple tech leads that hold no people management responsibilities and i'm not sure what to think about this i feel not having the team leads quote on the ground will make them less effective in the people management aspect?
Starting point is 00:16:27 Great question. This is like a question for the ages. Yeah, I feel like lots of medium think pieces are written about these issues. Have you worked in both of these models? As a matter of fact, I have. I just had to think. I don't think I've ever worked in the model
Starting point is 00:16:42 where there's a formal engineering manager and also a formal tech lead. And those are two separate people. I have worked in the model where there is one and they're both the same people. And then I've also worked in just like startups where simultaneously all models and no models at the same time.
Starting point is 00:16:58 But I haven't worked in the- Everyone's a tech lead. Yeah, we're all tech leads. It's flat. We all make decisions together based on popularity of the person proposing it. Based on who's out of the office at the moment when we made the decision.
Starting point is 00:17:11 To become the tech lead, you must bully all the other people. Yeah, so I only have half of the perspective on this. So you have not worked with a dedicated people manager? Yes. Yeah, I haven't worked in or around a place where there's a dedicated people manager separate from a dedicated tech lead. I, right now, am the dedicated people manager and dedicated tech lead at my current position. Okay, so you are not dedicated. You are the split personality.
Starting point is 00:17:40 I'm real dedicated to my job, Dave. I'm offended. Double dedication. Yeah, okay. The opposite of what I said. I am the people manager and tech lead. You are the unified model from the question text here. yes um and that one and so the proposal from hr in this question is to split you into two people yeah i um immediately dislike it okay i like both of my halves yes it would hurt a lot and plus if i was the tech lead i would have to be the left side would have to be the tech lead because i imagine you'd be writing on the whiteboard but then the right side would be the manager and then how would i type my emails if i'm left-handed with only my right hand well
Starting point is 00:18:16 You can probably click the accept button on your calendar invite still. I just have to switch to Gmail and count on their auto-generated responses for every problem that ever comes up. You're just banging the enter key with your face. Half of my face. Yeah, I want to hear your perspective. This is a long way of saying, Dave, tell me your wisdom because I've got half of the wisdom. So let's see here.
Starting point is 00:18:39 I'm thinking back over my long, illustrious career. First company was mixed or combined, unified. unified second company was unified uh the next company was unified and now i work at a company where they're split are you there still i mean can you tell can you tell if you like one model better than the other there's so many variables between all these different companies i'm sure but do you feel like you can say this thing worked better in this model um separate separated from all the things that were different at the companies besides that i can tell you i don't know if i i actually don't know if i have a preference i think i've been fine with all of them but i can definitely
Starting point is 00:19:10 tell you some of the differences. And I can say that, yeah, here you go. At a company where they are split roles, where you have dedicated people managers and dedicated tech leads, there is a much stronger focus on career development and people development, because that is basically the full time job of the people manager. That's not actually the only job they have. They also have to do like roadmap management and resource allocation and other manager things. But they spend a lot of time on people development. I've never really seen that at other companies. And I think related to that fact is we also have very clear and rigorous guidelines for what it means to grow in your role to the next level. I've never seen that in any other company, never seen it as
Starting point is 00:19:51 clearly articulated. So that's one area I think that is significantly different. It seems like it could devolve into the people manager pushing for stuff to get done faster and the tech lead pushing for stuff to get done right. So they're a little more at odds in terms of deadlines and deliverables. And there's more of a balance there versus if they're in the same role. Does that come up? I could see why you would think that, but that has not been the case in my experience. Because the people manager, while they own the roadmap and delivery on that, they also own things like the well-being of the engineers. And in some cases, I think that might actually trump the deliverables. And so I think they have the right incentives because they know
Starting point is 00:20:34 that if they start losing people, that they'll be unable to deliver on their roadmap and commitments. So yeah, I haven't really observed that. I've observed the opposite of that. Interesting. But that might actually be more a function of having proper resourcing and not being shorthanded all the time, you know? Yeah. Yeah. I feel that not having the team leads on the ground will make them less effective in the people management aspect. I don't think I understand that question because you don't have to be, right? If you're a tech lead, just don't worry about that.
Starting point is 00:20:59 Don't worry about the people management. Oh, I think what they're saying is that having dedicated people managers will make them less effective at people management because they will be less connected to what people will be less technical. Yeah, that's what I think. And and I have definitely observed that what ends up happening, though, is that the people manager can have a little bit less of a biased view, because they aren't like, let's say you have a co worker who makes a lot of errors in their code and causes a lot of issues for the team, the people manager has kind of a bird's eye view of that they aren't directly impacted. Now, what if your team lead uh was also your people manager and your team lead was now burned by some of the bugs that
Starting point is 00:21:35 this co-worker wrote now i think they would have a bias because it's like oh yeah i remember that co-worker they wrote this bug it was terrible oh it look it's performance review season you know whereas a dedicated people manager burned like well it's like now my lead would how would have to go fix it no like let's say i've got a feature i'm trying to develop but i get blocked because of some bug that someone else wrote on the team and i'm also the team lead and people manager and so now I have this bias where I'm like, I couldn't do my job because you caused this problem. And on the one hand, it's good to have that firsthand information. But on the other hand, I kind of like to have someone who's outside of the situation who can now take more like a judge, you know, who
Starting point is 00:22:11 can take perspectives from all the team members, including the person who wrote the bug and the people who were impacted by the bug, and then judge, you know, what the impact was, and then make appropriate accommodations on your performance review. So I don't know, I think it might create a less partial situation where you can do a better job of judging people's performance. But on the other hand, like you say in the question, because you're not on the ground yourself, you rely on secondhand reports. So my experience is I always feel like I am doing a very crappy job of everything because I'm doing so many different things at once. So I feel like I'm 50% of a tech lead because that's half my capacity, actually less, but I don't have the capacity to devote to
Starting point is 00:22:51 it as much time as i think it deserves but every second i devote to that is seconds taken away from all these other things that i have to do so part of me wonders if it wouldn't be nice to split those responsibilities more so that i'd be able to focus more on on one of them or the other yeah but the other part of me thinks jameson your job is to say it depends and everything's in the middle and there's got to be trade-offs so like there's got to be something else bad about it right i feel like you're you're pulling towards splitting them and i feel like i have to end up in the middle okay what pulls it back back to like unifying them yeah we already mentioned the lack of technical expertise that might come up well but even that seems i feel like if you have a technical
Starting point is 00:23:32 background you might not necessarily need to be a technical expert in the specific product or thing that you're working on and that that counts for a lot as a people manager yeah yeah i mean it does however and i and this will help pull it back a little bit i think it puts now more burden on your team to keep you up to date with what's happening because like i said earlier everything you know about like the quality of the code and the process effectiveness and things it's all second-hand information now to you because you're not directly participating in it which means it's up to your team to report it to you and the accuracy of those reports governs now your knowledge and and that's kind of a crappy situation to be in because when you get a real-time question
Starting point is 00:24:11 And it's like, hey, what's going on with this? The only thing you can do is turn around and ask your team, right? And so it creates a little bit of inefficiency in communication too. Yeah. I also feel like I still don't think I have a good handle on where exactly the responsibilities fall between tech lead and people manager and how you make it clear to everybody who does what and who's responsible for what. Maybe that's just a cultural thing and you just have to define it and tell people. but it seems like it seems like you could get into a case of it's it's unclear who decides or who helps guide decisions and and like does the people manager trump the tech lead if they disagree
Starting point is 00:24:46 what happens like well i think that does end up happening um and you end up having to ask multiple people's opinions to make important decisions so like yeah i think a lot of times the people manager at least in my organization has to sign off on stuff and you would i would never proceed with a major like architectural decision without consulting them um and i think if a team member wants to propose something uh they now have to pull more people into the room to get it done so that's kind of a drawback but it's also good to have more eyes on it you kind of have multiple perspectives so for things that have long-term impact and high risk it's good to get more thoughts but it is more overhead yeah it probably depends on the person too i could see some people
Starting point is 00:25:23 thriving or or totally floundering in one or the other of these environments if you have a just a purely technical person who gets pushed into people management who really doesn't want to do it then the combined model stinks because they have to do this part that they hate in order to increase their i don't know whatever they want influence or pay or something that they're getting by by taking this role where if they're split then they get a focus on one part of it i feel like i'm kind of the opposite where i i really like different aspects of both of these roles and if i just were in one i'd be like but i want to oh yeah i want to talk about architecture or like whatever the other role is get back in your people manager box yeah why don't you send some
Starting point is 00:26:03 more emails loser i also think that the the set of people who are good at both being providing technical leadership and good people management is actually a pretty small set compared to the set of people who are good at people management unioned with the set of people who are good at technical leadership and so i think your hiring pool is actually pretty slim when you're looking for that kind of a person yeah it's slim or you're willing to accept trade-offs of maybe they're weaker in one area but stronger in another yeah yeah and these are both super they're deep disciplines there's a lot to learn in both of them i feel stupid saying it because it seems so obvious but you could focus your whole life on one or the other so you're you know you're spreading
Starting point is 00:26:46 yourself thin yeah i think i've arrived at my consensus of it depends i'm satisfied i've talked myself there all answers are good answers yeah it doesn't matter do whatever you want because there will be sucky things about both of them and uh any success or failure that happens in the world is due to randomness it's not your fault yeah it's not your fault everything is the same no decision matters you change a thing and then if stuff gets better then it didn't it didn't it wasn't because of that thing and and that's my official the beauty of this question is it says that hr wants to make this change so if anything goes wrong it's hr's fault that's a comfortable place to be in to blame hr for things i feel like everyone will be like oh yeah i understand
Starting point is 00:27:27 all right question answered well yeah question if our listeners want to blame hr for things uh where can they go do that talk to our hr department uh run by one dave smith you can submit complaints to dave smith at softskills.audio there's an ask a question button that will go right to the top of his hr priority to do list thank you very much for listening if you enjoy the show please share it with people tweet about it however else you want to share it we'll let your creativity go and we'll catch you next week

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