Tell the junior devs the answer and kick 'em away, right?!
Yeah, let's find a more effective way to ensure the junior software engineers get the help they need.
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
all right it's Thursday December 12th uh I'm just getting plugged in here uh don't usually go to the office on Thursdays but we're doing a Christmas thing so just within the team so that's going to be kind of cool be my first time doing that with the team my team prior Microsoft basically everyone was remote so this thing has been beeping too much we're not doing that this drive um yeah so I'm pretty excited holy crap my neighbors got a ton of stuff let's let's do this okay I'm going to we're taking a detour this is nuts one sec we don't usually go this way ready get ready for it cuz it's coming I don't know if you guys can see out there but it gets crazier look at this yard oh my goodness anyway um back to reality I just got a loop around
here um I think that was worth it um jeez I got a topic today uh I feel like I I either missed a couple comments so I apologize um because I thought I had a handful more to go through and uh I thought I marked them but I can't seem to find them so I just just had a quick check on Reddit uh under uh r/ experien devs um which I always think has something interesting to kind of look at and one of them I didn't even read through the post I just read through the title and figure it I'd give my opinion on it it's actually something I talk about a lot um and I figured it'd be pretty relevant so the topic is going to be about how to give or how to help I guess Junior developers without just giving them answer
and uh yeah I really like talking about this topic because I think there's coaching from two sides on it as an engineering manager this is something I've spent a lot of time coaching people on uh I'm not here to say like I have a perfect solution and I know best uh hopefully if you've seen other videos of Mine by now hopefully you get the impression that I'm not here to tell you like like I I know more than everyone else or my way is the best way but these are just from my experiences so uh friendly reminder that if you want questions answered please just leave a comment below the video Happy to kind of go through your topic uh and if you want something that's a little bit more involved uh and you don't want to write out details in public uh feel free
to find Dev leader on social media and um just shoot me a message and uh just let me know that you want it on code commute you'd like it to be anonymous and uh you can blast stuff away uh I've talked about this before but I had an engineering man manager you know write me a huge email with tons of details to kind of talk through my perspective on it and of course we kept it anonymous because why would I why would I not do that uh but the more detail helps me answer uh you know more specifically the the less detail I have no choice but to give really generic answers so let's dive into it um so I did mention I want to talk about this from two different perspectives we have one the more Junior person asking for help I'm probably going
to start off on this side and the second part I'm covered in doger cat hair holy crap um I bet I wonder I wonder if the cat jumped into the dryer or something this is like freshly clean anyway uh we'll go through from the junior Engineers perspective what they can try to do and then from the more senior uh person's perspective how to kind of Coach them around it because it is a bit of a trap uh when you're getting a little bit overwhelmed as a more senior engineer trying to help Juniors if you don't have experience with it you can kind of make the situation worse or perpetuate it I guess um and good news is I had a I had a fever yesterday and overnight like I slept way better than the night before so um I think I'm on the way to
getting better here but now my throat it's like a little it's not sore but um I don't know little little tickle periodically so I might cough I apologize so from the junior Engineers perspective what can we do um I think something that's really difficult for junior Engineers to balance and it's not like you know I don't blame them uh it's difficult for some people that aren't even Juniors it's uh like how do you balance your time between um trying things out versus getting un blocked and and like we have tools like time boxing things to be able to to kind of help us out with that but if you think about it we have two sides to this spectrum here where it's like okay if you don't do any work you can get unblocked as fast as possible if you just like get assigned a
task and go ask for help right cuz basically you have someone else doing your work it sounds exaggerated because it is but that's one end of the spectrum the exact opposite end of the spectrum as you say I'm not going to ask anyone for help at all right so I am accepting that I could potentially be blocked indefinitely if I can never come up with a solution but at least I will be going to learn and I will be trying things out I will be you know being I don't know like some some type of proactive in terms of like trying to solve the problem but both ends of this like ex of these like the extreme ends of this spectrum are are not super great right um and I I think that and it's going to vary from Scenario to scenario but there's probably
somewhere in the middle that feels pretty good and that's why I was saying to we have a tool of time boxing if you're not totally sure like you can always try to implement time boxing you can ask for Clarity on roughly how long something should take right if you're not sure someone's like here's a task and you're like Okay um you know what's your expectation for uh you know how I should be progressing through this in terms of timelines nothing wrong with that people might not be able to give you a solid concrete answer my apologies sorry for coughing um but at least you might have a guideline right someone might say okay well if you have to go look into this I'd probably spend a day or two on it and you should buy by the end of day two you should be able
to have something up for uh code review or by the end of the week have something up for code review and that should mean that if you're not trending towards that that you should be asking for help okay so like the time boxing part sort of gives you this constraint that you should be working within because that is apparently an expectation if youve tried to clarify it um and again like depending on your level and stuff too uh you can time box Stu you don't have to have someone tell you what the time box is you could go approach things like if you have very open-ended problems to to solve you can say like we might never arrive at the best Ultimate 100% perfect solution because surprise in real life there's not really any such thing and uh instead of just wasting time trying to
like go from like 95% effective to you know 96% effective that's going to take an extra month or something instead of being ridiculous like that you could just say we're going to time box it and like you know we're going to have to revisit this later or it's going to change later anyway whatever we have other priorities we have to shift gears um like let's time box so we can get something done make a lot of progress and then move on to the next priority so as a junior um I think it's really helpful to to try and get some time box and constraints in place sometimes this might be kind of built into how your development team works so if you have a Sprint and um and your team is you know pretty structured around uh Sprint commitments and stuff that can be helpful
so they'll say like okay you have a couple of maybe you have one or two work items to do in a Sprint and the Sprint is two weeks long so the expectation is that and let's just pretend they're equal size right in terms of effort you would do one in the first week and the other in the second week so you have a week for each so again giving you some type of constraint around how to approach your work but the the next part of this that I want want to talk about is really around like um like what you do I guess and how you approach asking for help so what I always say to people is like if you're going to go ask for help assume that this is the very first question you're going to get from the person you're asking they're
going to say back to you what have you tried so far so if you came to me and said Nick I'm stuck on this I would I would want to say well what have you tried so far and there's a couple of ways that this can go right if if you haven't tried anything is it because you're not actually sure what you're being asked to do so I call this like lacking Clarity and honestly I would say if you're lacking Clarity I wouldn't waste any time I would ask for help immediately so someone's giving you a task to do and they're like okay team go off and be awesome and go do your work and you know that's the what we're doing for the Sprint whatever your team happens to do right um and you're like I got this task and I literally don't even
know what it's supposed to be instead of Disappearing for 2 weeks and then at the end going ah yeah I didn't even know what this was about right away like immediately ask for clarity what it is because even if you make assumptions about what it is what if those are the wrong assumptions right you're going to just you're literally just going to waste time either by not knowing and not doing anything or by two uh like thinking you know and it's the wrong thing so if if you don't have Clarity ask for help and Clarity immediately get that out of the way there's no point spending any time being blocked on just not understanding that's part one now if you were to answer that question of what have you tried so far and you said nothing um but it's just because and it's not because
you didn't have Clarity so you understand what the task is you just haven't done anything this is where I would say well don't ask for help yet right you understand what the challenge is you understand what's being asked of you you understand the task at hand go try something right this is it's a it's a good in my my experience so far doing this it's been a really good cue for people to think like if I'm getting stuck but I haven't even attempted anything yet maybe I should do that it's also helping the person you're trying to ask for help because let's say um let's say you've uh you have tried something right like so if they're not even asking you this question you should be prepared to answer it is I what I'm trying to say sorry and the reason for that is that
if youve tried one or two things instead of going imagine you're messaging someone online about this okay these people are cutting into the fast lane and it's not safe because they're not going fast so um so let's pretend you're messaging someone on your team so you're the junior person they're more senior and you message them and you're like hey like I'm working on this task and I'm stuck if they don't lead with what have you tried so far and they just start offering advice what that probably looks like is that you're like oh well yeah I've tried that or they they start walking you down this path and then you realize you know 20 minutes into it you're like oh yeah like i' I've already tried that so you can shortcircuit a lot of that wasted time either by them ideally asking you what have
you tried so far or you letting them know I've tried option A B and C and here's the outcomes of doing those here's why I'm stuck right because sometimes you get stuck because you're like I'm pretty sure I'm supposed to be doing option A and it's not working so number one is there something I'm missing about option A or number two is there an option b that I should have been trying out maybe an option C so having these other options are missing something it's the kind of a scenario that can happen or say you try all three you have three options that you're considering you try all three of them and you're like hey they all work but in this scenario there's three things that work but they're all slightly different in terms of outcome or complexity or design patterns and you might say
well okay like I got two options or three options that work in my opinion right it's it's not it's not like having zero options you actually have potentially too many options that work so you could be working with someone more senior to kind of say like how do we like narrow the Gap here out of these options which one should we be going with right you might say hey this option b is going to take longer to do but I think it's actually going to be worth it in the long term it's more flexible uh extensible testable uh but it's going to take twice as long and the more senior person might say yeah but like if we get that first one done like in terms of priority we're probably not coming back to this for a long time uh it's uh we have other
things that like need to get attention so like it's not like the first option sucks it's just that it's not as extensible we're we're okay living with that these are tradeoffs that you could and should be having conversations about so um again like having having the examples of what you've tried so far is really helpful um I don't know why there's so much traffic right here this is ridiculous so I'm in the fast lane and like there's a price to be in the fast lane so when it's not moving it feels like really silly because I'm paying money and the people to the right of me are actually moving faster than I am and they're not paying anything feels really backwards I know this isn't going to make sense like economically but like in terms of traffic patterns I feel like instead of having a
lane that's paid for what they should do is when the traffic backs up they should just open another Lane better yet why don't they just keep the damn thing open all the time the other side of the road actually has uh like coming back home there is an additional Lane well I mean the shoulder is basically a drivable Lane and sometimes they'll turn on a sign that's like shoulders open for for traffic um you just get an extra Lane of driving the congestion goes way down imagine that um Express toll Lanes $15 silly anyway that's the price of commuting to be sitting in traffic but we get to hang out together right so that's fun um I would also want to remind people too that if you're junior like don't um don't shy away for from asking for help like this can't be said enough
I think um so we talked about a couple things to consider when asking for help right so making sure you've tried some things if you need Clarity um getting Clarity right away time boxing things like absolutely time box things um ask for help on how to time box things if you're not sure right if it's not built into the regular development effort try to ask someone more senior your manager um and you can kind of get uh get the rhythm of like uh sort of the size of an effort level of different work items that you're doing but at the end of the day there should be some mechanism that you feel comfortable with for asking for help whether that's going to someone that you you know you have like a an onboarding buddy that's been set up to work with you or there's someone
on the team that you're building more uh rapport with like anything even your manager right like just making sure that you have some way to go ask for help now to give you an example there's people that are on my team uh and the way my team is set up I have separate feature Crews which are just like teams within the team that are much smaller uh cuz they work on different service areas and um sometimes like those service areas in terms of like the number of people are are quite small and um as someone's getting ramped up especially they're like I spend a lot of time with them because we're talking about being new to Microsoft how to like how things work and all this stuff so it's and it's good like they get they get comfortable it seems like they get comfortable quickly
being able to ask me questions and stuff like that so what ends up happening is especially from like a HR managerial perspective like lots of questions and stuff come in how you know what's the expectation for this that how do we do this that but then as I start becoming more technical these individuals are still very comfortable asking me questions but they're like is always going to be a point where it it's going to exceed my technical understanding in because I'm not actively working in the code base so it's not like I get bothered when they ask me so if it's something more technical than uh like than I understand like hey like where in the code is this or um what pattern are we using here or there um how do I configure this file for these settings and stuff like these are going
to be things that I I might not have any exposure to so then I have to redirect them but the point is that they at least had someone or a mechanism that they were comfortable with to go ask for help because it's so much more challenging when people just are not comfortable asking for help I had a whole code commute I don't even know what the topic was um but a whole code commute episode where I was talking about like my experience has been that when people are onboarding whether it's like interns or new hires the people that are comfortable asking for help getting unblocked they they onboard so much more quickly and effectively versus the people that um are not comfortable reaching out oh that is not good oh boy that's uh oh my uh my wife likes these emergency things um like emergeny
for vitamin C oh boy they don't taste good at all um but to make it worse um I one of my early code commute episodes was about uh caffeine ingestion um so like I don't drink coffee um and I have a bit of a history ingesting too much caffeine uh over long period of time so uh like I I believe that I've so I've been diagnosed with narcolepsy and I believe personally that it's because of like very high amounts of caffeine taken daily for years like a gram to a gram and a half of caffeine for a year so um I have I have pure caffeine powder that I add to things but if you've never tasted pure caffeine powder it's extremely bitter um so uh when you add it to anything it it makes it taste pretty bad uh so like if I have
flavor packets and stuff I know I know roughly what it's going to taste like um when I add caffeine to it but I forgot that like emergency is not really that flavorful to begin with so it's just like it's not good but hey that's going to that'll help me sip on the caffeine and keep it going throughout the work day um which is uh ironically one of the the funny challenges that I've had in the past which is like I had essentially an unlimited supply of caffeine so if I was working if I just needed more caffeine like I didn't have to sip it I could chug caffeine and say I want more and I would just have more um because caffeine is extremely inexpensive people I don't think people realize how inexpensive pure caffeine is like pounds of caffeine like I think I bought
the last time I bought caffeine I think was 4 lb of pure caffeine and I think it was like $120 or something like that's an insane amount if you were to have you could do the math on it uh but like if it's if you were to take 200 milligrams of caffeine a day which is like uh just over three cups of coffee roughly maybe approximately three cups that would last you like over a decade right it's a long time so very inexpensive anyway that doesn't taste good let's shift gears to um that's a tickle got to get that tickle Lo shift gears to the people giving the help right it's going to sound very similar so we're going to lean into this idea that we want to be asking people what they've tried so far so the Trap that I wanted to revisit here
is that when you're a more senior developer and you don't have to be like literally have the title senior principal staff whatever you could you could still be a junior engineer but you you happen to have more experience in the person asking for help right what you might notice that happens with some individuals is that they're asking for help and initially you're like okay whatever that's fine and then they're asking for help again and you're like oh okay and then they ask for help again and you're like okay like I know I'm supposed to help this person but now I'm feeling like distracted like I can't get my own stuff done and it keeps happening so what you want to keep doing is giving them the answer right away so that they go away right away so someone comes over to you and they're like
hey I'm stuck on this and you're like oh like you're say like this used to happen a lot in person you could like literally stand up go to their keyboard and type the line of code and be like that's how bye right and then go back to your work now had an experience when I was uh like newly a manager and when we were at this startup that I was at before Microsoft and we were onboarding people like this is how I learned this the hard way I reached a point and I'm not I'm not talking about this uh I don't want it to sound like I'm boasting about myself this is literally just the product of being in this environment but I I reached a point where I would have my entire workday my entire workday was just walking from person to person that
was stuck on stuff so as I was helping someone someone like this this is in person someone else would be like oh when you're done like can you help me with this like no problem okay and all that I was doing was basically giving people the answers to things now I used to work a ton like long days at the startup so my entire regular work day would got to a point where it was literally just going between person and person and I had to get my own work done before the office sort of got people in it and then at night so it's it's a trap because when you give people the answers they're not actually learning effectively for themselves so you know what that means they're learning they're learning and like it's not malicious but they're learning that when they're stuck they can
get an answer for you from you they're learning that they can get blocked immediately it's quick it feels very effective right I'm stuck I know if I just put my hand up I get the answer so in order to make this situation better we have to kind of do something that feels backwards which is like unfortunately spend more time with people which feels like it sucks because if you're already reaching this point where you're like oh man like why they're asking for help again or I have a couple people asking for help and like now I'm starting to feel overwhelmed I got bad news it's probably going to get a little bit worse before it gets better but it will get better and uh my my thought process around this is like spend the little bit of extra time with them to to like to
teach them right so instead of giving them the answer and trying to get away as fast as possible try to spend that time where you're like okay so you're stuck on this okay well where where did you look in the code okay cool like show me okay great um so when you're like what patter what other patterns in the code did you see oh you didn't see any okay uh do you know how to go find those patterns Okay no Okay well uh can you think conceptually maybe we can sit down and talk through a couple of spots in the code that have a behavior like this oh that's right you you recall this other spot cool do you know where that is in the code no okay well how might you go look for that like I know you don't know right now but
could you think of some keywords to use right and basically just like like asking people more questions back to them to get them to think through it obviously I was just making up a totally random example off the top of my head but like the idea there wasn't oh here's where you go here's the thing here's the answer click this click that it's getting them like asking them the questions back and as you might have been able to guess from how I was explaining that in that really brief contrived example is like it's probably going to take a lot more time you're going to have to be patient with people because they're new and they're exploring but I I guess I can't guarantee anything but I can tell you at least from my experience this has been transformative with this kind of thing the person
was going like under the speed limit in the fast lane and I didn't realize until everyone was passing us like kind of swerving in and out funny haha um so I think that's like one of the in my opinion one of the most important takeaways when you're on the the Morris senior side giving the help to the Juniors is try to steer away from giving answers like uh directly it's a bit of a trap man that Maserati looks good uh from the back yeah otherwise it's pretty crap it's a Maserati SUV it almost looked like it had wide body or something like the fenders in the back were nice and wide but the rest of it looks kind of garbage um okay oh my goodness what else can we say from the more senior side if people come and ask for help you're trying to
coach them more um yeah I I want to mention patience again uh I think that's it's critical uh this is one of those things I think where like like when I talk about soft skills and stuff like I think this is a really good example we have to like even having the awareness that if you're just giving people answers is like not going to be beneficial long term I think these are things that like if your soft skills are in tune you could probably pick up on this pretty quick uh like for me it took a little while early in my career uh they put me into a manager position because they felt myself SKS were good so um still took me a little bit but uh yeah I think like it's it's going to feel challenging if you're if you're not patient and especially
if you've let it go on for too long where people have really figured out they can come to you and you're already feeling like oh I'm drowning like I got to get out of this like I need to kind of steer these people away um maybe something else worth mentioning too is like this is like a bit of a a bit of meta to consider and I think that there's ways to balance this without like totally dismissing people so um I don't I haven't fully formed this thought but this is kind of I think may be an interesting approach I think this will be more applicable for more people that are even more more senior okay so when you're helping out more Junior Engineers like this can actually be a really good like growth opportunity for you okay so uh doesn't matter your level when
you're helping out other people this can be a really good growth opportunity because you're practicing different sets of skills you're helping other people get better it's not just like coding so these are these are really good things to to be able to lean into now let's let's jump ahead a few levels okay so not only are you not a junior engineer that's offering another Junior engineer help you're either senior or like principal and staff level okay so you're your time is extremely valuable and that's not to say that helping someone else is not extremely valuable but there's this interesting thing that can happen because if you think about the different types of things in career growth that you want to be focusing on I I ideally a principal or staff level engineer has been demonstrating for a large part of their career that they're able
to help mentor and guide and unblock more Junior Engineers it's part of like at least in everything I've seen expectations that we have of people at this level but that means in order to get there when they were at uh levels that were below that so even senior right they needed to have those opportunities oh man that part of the highway is really dumb when you have like someone driving extremely slow and you're like trying to merge over the lanes like because you can't see it but there's this right lane up here and it gets completely backlogged I don't really know why um but like if people in front of you are going slow you basically can get trapped in that lane and it's to go on a different Highway and like I don't want to be trapped over there and not be able to
merge over okay so when you are in this position there I mean depending on your team structure and stuff hopefully there are people that are senior right but they're senior they're more Junior than you as a principal or staff level engineer so when you have say someone that is very Junior and they're asking for help you actually might no you're not merging into here you can't do that you would literally be driving into my car if you tried to do that um you could be creating these opportunities for the other Engineers okay so and again I'm not telling you dis this is why I wanted to be careful how I said this I'm not saying hey anytime a junior asks you a question you just completely dismiss them or tell them go talk to this other person you still want to be able to help
and the more Junior Engineers are really going to appreciate your time right for them it's I mean you might not realize this but for the more Junior Engineers it's really cool that they can get your time they know your experience they really look up to you so it is a really cool opportunity for them but you can try to balance some of your time and if you say you have a design that you have to be working on or uh you're in the middle of some project that's uh taking up a lot of time coordinating between other teams and stuff you might be able to essentially say like to one of the seniors hey like this person on the team needs some help like could you could you give them some guidance on this right and then you're not you're not leaving the more Junior
person stranded but you're actually delegating some of that time to someone else on the team that could actually benefit from that experience of helping other people so something to consider I know that at staff and principal levels uh it can be it can be challenging to to balance a lot of what's going on right we got fires we got to put out we got you know long-term architectural Vision we want to deliver on we got cross team collaborations you have all of the morea junior Engineers which is basically everyone on the team that need help they need to be skilled up like they need growth opportunities so there's there's a lot going on I just got a glare from this woman crossing the street I obviously see you I'm obviously going to stop I think so yeah that might be something um if you're if
you are more senior and you're having difficulty balancing your time um you know trying to like delegation in general is a is a skill that you want to be able to have at that level but you could be delegating um even when people are asking for help um one more like I'm very close to the office here one more thing just with all of this stuff uh I know I'm not it's kind of it's a weird thing to say I'm not a huge fan of documentation because I find like it's always there's so much work that goes into keeping it up to date that it's like you put in all this effort and it's still out of date but I think it's because you need a culture around uh keeping it up to date and I find that's really difficult so if you're in an
org that really values that something that you could be considering too is if people are asking for help um make creating documentation for it depending what the issue is right like make creating documentation for that situation part of the process of giving that help if it's like a very specific like hey we're working on this feature kind of thing like it might not make any sense to document what's going on because I don't know like it's very situational but someone was like Hey I'm having difficulty getting my environment set up or I'm having difficulty working with this external resource um it seems to be having issues okay how like how do we debug it how do we diagnose it how do we correct it instead of the next person getting stuck on this and having to come ask for help when guiding someone through this
making sure they've tried some things out you're giving them you know ultimately they're arriving at the answer go document it and when I say go documented I mean maybe have them go write up the documentation right have the people that are getting the help be responsible for helping create documentation for the next person I've seen this work out really well with uh some of the guys on my my team that's started earlier this year uh they took it upon themselves cuz we said when you're onboarding try to if the docs are out of date go update them please like you're only going to help the next person and they they did that beyond the onboarding docs which is great they were like hey I'm working in this feature area now and you know I got stuck because some of the documentation was missing or a
little bit out of date so I updated it and then the next person came through and they were like oh I use this documentation and it was awesome so like these are things that you're paying a different cost right if you want to go document it you might find that keeping documentation up to date is less overhead in my experience it just hasn't been that way but hey like um it's just another option right so I'm I'm throwing this one out there as something to consider um yeah just uh just another idea I like to think that if you have a bunch of different options and tools that you can leverage then then you might find situations for with them right so even though I'm saying hey I'm not a huge fan of documentation it always feels like it's out of date I also gave
you an example where it actually worked really well on our team so um when you have a bunch of different tools you have more tools you can use in different scenarios right if I only had one tool to use then uh you know I can't use a hammer for everything I Me Maybe you could maybe you could using a hammer to screw in a screw is probably um not impossible but maybe not what you want to do but I think that's it I hope that was helpful um I think it's a really important part of like kind of learning how to navigate that kind of stuff because it can be a bit of a trap right so I hope that if you were on either side of that the more senior end or on the the more Junior end that like you listen to both
sides of that and you could see how to navigate it right so just more perspective overall but I am at the office we'll do a video on the way back thanks so much for being here and I'll see you next time take care
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- How should junior software engineers balance trying to solve problems on their own versus asking for help?
- I believe junior engineers should find a balance between trying things out and asking for help. If you don't try anything, you might get unblocked quickly but won't learn. On the other hand, if you never ask for help, you risk being blocked indefinitely. Time boxing your efforts and asking for clarity on expectations can help you manage this balance effectively.
- What is the best way for junior engineers to ask for help effectively?
- When asking for help, I recommend always being prepared to answer the question, 'What have you tried so far?' If you lack clarity about the task, ask for help immediately. If you understand the task but haven't tried anything, try some approaches first. When you do ask, share what you've tried and why you're stuck, which helps the person assisting you provide better guidance.
- How can senior engineers provide help to junior engineers without just giving them the answers?
- From my experience, senior engineers should avoid just giving answers to juniors because it doesn't help them learn. Instead, spend extra time coaching by asking questions like where they looked in the code or what patterns they noticed. This approach encourages juniors to think critically and develop problem-solving skills, even though it may take more time and patience initially.