Soft Skills Engineering - Episode 96: Teaching Burden and Unknown Unknowns

Episode Date: February 17, 2018

This week Jamison and Dave answer these questions: I know that teaching others is important when working on a team so that the team can grow and get better. But what happens when one member of the... team, despite being the friendliest person in the world, is missing so many required skills for his job that it becomes impossible for me to do anything besides teach him? I recently heard the concept of “known unknowns” and “unknown unknowns”. It’s the unknown unknowns that get me. Sometimes I ask a question of a seasoned developer and they seem annoyed because it’s something that I could have looked up. They knew it but I didn’t. Sometimes I ask a question and they are eager to help because the question is interesting and they know it will be good for me to learn. I struggle because I don’t want to waste my time or theirs, but I want to work through things and learn. How do I do this well? Wikipedia has a whole article on the origin of the phrase “unknown unknowns”. Also, Gary Bernhardt has a fantastic talk called Ideology about “unknown knowns” - things we believe in software without even realizing we believe them. Hoobastank.

Transcript
Discussion (0)
Starting point is 00:00:00 It takes more than great loop unrolling skills to be a great engineer. This is Soft Skills Engineering, episode 96. I'm your host, Dave Smith. I'm your host, Jameson Dance. Soft Skills Engineering is a weekly advice show for software developers about non-technical questions. You bring the questions, we bring the answers. We do bring them. We also bring thanks to our patrons.
Starting point is 00:00:19 We want to thank Dustin Coates and Michael Collier for supporting the podcast on Patreon. they support at such a prodigious amount of money that we thank them every single time and then and then we lie on our bed full of dollar bills that they've given us and you can support us too by going to patreon.com slash soft skills eng or just go to our website softskills.audio and click support us thank you so much to all of our patrons yeah thank you do you want me to read the first question you know i do okay this is from an anonymous listener they say i know that Teaching others is important when working on a team, so the team can grow and get better. But what happens when one member of the team, despite being the friendliest person in the
Starting point is 00:01:00 world, is missing so many required skills for his job that it becomes impossible for me to do anything besides teach him? This person is an HTML CSS master, but wants to build a web app with zero knowledge of JavaScript backends or databases. He expects me to teach him everything, and he's so friendly, it's hard to say no. How do I get out of this situation? Wow, I can get free training by just being friendly? That's awesome.
Starting point is 00:01:24 My whole career I've built websites with zero knowledge of JavaScript databases or backends. Through the power of friendliness. Friendliness is the most powerful programming language. You program other humans to do work for you. It's pretty good, but it's not as good as friendliness plus plus. I don't know. that added a lot of weird weird foot gun features your friends sometimes just show up at your house in the middle of the night and stab you it's hard to know why well they did introduce classes and
Starting point is 00:02:04 you can learn things by taking a class oh i thought you're gonna say divides humans into classes a class system yeah oh i hope everyone got that joke but if not you know whatever there are classes in lots of languages i know but it was the c++ from c to c++ it added classes that was the joke uh and now it's better because we explained it that's the law of humor um yeah this is a good question there's i i found that the expectations for how much time you devote to training new people varies wildly from company to company and even team to team some companies have a really deliberate emphasis on they'll have like strict curriculum that people go through and you even spend a lot of your time when you first start the job kind of going through
Starting point is 00:02:56 it some companies just throw people in the deep end i would say that's more the more the norm some people will have a defined your startup bias is showing now i think without yeah that's true it is my startup bias that's the norm at startups for sure um some people have a defined kind of mentor assigned to them when they start someone they can go to with questions. Yeah. Um, some people are just like left on their own to approach the group. Uh, yeah. So I think the expectations depend a lot and it would be, it would be valuable to you to find out what the expectations are from your company for training this person. Cause if they really expect you to help them out and spend a lot of one-on-one time with him and you don't do it, then that's, that's no good. Yeah.
Starting point is 00:03:39 Um, if they don't and you spend all your time doing that, then it'll probably come back to bite you in the form of you getting a lot less work done. And then when you say, well, it's because I was spending time helping this person, they'll say, well, you should have been doing this, help them a little bit. Don't help them instead of do your job. What do you think the chances are that a company would want this developer to take this other developer from zero to full JavaScript competency? is that do you really think that's likely in this scenario i think it's unlikely i mean maybe they
Starting point is 00:04:12 are hired with that explicit expectation it seems more like they were hired to do something else and they want to get into this maybe they were hired as a designer who can code who can who can do ui stuff or something yeah that's that's probably what's happened i'm gonna guess it's unlikely that your management wants you to do this like full time yeah yeah but i think jameson is very wise especially when he said why thank you yeah especially when he said you should go ask your management how much time they expect you or think that would be best for you to spend doing this they might not be aware it's even happening yeah sometimes i don't remember what they said their job title was but sometimes a a common metric for judging senior developers is do they help level up
Starting point is 00:05:02 people around them for sure and so if if your boss is if your boss is open to the idea of helping somebody of you spending some of your time doing that then you can you can use that to demonstrate progress towards goals that help the company basically but if they just don't care then then you got to kind of do it sneakily while still getting your work done and it probably approaches it probably affects how much time you spend on it i see an opportunity for cross training what if he writes all the sql and you write all the css and you help each other okay so you both stop doing any real work and train each other up on this stuff you know nothing about then you're both codependent
Starting point is 00:05:44 they can't fire both of us and then they're like why can't we i'm pretty sure we can and we're gonna hire a css expert and an sql expert to replace you jokers and like a good company we're gonna put them in silos where they can never talk to each other this i think this tension is pretty common though i feel like i've experienced it several different times of wanting to help people and wanting to get stuff done too and i don't want to appear unfriendly and grumpy and turn people down but all the time i spend helping them is time i will not spend accomplishing the stuff that i said i would accomplish that's right how do you balance that stuff in just in general so i think well i don't i don't know in general i
Starting point is 00:06:33 think in general that's like that's like the life journey trying to figure out that how do you do i had my hopes up you're in general answer that can you give me like a general theory of doing life well i think if you had one you'd put it in a book and sell it and have a picture of you smiling with your thumbs up on the cover and you'd make a bunch of money yep and in the inside it'd be like you'd read it all and you'd be like i feel good i don't know what i read but i feel good i should buy more of that guy's books you forgot to say i'm on the cover with two thumbs up wearing a suit and a long shadow
Starting point is 00:07:10 do not forget the long shadow yeah very trendy right now i'm told by my designer friends i think your designer friends hate you i think they're sabotaging your motivational speaker career so i think in this case what you're dealing with is a scarcity problem where you have a scarcity of your own time that you're trying to meet meter measure meet mead meet what's the right word here meet like meet out yeah that's what i was thinking m-e-t-e or something yeah that's a word right yeah i think so it's basically a fancy way of saying like allocate and measure dole huh is that right it uh dispense or allot justice a punishment or harsh treatment okay
Starting point is 00:07:57 that's not what i was thinking you gotta come down hard on this guy dispense the justice okay let me rephrase that this is a scarcity problem your time is the scarce resource and you're trying to figure out how to share it you know there's a reasonable amount of time that you can spend helping a developer level up a single developer level up on a skill they don't have right maybe that time is four hours per week or one hour per day i don't know it this is where you have to make the call but i would sit down with this developer and say i love helping you and i want to help teach you everything i possibly can i think that i need to set a time limit of four hours per week to dedicate to this and then i expect you to put in that time outside that to
Starting point is 00:08:43 get up to speed on your own and i think if if we do that we can probably be i can be successful and you can be successful right and then get i would start strike up a little agreement with them and then uh you know offer some online resources books whatever and then let that play out and it could very well be that this is a course that leads them to failure but don't let it lead you of failure as well it could also be a course to huge success for both of you where you can cross the finish line later and be really happy that you did it together but i you can't put in more than you have right yeah yeah i like that approach of putting it back on the learner to be a little more proactive and maybe come prepared to some learning time like if
Starting point is 00:09:24 you limit it to specific times it's it's different than if you're just the go-to person to ask to ask questions that sometimes turn into really long answers. I worked with someone who was, I would say they were the best learner I ever worked with. They were the most deliberate and did the most on their own to learn things. And we had a weekly meeting. So I don't know what they did on their own.
Starting point is 00:09:45 I just know every week they knew a lot more. But we had a weekly meeting. They explicitly approached me and were like, hey, I want to learn a bunch of stuff. I want to meet with you every week. I'll bring you this list of questions that I've worked on over the week and we can just go through them all.
Starting point is 00:09:58 um and so that's what they did every week there was this long long list of questions that they'd come across during the week that they kind of batched up and we went through them and some of them were short answers some of them were um kind of pointers to go learn larger things but it was just so deliberate and focused on using time effectively and not being overly distracting or overly burdensome on other people that's awesome yeah i don't know that that approach would work for everyone this person was super motivated and driven to to do stuff on their own and very capable of learning stuff on their own and lots of people learn differently than that but but for me it was it was the lightest burden of like training up someone more junior yeah that
Starting point is 00:10:42 that shows like a great deal of respect on their part too to say you know i want to respect your time and make sure i'm using not too much and what i am using i'm being very effective with it i think that's awesome yeah have you have you stayed in contact with them yeah what what has their career gone toward at this point like where are they well after they worked with me dave it just took off no they've done fantastically well once you left the relationship it took off did i read that right they got rid of the dead weight once they cut away the ballast holding back no they've they've done really well they've they've learned an amazing amount of stuff they're they're very accomplished and knowledgeable in their field that's awesome well that's fantastic
Starting point is 00:11:21 so it sounds to me like you know the put the reins in the hand of the learner while also balancing with your own management's desires for you and then let let it play out right like you can't can't you can lead a horse to water you can't make them drink that's a metaphor i've heard once yeah i don't know what it means i've never led a horse to water i act i literally have and you know what they drink every time horses are terrifying they are i'm scared of them they're huge i have quite a bit of experience with horses from my childhood believe it or not huh yeah i'll save that for a story for another day okay i was trampled once what yeah oh my gosh yeah all right have we have we answered the question how on earth
Starting point is 00:12:10 did we just get to that i don't know uh i don't know that's just whatever start magic the question is definitely answered i think okay do you want to read our next question dave yes this comes from a listener named travis travis says i recently heard the concept of known unknowns and unknown unknowns it's the unknown unknowns that get me sometimes i ask a question of a seasoned developer and they seem annoyed because it's something that i could have looked up they knew it but i didn't sometimes i ask a question and they are eager to help because the question is interesting and they know it will be good for me to learn i struggle because i don't want to waste my time or theirs but i want to work through things and learn how do i do this well
Starting point is 00:12:52 do you want to explain the idea of known unknowns and unknown unknowns really quick i do want you to explain that idea oh okay so known unknowns are things that you know you do not know okay like i give an example of you i think yeah i i don't know how far away the earth is from the sun but i know that that's a thing that i could go learn okay i know that i know that like the earth is some distance away from the sun okay um unknown unknowns are things you do not know that you don't know like maybe there are secretly invisible aliens hovering around us all the time and i don't know what their culture is like because i don't even know they exist right like you don't even know to think about yeah or like in computery terms if you're a new
Starting point is 00:13:44 developer you might know that you don't know the syntax for like a for loop but you might not know that like database replication is a thing and so you don't even know that that's a thing you could go learn more about how to do or sometimes you might not know like that there's a name for a style of programming like a yeah functional programming or something you might not might not have even known there was a whole discipline called functional programming and yeah yeah yeah that's a good way to describe it uh okay so that's an unknown unknown uh and then we have known unknowns and so this guy's struggling with the unknown unknowns in other words we don't he doesn't even know travis doesn't even know what question to ask sometimes is that what he's saying i think
Starting point is 00:14:26 so or maybe he's saying that sometimes he asks a question and doesn't even realize it's something that he could have looked up because he didn't quite know how to search for it or something i think all those apply it's even a little bit yeah to me this question is easier to answer from the outside looking at travis than from then from travis's perspective because it's not always true so if i'm if i'm if i'm on travis's team and i'm a more experienced developer um it's it's a lot easier for me to notice well is it maybe yeah okay i think i'm just gonna start to say nonsense and see how it feels coming out of my mouth yeah it's not bad already when when you are struggling with something it's hard to think is this a known unknown or an unknown
Starting point is 00:15:18 unknown because you don't know it either way but i think it's a skill you can get better at developing is knowing or realizing hey this thing i don't know like i could i could just look this up somehow versus to me unknown unknowns you need some kind of outside perspective to tell you hey database replication is a thing or hey invisible aliens are all around us or whatever whatever just just hint to you that this concept exists and then you can go learn it yeah and like Sometimes it just takes one word, one keyword, right? Yeah, like, Hoobastank. And then you have a vision, your mind is opened.
Starting point is 00:16:01 I don't know. So if I am not Travis, if I'm a more experienced developer on Travis's team, I don't want to spend my time teaching known unknowns. I want to spend time introducing unknown unknowns. So I would want to say, hey did you know that databases can replicate and sometimes when you need uh better better failover or better read performance or a bunch of different reasons
Starting point is 00:16:26 you write stuff to different databases sometimes it does it for you in the back end like that's a thing we do go check it out and then it'll make more sense why we use this i don't know this particular library this specific way or i i think the disconnect here when between the question asker and the question um what's asky is that uh the question asky the person who's getting asked they they sometimes don't know what you don't know so if you say a question like why do we write to two databases like it's a you know and and the person assumes you already know what replication is and why we replicate but you do yeah then they're like oh you're an idiot that's like what you want that's my fear yeah exactly every time i ask a question i'm like
Starting point is 00:17:10 i hope they don't think i'm an idiot i hope they just think i don't know this and i think sometimes when people come to me with questions i'm like okay do they really not know what replication is or you know like do i need to explain that and then sometimes i waste my breath right because they already know what that is and i just misunderstood the question or something so it's real this is just hard human communication is hard about especially about technical subjects yeah i'm experiencing this at my new job there's a lot of stuff that's very familiar and there's a lot of stuff that's very different so some things there'll be a conversation going on and i can chop in and participate productively and some things i'll say a word that doesn't make any
Starting point is 00:17:50 sense or like i'll i'll be in a meeting and i'll be like there was this word in the title that we've been saying over and over again what is that and then they'll realize like oh he doesn't even know yep anything about this and but i don't feel bad about asking about unknown unknowns because to me there's not really a way i could have known them without some outside intervention or without being born an idiot yeah or just being born a smart person instead of a dumb person born with knowledge and replication yeah i i would like to think that i'm more capable at dealing with known unknowns than i was in the past but unknown unknowns i don't know any shortcuts besides just like be willing to look real dumb and admit that i don't know stuff yeah and i think sometimes you
Starting point is 00:18:43 stumble into unknown unknowns by luck without being in a question asking context because you're just reading something or following an email thread and you kind of put two and two together or click a link to a wiki page that explains things you know and you kind of just stumble into it and go oh there's a whole world here i didn't even know about this you know yeah those are the lucky ones it's when you're in the meeting situation like you're describing and you're like hey guys what's replication yeah those are the painful ones you keep using i see the the word a lot they're like oh http is that what you mean yeah that's what i said what did you think i said totally true so i think um one of the things i would say to travis is that this
Starting point is 00:19:35 basically never changes over the course of a career i've been i've been developing software for 15 years and pretty much this still happens to me at a not necessarily maybe at the same rate it's happened to me for about the last decade which is to say that i stumble into unknown unknowns all the time still and and have you ever heard of greg lamond i have not he's a he's famous among bicyclists he was a famous american road biker are you a bikesman i i am an occasional bike smith i did not know that you didn't know i was a road biker no oh yeah i've been i am what mode of transportation do you not use dave horses bicycles you got it all i took a train this morning oh my goodness trains horses and bicycles those are the three main modes
Starting point is 00:20:28 yeah i think by per by volume of people moved so greg lamon was a famous bicyclist and he commented once on the process of getting better at riding bikes and riding bikes is exercise and it hurts right your muscles hurt it aches it you know it's like any good exercise it's painful and uh someone asked him does it get any less painful he said it never gets easier you just get faster and uh i really like that because it's like oh yeah i'm just getting better at this even though my muscles still burn my legs still ache and as a software developer the same thing happens like you never stop asking questions you're just starting you just move into more and more challenging areas and it seems like it's
Starting point is 00:21:12 unbounded where you know once you peel back this layer of unknown unknowns and discover it there's another one waiting under the surface with even more interesting challenges and then you start to get into the business realm of things and it just grows and grows so there's always another unknown unknown waiting around the corner for you and yeah once it can grow technically and also grow organizationally like once you get into how different large groups interact oh yeah there there are lots of unknowns there there are less i think there are less knowns than unknowns in large group dynamics but you have huge unknown unknown muscles from your right prodigious amount of exercise right and so you're no longer scared of them you know how the awkwardness feels you
Starting point is 00:21:54 know how to get through it um but like just like riding a bike you got to keep practicing and for your unknown unknown muscles to get nice and nice and chiseled yeah where would that make you be chiseled on your brain right your brain just have a six-pack yep just furrow your brow and there's maybe yeah maybe it's your forehead when you lift your hair back like you can see like your brain like bulging out of the top of your skull i think that would yeah i would have a lot of questions that would produce a lot of known unknowns all of a sudden for me okay do you remember the final boss on the teenage mutant ninja turtles video game who was like this brain guy super big brain but like it was his brain was so big he had to
Starting point is 00:22:45 like put it in like a jar or something and he was in a dude it was krang yes krang yeah i know what you're talking about he had this he had this big cyborg guy carry him around in his belly that's right oh that's right he was in the belly krang he has explored so many unknown unknowns clearly yeah around brain physiology and probably like blowing up the ocean i don't even know what his evil plans were but he sure got foiled a lot by our heroes yes i still remember all four of their names and the colors of their bandanas and the weapons that they wielded let's um let's move on before i embarrass myself further okay it worked no one you haven't embarrassed yourself it was all a dream i do you think we answered the question i really like this model of thinking
Starting point is 00:23:41 about knowledge and software it came from donald rumsfeld who lots of people hate um but but he sure had a really good point when he said this and and i think it applies to a lot of stuff and it it helps me have a better understanding of dealing with people that don't know what i know yeah yeah i i think this whole thing has to do with context exchange between people you know it's like you ask a question and when you ask that question you bring with it a whole universe of context that you've piled up and the person you're asking the question of has their own universe of context and they're not in they're not completely identical you know and and one is not even necessarily a subset of the other so you have to do like this tcpip dance where you exchange
Starting point is 00:24:21 data to try to figure out what state you're in um in order to answer the question effectively and learning how to minimize that state exchange that context exchange when you're asking a question is a valuable skill and you can do that by basically putting everything out on the table and not being ashamed of the fact that you have gaps in your knowledge yeah i want to say one last thing which is i think this describes a lot of my day-to-day job as a manager i spent a lot of time trying to figure out how to make unknown unknowns about my team into known unknowns oh basically there are lots of things that i don't know that i don't know about how people are feeling how productive they're being what's the progress on their tasks what tasks they're even working on and i could
Starting point is 00:25:06 just go up and tap them on the shoulder and say like give me give me you as a person give me everything and that would spend all their time and then they wouldn't get any work done so i'm trying to make it so that there there are ways that i can get this knowledge proactively instead of just bug them and interrupt them and yeah i don't know make it something i can gather instead have forced them to deliver to me i like that i heard i heard a great quote here at work not too long ago that said that the software we build doesn't have to be perfect but it does have to be perfectly understood and what that means is that it's okay if your software has weaknesses as long as you know what they are and you can plan for them and deal with it but the the unknown
Starting point is 00:25:50 unknowns are the scary things that can happen to your software that you didn't even know could happen the questions you didn't even think to ask yourself like what happens if our certificate expires on our web servers or what happens if we get a sudden influx of traffic and it's not spread across a wide geographical region or you know like that kind of thing and the only way to really explore these unknown unknowns is to get super creative and just start thinking outside the box and all the things that could happen and trying to then turn them into known unknowns you know yeah because they can't become a known until they first start life as a known unknown isn't that right is that a true statement uh i believe you
Starting point is 00:26:28 it sounds like that happens through crashes mostly post-mortem something crashes and you're like oh that okay exactly it's like sometimes people do pass in emojis instead of json exactly what happens if someone writes a json document that's nothing but poop emojis and posts it to our web server yeah you know what that's fantastic so the idea of a post-mortem or a retrospective is taking an event that gave you an opportunity to discover an unknown unknown and turn it into a known unknown and then to eventually convert it to a known right like you're supposed to like follow it along that process um that's cool i like that i like that it's like a concrete objective for these kinds of events yeah cool
Starting point is 00:27:22 well i think we've answered the question i think so too where can people go if they want to get their own question answered they can go to softskills.audio that's our website there's an ask a question button please submit questions we love it when you do and we read them all and we answer all of them as well just more slowly than we read them so please keep them coming we really enjoy that it helps it helps keep the show going thanks everyone yeah 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.