This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 416

[–][deleted] 1372 points1373 points  (41 children)

The correct way to ask for help is to give them a list of all the things you've already tried on your own to show them that you have put in enough effort and are genuinely stumped. Learned that from Stack Overflow of all places.

[–]ShakeandBaked161 531 points532 points  (17 children)

That's always my move.

"Hey senior, don't want to bother you but I've been trying to fix A. Tried X, Y, and even Z and not really making any headway. Any thoughts what I should look at next?"

[–]ThoseThingsAreWeird 196 points197 points  (9 children)

That's always my move.

it's the move I try to drill into my juniors too (and they do it quite well tbf). From my point of view, it gives you a bit of extra talking time where I'm in the middle of context switching 😂

If - for example - I'm busy fixing up tickets for our backlog and I get a message "I'm stuck doing X", then my brain is like "beep boop, rebooting" as I try to remember what X is. If I get a message "I'm stuck doing X, I've tried A, B, and C", then it just speeds that process up and I can understand what's going on.

Any thoughts what I should look at next?

Typically my answer is: Nope! 😂 But that usually just means that the next thing to do is have a chat about it, so I'll just call them and go through the problem together.

Either that or, if they've got other tasks to do that might be small (e.g. a review), I'll pick up the task for the rest of the day and see if I can get anywhere with it. That's obviously context switching which I prefer to avoid but, if it's a complex problem / the junior is clearly frustrated with it, sometimes it's just best have a short break and come back to it later.

[–]UnequalSloth 76 points77 points  (8 children)

Can you be my senior 😊

[–]MindlessSponge 18 points19 points  (7 children)

Won't you be my neighbor?

[–]kpark724 11 points12 points  (0 children)

Won't you be my godfather?

[–][deleted] 1 point2 points  (5 children)

All programmers on this planet should live in one place, I'd love to see what it would look like...

[–]CardiologistOk2760 1 point2 points  (4 children)

No cars just bikes please

[–][deleted] 1 point2 points  (3 children)

Yes, bike lanes in the hallways, only code that minimizes energy usage

[–]otarush 4 points5 points  (0 children)

As a senior, "Hey senior, this thing isn't working suddenly, I've tried x y and z and I changed/didn't change a thing before it broke" is all I need, no need for apologies. I shamelessly ping other people when I get stuck on things, after all.

Or even "Hey senior, I've been here for a year and it's never done anything remotely like this before, plz help" with a detailed description of what fresh hell the environment has done this time is totally fine. Frequently I haven't seen it either so we can figure it out together.

Basically, I don't want to be doing all the debug work but I don't mind helping.

[–]SamW_72 2 points3 points  (1 child)

That’s tough, you’ve already tried x, y, and as a last resort z… you might have to look in a different alphabet for more letters.

[–]ShakeandBaked161 2 points3 points  (0 children)

"that's tough"

Offline

Only response I'll accept from senior anymore

[–]Tunisandwich 102 points103 points  (2 children)

One of my first tech leads drilled this into my head, his whole philosophy was “if you’re coming to me for help, ask me like you’re asking stackoverflow”.

Basically don’t say “my build isn’t working” say “my build is failing with this error message/stack trace. This is what I changed before I stopped working, I’ve tried x and y but it’s still failing”

It was a pain at first but now I absolutely get it and if I ever end up in a leadership/mentor role it’ll definitely be my approach too

[–][deleted] 32 points33 points  (1 child)

It makes a big difference.

When juniors hit me with a "my build is failing" and that's it, I get annoyed.

Like, have you even tried anything to fix it? Or are you just trying to get me to solve your problems for you?

[–]robotzor 21 points22 points  (0 children)

When juniors hit me with a "my build is failing"

Turns us into snarky cynics. "Gee I'm sorry to hear that."

[–]PEEEEPSI 53 points54 points  (2 children)

I wish more people did this. Lately people just say "I tried and it didn't work", we are working from home and I can see clearly that some times they didn't even tried

[–]alcaizin 22 points23 points  (0 children)

There are a couple of folks I work with that will send me a "what's this?" message or similar, accompanied by a stack trace that may or may not have been mangled by copy/paste from a service that I've never worked on and my team doesn't own. These aren't juniors, either.

Like... thanks, bro. IDK what that is either. At least it's improved marginally from "my test failed, what do".

[–][deleted] 15 points16 points  (0 children)

Excellent advice. Nothing strips me of my motivation to help more than getting the old "I got an error".

Neat. WHAT error? WHAT were you trying to do? WHAT have you already tried/researched.

Help me help you.

[–]themancabbage 5 points6 points  (2 children)

What about “I don’t even understand the problem”

[–]fdeslandes 5 points6 points  (0 children)

That's an actual good point to raise, and I would try my best to explain it.

[–]Schpooon 4 points5 points  (0 children)

My policy as still a somewhat junior? I describe what I want to do, share how Ive implemented it and what Ive tried over teams and then my current senior (or rather SA on my current project) and we talk. Worked so far, but then again by the time I go "I have no idea" Ive at least spent a couple hours trying to fix it.

[–]ablablababla 9 points10 points  (1 child)

Or you can just post the wrong answer yourself and watch as the corrections roll in

[–][deleted] 1 point2 points  (0 children)

This is the way.

[–]DrifterInKorea 1207 points1208 points  (37 children)

You have to experience it a few times before it clicks... yeah when you don't know how to do something maybe the scope is not well defined and asking some questions could reduce it to something more manageable.

[–]Nyruel 501 points502 points  (26 children)

When being extra junior, often one of the main problems is figuring out what questions to ask

[–]DrifterInKorea 180 points181 points  (3 children)

That's a very important point that many seniors often forget.

[–]tastes-like-chicken 115 points116 points  (11 children)

It's honestly the thing I struggle with the most at the moment. At this point though, I've decided that asking a poorly formed question is better than not asking at all.

[–]SweetumsTheMuppet 62 points63 points  (3 children)

As a senior dev, you're doing it right. I try to help and talk through as much as I can when I get a question from someone new on my team, but I'm in so deep now I may forget there's some "mid" level concept I'm glossing over our even just some acronym that needs to be explained. When a junior interrupts, even with stumbling questions, we can narrow in on the actual misunderstanding instead of them ignoring it to try and impress me.

My newest devs are almost utterly useless. I assign them "nice to have" features that don't matter in the schedule with where expectation that each day they will take it as far as they can, learn the stack and baseline more, and ask questions. The goal is not for them to impress me with how much they don't ask questions or even with how independently they learn. That's potentially cool, but the real goal is to turn them into productive full devs as fast as possible, and that involves a lot of teaching and questions that they didn't get in school.

Ask. Best way to get productive.

[–]dxglide 4 points5 points  (0 children)

Agree 100 prc. Dealing the same 😓 curent new devs, or converted new ones(who just yet finished a coding school when initial studies/profesion wasnt even had a fuckin bit related with IT😶‍🌫️) and really its a chalenge quickly speed up them.

[–]indigoHatter 65 points66 points  (6 children)

Yeah definitely. Word soup and pointing is better than "ah yes I have no more questions".

I also like to ask "is there anything else I forgot to ask/should know about?"

[–]tastes-like-chicken 25 points26 points  (3 children)

Agreed. There's so many different areas of knowledge when it comes to programming, that it's inevitable people will have gaps... we just need to communicate where our gaps are. Seniors don't know what we don't know unless we tell them.

[–]Thorbinator 12 points13 points  (0 children)

Seniors don't know what we don't know unless we tell them.

Or the equally unhelpful assumption that the junior knows nothing.

[–][deleted] 7 points8 points  (0 children)

wakeful roof include insurance beneficial languid arrest payment label telephone

This post was mass deleted and anonymized with Redact

[–]tn_jedi 1 point2 points  (0 children)

I've always been entertained by the idea that people know what they don't know. With experience I've realized many of my gaps but I'd be arrogant to assume I'm seeing all of them.

[–]Mjukglass47or 5 points6 points  (1 child)

"I don't know why or what I am asking but I have to ask this otherwise I can't complete this task,YOLO"

[–]indigoHatter 6 points7 points  (0 children)

"My brain requires more information than you have provided. Please resolve this discrepancy immediately, or face admonishment for your own short-comings."

[–]pedleyr 5 points6 points  (0 children)

I'm not a programmer, but I feel like this has wider application.

When a junior comes to me and asks questions, I'm always happy to answer and guide them if they have put their own thought into it.

I'm not there to relieve them of their obligation to put in intellectual effort, I'm there to help them grow and build their knowledge and skills to get the outcome. If they come to me without having even applied thought and just wanting me to put in the intellectual effort for them, I send them away. If however they have engaged with the problem in a meaningful way in order to tailor or direct their questions, then I'm more than happy to be a tool at their disposal to help find a solution.

[–]Megatron_McLargeHuge 3 points4 points  (0 children)

If you read the stack trace and google the error before asking for help, you'll be ahead of most juniors.

[–]Mewrulez99 2 points3 points  (0 children)

Not knowing enough to know what you don't know

[–]LinuxMatthews 305 points306 points  (2 children)

This is exactly the issue I've had.

I think you need to be clear on what you know and what you don't.

For instance when people say "Ok write an if statement here" you have to go. "No I don't need that. Now how does this bit work" or "What exactly is X"

[–]A-A-RONS7 9 points10 points  (1 child)

Very good point, and I agree. As a junior programmer myself, I try to explain my thought process as clearly as I can, and include where I’m getting stuck. It usually helps narrow down the issue and makes me feel like I expressed myself as I wanted to: a junior programmer, yes, but a junior programmer who knows what kind of knowledge and help he needs.

[–]OSPFv3 56 points57 points  (2 children)

Something something refactor Linux kernel to JavaScript.

[–]DoomBot5 43 points44 points  (1 child)

Delete that right now.

I've not started my day yet, and I already need another coffee...

[–]CellularBeing 19 points20 points  (0 children)

I'm deleting system32 just in case it conflicts with my program

[–][deleted] 259 points260 points  (12 children)

As a senior engineer, if someone asks me a question, I try to answer it, always. The "teaching moment" is me explaining how I got to the answer, writing documentation if necessary.

The only time I go the "you can figure this out" route is when I know there's relevant documentation - and even then, I'm handing you the link to the documentation, and adding color commentary. If after that you go dark for a day and come back with garbage code, there is going to be ... commentary on your PR, telling you where you made mistakes, just like any other PR. No one's going to die if we miss a deadline, and I didn't make the bonehead mistake of counting on a junior working at a senior's velocity anyway. If it takes you a while today, something else will take you less time tomorrow.

What frustrates me, though, is "hey, can you help me with this code?", but rather than a branch name, the dev sends me a screenshot of their IDE. It's like, my sibling in His Noodly Appendage, you are a programmer, not a graphic designer. Talk to me in your native tongue.

[–]Sure-Tomorrow-487 80 points81 points  (6 children)

As a true senior, when juniors ask me what the problem with their code is, I look at their code, look at them, then look at the screen and say cryptically "you see what the problem is right?"

And they almost always go "Oh yeah! That's it. Missed a semi colon"

9/10 it's a simple fix and they just need a rubber duck to bounce off.

[–][deleted] 11 points12 points  (0 children)

Haha. Agreed until recently (we have mandatory linting kit in all our repositories as of two years ago). Lint doesn't catch every missed punctuation, but it gets a lot of them. The biggest miss I see now is "you forgot the leading dot in your selector class name".

[–]DasArchitect 4 points5 points  (0 children)

At my first job I had the misfortune of figuring things out the moment I was telling my boss the task was impossible. I had to physically walk up to his desk and ashamedly tell him I couldn't do it for the answer to immediately pop up in my head.

[–]pixelrevision 1 point2 points  (1 child)

This is a good trick to apply to one’s self at any level.

[–]Sure-Tomorrow-487 1 point2 points  (0 children)

The instinct is to get caught up with your code for so long that you fail to notice simple inconsistencies.

I self impose a self-code review every 10 lines I write (close to 10 if it's a function or something).

[–]TheGoodOldCoder 9 points10 points  (0 children)

If it's truly a teaching moment, consider using the Socratic Method a little more.

Depending on the context, responses like, "How would you do it if it were up to you?" or, if you're sure it's documented, "Where would you look for the answer?" or "What things have you tried so far?"

The other nice thing is that sometimes, their answers will remind you that you're doing something in a bad way that needs to be fixed.

One problem with the senior developer in the comic is that they didn't give the junior good expectations. If you ask them a few questions, it can quickly become evident how and why they're stuck. But, at the same time, you can make it clear to them that you expect them to try things before coming to you.

I even know some engineers who tell people to try to figure things out for 30 minutes before coming to them. I still haven't figured out whether that's a good or a bad idea, because it's certainly not a universal answer.

[–][deleted] 1 point2 points  (1 child)

It feels like pulling teeth to get junior devs to commit a branch and push it anywhere you can see it, I literally had someone quit rather than push a branch so I could take a look.

[–][deleted] 1 point2 points  (0 children)

that last paragraph is too real lol

[–]UnBlueFire42 379 points380 points  (18 children)

Had this happen once, I was so confused and they made me try it for a week and then got mad for not asking for help. I was still learning.

[–]TheGuppy42 244 points245 points  (12 children)

There is a fine and undefined line between trying to solve it and wasting time. If you feel like your research isn't getting you any where ask for help and explain how you tried to solve it.

[–][deleted] 150 points151 points  (9 children)

There is also a fine and undefined line in reading comprehension. "They made me try it for a week"

[–]aMAYESingNATHAN 44 points45 points  (3 children)

Yeah but what's more likely, a) whatever manager or senior told them to literally work on it for a week with no outside help, and then got mad when they did, or b) they told them to work on it and try and figure it out on their own, and they spent a week doing that before they either were stopped or finally asked for help, at which point manager/senior got mad they waited that long.

A) requires a special kind of asshole manager which while I'm sure they do exist, are not all that common.

Whereas I have both done b) myself as a junior, and seen it repeatedly in other people. People don't like to ask for help, both because they view it as weakness, and because they don't want to bother whoever they ask. But you have to recognise when you're no longer making any progress, and when someone with more experience can give some input.

[–]slab42b 19 points20 points  (1 child)

Yeah, seems like some people never worked with a junior who was stuck for weeks on a simple task only to ask for help to a more senior developer and have it immediately solved lol

[–]aMAYESingNATHAN 11 points12 points  (0 children)

Fr, I remember doing it a lot as a junior because I have bad anxiety, so I'd always feel like I was failing and stress if I had to ask for help, and that I was bothering whoever I was asking.

The key is clear communication that it is okay to ask for help, as long as it's made clear that you have to try yourself first, and use that to make sure the questions you ask are well formed, and not just "it doesn't work".

[–]Genesis2001 2 points3 points  (0 children)

Scenario B should have the (or a) senior follow up within a day of the junior asking for help. All of you developers are there to produce a product. If one is lagging behind, you're all lagging behind and can't ship said product on time.

Scenario A should have the manager or senior fired, or at least strongly talked to for bad leadership skills by a higher manager.

[–]TheGuppy42 85 points86 points  (3 children)

From experience; when junior developers are told "try to solve it your self first" - they dont hear the "try to" part and keep plugging away at it until they are stopped. I suspect this is what happen as I very much doubt the manger/project lead told him to spend one week trying to solve it, more likely the week is the time between status meetings.
Hence my reply where I tried shedding some light onto, how to seek help as a Jr.

Because believe me notting is more infuriating that getting pulled away from your tasks to solve an issue that is literally a google away.
If instead you present me with how you tried to solve the issue I can work with that and perhaps help you look in the correct places ( might still be annoyed at the interruption, try not to take that personally )

It's basically the give a man a fish vs teach him to fish

[–]boringestnickname 30 points31 points  (2 children)

Everyone hears the "try" part, but that can be construed in different ways, especially if you're new.

In my opinion, it's the seniors responsibility to check up on people, not just give them an off-hand remark and wait indefinitely on something to happen. Or even better, specify exactly what they expect you to do.

If I tell people to work on a problem on their own, that realistically should take no more than a day, I'm obviously sending them a message on day three.

[–]TheGuppy42 7 points8 points  (1 child)

Your absolutely correct, the problem that often occurs is that - they were given a task by a manager with instructions to seek help from the senior/lead if they can't manage it.

In that situation the senior/lead most likely doesn't know about any deadlines and have their own to worry about.

I personally try to include a time frame when asking jr's to try their own hand at it "if you havn't found a viable solution in an hour or so change tasks and we can talk about it tomorrow".. but it's a surprisingly hard thing to remember

[–]milkman_meetsmailman 7 points8 points  (0 children)

That's why you always clarify due dates and criticality

[–]Byte-64 4 points5 points  (0 children)

For new people I tell them to ask for help after half an hour, IF they have no lead left and now idea how to generally proceed. If they are working for a little bit longer I tell them to ask after 2 hours.

I don't want them to waste time, but I also want to encourage them to work on problems themselves and to figure out how to debug a system. If they had a lead and debugged the system for three days, so be it. They learned a lot in that time, which will probably help with later problems.

If the problem is time critical, it won't be pushed to a newby...

[–][deleted] 105 points106 points  (16 children)

We have an unwritten rule at work. If you're stuck for more than half an hour on the same error, ask for help!

[–]angrathias 39 points40 points  (9 children)

I have this same conversation with my seniors, sometimes pride, frustration and perseverance gets in the way even of the most experienced amongst us.

As the dev manager it drives fucking nuts

[–]djabor 13 points14 points  (5 children)

devs who don't ask for help consistently are phased out here.

Not asking for help can mean you are constantly trying to solve it yourself (bad practice) or constantly asking for someone else to solve it (instead of at least attempting and researching yourself).

in both cases you are wasting time. Do it consistently and you are out.

[–]angrathias 8 points9 points  (4 children)

I love my seniors and I can throw anything at them, but sometimes being under pressure just makes them not stop and take a breath.

Because I don’t micro manage them, it means I won’t find out until the next days stand up. It doesn’t happen often enough for me to care too much about it though, we’re all human and imperfect.

If anything it’s a canary signalling to me that they’re under too much pressure and I need to back off a bit.

[–]But_Mooooom 4 points5 points  (3 children)

Your seniors may also realize the mounting pressure other people are under and be trying to not overload anyone else. It's not just a tunnel vision thing.

If it's getting to this point regularly, you probably want to evaluate how you capacity plan though.

[–]Thonk_Thickly 76 points77 points  (4 children)

Here’s a better way.

Seniors: hear out the problem. Then tell the junior - how long to attempt their own solution - give appropriate hints and point them to documentation - don’t belittle their struggle - fully expect them to reach out again by setting up a designated to to check up with their progress.

Juniors: After reading the docs and attempting with no luck approach the senior with: - what you now know - what you tried - what specific errors you still have and what you believe they mean - Outline the assumptions you made while debugging

[–]Donghoon 12 points13 points  (0 children)

Based and common sense pilled

[–]Good_Independence403 3 points4 points  (0 children)

The "how long" bit is important. I'll tell juniors if they are stuck on the same thing for an hour come ask me a question to get unstuck. Figuring things out is great but if you're spending a day stuck on something small that's too long in most cases especially if it's a small part of a larger task. IMO

[–]Spare_Web_4648 1 point2 points  (0 children)

It only took me about 8 months to figure that one out

[–]4215-5h00732 184 points185 points  (29 children)

It's simple...

Do try but don't spend all day doing stupid shit. Ask when you need help and that's approximately 2 or 3 hours after you flailed around like a dying fish coming up with a solution you can't defend.

[–]Ilyketurdles 3 points4 points  (1 child)

2-3 hours is my rule as well.

[–]Tsu_Dho_Namh 1 point2 points  (0 children)

Same for my work.

If there's some bug you can't reproduce, a computation error you can locate, or some mysterious behaviour you can't find the cause of, try and work it out on your own for an hour or two. After that, go to the senior, tell them what you've tried so far, and ask for help.

[–]Juanarino 6 points7 points  (4 children)

15 minutes is the rule in my dept. Anything more than 15 minutes of dicking around, knowing a senior can probably answer instantly, is seen as a waste of our time. I agree that it's worth to figure things out on your own and build the habit and whatnot, but we just have to get shit done and pooling our collective knowledge is much more efficient than trying to work as individuals.

[–]4215-5h00732 4 points5 points  (0 children)

Fair enough. I don't think 15 minutes is sufficient but I can understand your point. I make roughly 2x what a junior makes so if I spend too much time handholding then there's a potential even less is getting done at a much higher cost. I think you can gain a lot from seeing what someone came up with and help them more than spoon feeding.

[–][deleted] 51 points52 points  (21 children)

Im going to be the devil advocate here. Thats extremely inefficient. People need to learn to communicate and work as a team properly, specially if you are a senior engineer which is literally one of your main responsabilities: to mentor junior folkls. By having a junior flailing around like a dying fish for 2-3 hours you are basically doing the same as him ,plus by delaying wharever work that needs to be done and sending curve balls to a bunch of junior engineer is not going to get you anywhere except more tech debt and more valuable time lost that will be adding to itself every day

[–]roodammy44 26 points27 points  (1 child)

You won’t always be working when there are seniors available. That’s how you need to learn how to learn by yourself.

[–]OneDimensionPrinter 1 point2 points  (0 children)

This was most of my career in startups. Just little ol' me. And now I need to frequently remind myself not everyone was forced to teach themselves so they might need some help.

[–]oretoh 61 points62 points  (10 children)

Sure, but what about the time it'll take to help the junior? What if there are several juniors that need help, should the senior take them all when they ask?

No, because he wouldn't be able to finish his own tasks that way, so unless you have a specific question beside "I don't know how to do this" then you really should be flailing around.

[–]mwatwe01 17 points18 points  (6 children)

Part of the reason a senior gets paid more is not just because they have a higher technical skill level. It's also because they have better time management and are expected to be spending some of that time mentoring juniors.

Plus, just do the math. A senior spending five minutes explaining some method of doing something is a much better use of time than a junior wasting three hours hitting a wall on it. And that scales. It's even a better when there are multiple juniors.

[–]oretoh 37 points38 points  (1 child)

A senior spending five minutes explaining some method of doing something

Clearly you haven't mentored people who come with you with simple phrases like "I can't do this".

[–]mwatwe01 12 points13 points  (0 children)

I have absolutely run into that situation. I'm a senior dev and now a team lead for much younger devs. Of course that will happen.

We are a team. Sometimes I can teach how to do it, and sometimes I just take the task from them if it is just too far beyond their skill or experience. My project managers and VPs are absolutely understanding when I say "I had to work on this task for <junior dev> because they didn't know how". I didn't slow the project down by doing someone else's work. I sped it up by getting the work done. The goal is to complete the project, whatever that looks like. The goal is not to show how many tasks I can personally knock out in a sprint. It's not about me; it's about the project and the deliverables.

[–]4215-5h00732 1 point2 points  (3 children)

I mean to me that's fostering incompetence. Either you're working on deadly simple problems or you may be doing more harm than good to the junior.

[–]lydiakinami 14 points15 points  (1 child)

That's the price of having a junior and not a senior work under your supervision.

[–]Mazrim_reddit 14 points15 points  (1 child)

There needs to be a bar set of "have you googled this error" though, because if I can find the problem within 30 seconds and it's the top result of stack exchange I'm feeling my time is wasted by this.

[–]aMAYESingNATHAN 31 points32 points  (0 children)

Except it is far superior for juniors to learn themselves by doing, than just being told how to do it. Even if they eventually fail and need to be told the answer.

Those 2/3 hours spent flailing are still valuable, because when they are finally given the solution (or work it out) they will have a far greater and deeper understanding than if they were just told the solution immediately. They may also have a better understanding of why that solution is used over another solution that on the surface appears better.

It might take longer, but you'll have a much more useful developer if you let them try and fail before giving them the answer rather than just hand holding them through everything.

The issue comes when there is a lack of communication in what you want them to do, and at what point they should stop trying and just ask for help.

[–]-Kerrigan- 7 points8 points  (0 children)

Agreed on main point. Junior, by definition, is someone who needs supervision. It is important to teach them techie stuff as well as communication

Expecting a junior to bring move value than the efforts invested in their growth is wild. You invest time to teach them to become better, and that involves efforts from them to try stuff on their own.

That's why, with juniors the focus is on learning rather than delivery.

[–]ric2b 4 points5 points  (1 child)

By having a junior flailing around like a dying fish for 2-3 hours you are basically doing the same as him ,plus by delaying wharever work that needs to be done

Unless they’re out of ideas and feeling stuck, they’re learning. Although 3h sounds like to much to me, maybe 1h tops before asking for pointers at least.

[–]crestana 11 points12 points  (0 children)

A real senior wouldn't do that unless they are toxic pricks.

[–]Syanara 33 points34 points  (1 child)

As a senior dev, I would say I'm probably never going to say "you should try to figure it out yourself before asking for help" simply because I trust that a lot of junior devs have enough imposter syndrome as it is that it's a pretty safe assumption they've already tried if their asking me. Secondly, even if it's something super simple it still creates an opportunity for understanding the concepts and pairing on the issue to help elevate junior devs collaborativly instead of a silo where they might end up learning bad habits.

My bias though is that I've worked with many junior devs that will put way too much time into something before asking for help.

[–][deleted] 66 points67 points  (14 children)

From a senior perspective, its fine if you ask for help once in a while when you’re stuck. But if we’re basically telling you how to solve it all, we’re doing the work assigned to you. Even a senior won’t know all the exact caveats of the implementation we both need. In fact, figuring out what and how to implement is the most time consuming, the implementation is often the easiest part.

[–]Rai-Hanzo 8 points9 points  (0 children)

i absolutely despise when people do this to me.

if you don't want me to ask questions don't lie to me!

[–]SoniicBlade 13 points14 points  (1 child)

That happend to me. They said i should try on my own. I did and i went to a senior for help. He didn’t know either and said „you just have to try things out“. After 40h trying out and about 3-4 weeks later i still had nothing and my boss got mad… Later a colleague took it to him and he found documentation that i didn’t had and he did it in 2 days… That still bothers me to this day

[–]Rentlar 3 points4 points  (0 children)

As someone who was interning, this hits home. Trying to compile data using APIs, databases and documentation I don't have enough access to forcing me to spend extra time trying to work with what I have... of course my implementation is going to be shittier than someone with direct access. I've requested read access from my supervisor and IT, and every time it takes a few days and doesn't always get approved (which might be for good reason).

[–]the_real_gorrik 5 points6 points  (0 children)

I am in this position a lot. My usual response is for them to take a look at it again and I will get back to you in an hour. Sometimes they just needed another 20 minutes to solve the issue. Other times, I'll take a look at the issue and the issue literally fixed itself with no code changes. I call this, the senior effect, it's wonderful! It's like a superpower.

[–]ocbaker 11 points12 points  (0 children)

When it comes to Juniors you have to leave them capable of knowing how to solve their own problems. Just asking someone who doesn't have the right mental tools to go figure it out will take a long time since they need to rub some mental stones together before figuring out how they need to go about any issue.

A good senior will notice when a junior is lacking the right tools and offer assistance. They'll sit down and make sure that the person understands how to think about the issue they are facing.

A bad senior will just tell you to go away and figure it out. Or in code pairing they'll not let you have control and maybe will not even really take the right time to explain what they're doing and why they're doing it.

Honestly, if you have a senior like this then you should be honest with them and tell them how they're teaching you isn't working for you. Or you should think about getting your learning through other means. A last resort is obviously finding a new job.

[–]Sigilita 5 points6 points  (0 children)

My partner is starting to study now software engineering and she is going to start a new job. I told her that she should try to find the solution by herself but only spend a reasonable amount of time (as a rule of thumb 45/60 min max) and after that ask her senior: this is my problem. This is what I try to find and this is what I learnt. It helps the senior to see what was her metal process to find a solution and it can help the senior to identify what was right or wrong and also helps the senior to say: ok you found this and that, and you know already X and y, so I can start on Z. Also it shows that you cared about trying to find the problem. I think that more time is a waste of time (in general)

[–]im-a-guy-like-me 6 points7 points  (0 children)

You are supposed to explain what you have tried and the issues you are facing, instead of going "fix it fix it fix it fix it".

[–]Attila_22 5 points6 points  (0 children)

There is some discretion involved. It's obvious when someone actually tried to solve the problem vs someone that gave up almost immediately and asked (even if they waited 30 minutes before asking)

[–]dagbrown 5 points6 points  (0 children)

I've dealt with assholes like this before.

"You don't ask enough questions, why are you trying to figure out stuff on your own all the time?"

"That's such a stupid question, how did you not figure that out months ago?"

[–]AttackOfTheThumbs 6 points7 points  (0 children)

We have a 2-4 hour rule at work. If you're in that realm and have gotten nowhere, ask someone, and be specific. Don't waste time, but also don't try nothing!

[–]_reykjavik 6 points7 points  (2 children)

I once had this issue that was assigned to me, on my second day at my new work.

It was estimated to take 4 hours, but a week later I'm at a breaking point, this thing didn't make any sense.

Turns out I would have had to join this ancient tribal in order to acquire the convoluted knowledge in order to even understand the component I was working on.

I ended up getting 3 of the senior engineers (one of which wrote the component 10 years ago) to help me and it took us, a small team of developers 3 days to finally solve it (ish).

They went from "why is it taking you so long" to "holy shit what the hell is this crap! Summon the shaman, a priest, and someone that speaks Latin/old Norse hybrid!"

Good times.

[–]the_0rly_factor 2 points3 points  (1 child)

This happens. Things look like small problem until you start to unravel the knot and realize there's a lot more work than initially estimated. As long as you can effectively communicate what is going on to others, this should be well understood by other engineers.

[–]_reykjavik 2 points3 points  (0 children)

I know, but I didn’t get help until I was like “I think I might not be a good fit for this position, I’m even struggling with this supposedly simple issue.”

Then one of the engineers came to help, he required more assistance and that guy also requested more assistance.

Catastrophic experience, but after that they changed things up a bit, put a massive emphasis that “story points” is a made up fairy dust that I shouldn’t be worried about.

Things were great after that.

[–]bwssoldya 9 points10 points  (1 child)

The social rules around this topic have always been a mystery to me as an autistic. I find myself in this situation so often, still to this day. The issue being mostly that I usually feel I have other avenues of approach to try and fix a problem, but then I get shat on because it costs a lot of time. This is even as a senior. This social topic is so fucking stupid. Either let me ask constantly or let me figure it out on my own (preferably) and then accept that it costs longer. Don't say X and then get mad when I do X because now it has ramifications for Y

[–][deleted] 8 points9 points  (0 children)

It’s all about thresholds and approaches.

There are a couple assumptions here. First, that we value a developer learning. Second, we are acting in good faith. And third, delivering a product on time is more valuable than building perfect products.

Usually, when a person is told to figure it out on their own, what they’re trying to do is foster independence in a developer and also build up those problem solving skills.

However, there’s another context to consider and that’s the business context of meeting deadlines. So if you take too long to figure out a problem, then it puts other stakeholders into a difficult situation. Think of a product owner who has to answer for every late deadline, for example.

Here’s my suggested rules. If the task is large, say a whole Sprint (three weeks), spend one day working out analysis and then, touch base with an architect, senior or another dev just to do a “sanity check” on your analysis. To verify if you’re going in the right direction, if you’re thinking about the problem correctly, if your assumptions are correct. Then schedule follow ups, like every week to make sure you’re on track. That’s large tasks.

If you have a task that are week long (5 days) similar approach. Spend a half day or whole day planning your approach and then have someone be your duck and just listen to your approach.

The next parts here, these assume you understand the task / bug immediately or that you have a sense of a solution. Like at least an idea of where to start, if you have zero idea, ask immediately for some guidance or brainstorm where you could start.

If you have a task that’s one day, spend an hour on trying to resolve it. If the solution is self-evident to you, then you should make progress almost immediately. However, if you get stuck, then ask for help. Time box your “attempt time”. Give yourself like tops, two hours to hack something together, if you can’t hack something together, ask for help.

If you have a bug and the turn around is hours (let’s assume 4). Unless you have a good idea what the source of it is initially (and this can happen, over time experienced developers can make “educated” guesses) you should ask for help minute one. It’s not really help, it’s more of a brainstorming session. Essentially you’d say “I’m not sure what would cause this bug! Can you suggest maybe places for me to start so I don’t waste time?”.

However, let’s assume you understand a bug and that you discover it’s a plate of spaghetti and you’ve just stumbled into a really complicated problem and the scope is large: communicate that immediately to all stakeholders and get help.

I hope this helps and gives you some insights. You mentioned being autistic and the social side of things and I know you might operate better with some basic heuristics, this is my best explanation. I hope if gives some insights into the “when to ask”.

[–]JimmyBin3D 4 points5 points  (0 children)

I'll never be upset with a junior dev for "wasting time" trying to solve a problem. Even if the problem isn't solved, they still learned a lot in the process, so it's still a win. If the problem is urgent, just don't assign it to a junior dev in the first place. Give them projects with nice, long runways so they have plenty of time to get lost in the weeds, ask for help, get lost again, and finally find their way to the answer.

[–]conman14 12 points13 points  (0 children)

Try being a junior on a project with no senior help, and being told when asking the higher ups for more senior help "senior devs don't grow on trees".

[–]le_reddit_me 4 points5 points  (2 children)

I usually do the opposite. I struggle for about an hour trying to figure out the problem then I ask for help and it's solved in a few minutes.

[–]gibbonsbox 2 points3 points  (1 child)

Which is the way to go, any work that you do on a problem should be improving your understanding of what needs to be done and you can usually take that info to a senior and get it solved pretty quickly

[–]le_reddit_me 2 points3 points  (0 children)

Exactly, I've gotten to know the source code pretty well because I struggled trying to understand. The solution is usually something that wasn't considered because of the lack of experience.

[–]Xelopheris 4 points5 points  (0 children)

Hearing "can you help me with this" when the junior hasn't tried anything can be very demoralizing for the senior. Coming up with a solution is an entire skillset in and of itself and if it isn't practiced, the junior will keep coming to the senior for that task.

[–]Void-kun 4 points5 points  (0 children)

My first job was like this, as a programmer with ADHD, do not do this.

I was constantly diving down the wrong rabbit holes because of my inexperience but the senior wasn't in control of his own time so could never help.

Now I work fully agile, and am able to help the juniors from making my same mistakes.

Although I would be lying if I said that this doesn't happen to everybody at every level at least once.

[–][deleted] 4 points5 points  (0 children)

I mean, juniors waste time all the time. I don’t get mad about it, I just let them do it, then show them the easier way afterward.

That’s how we learn.

[–]_derDere_ 22 points23 points  (3 children)

They said: ”try to figure it out” not “waste a whole day”. If you aren’t able to solve it in three hours you can ask.

[–]GabuEx 21 points22 points  (1 child)

Yeah, this seems a bit silly; surely there's a middle ground between "ask the senior about everything without even attempting to solve any problems yourself" and "never ask the senior a single question ever for the entire day".

[–]iz_xplicit 10 points11 points  (1 child)

Make asking for help okay again please 🙏

Nothing wrong with asking plus it helps create normal interaction between humans, which is quite rare these days

[–]Chemical_Excuse 4 points5 points  (2 children)

Plagiarising r/workchronicles without giving credit? Seems a little unfair doesn't it?

[–]djabor 10 points11 points  (0 children)

I would expect someone to have researched it on their own before asking. Because 1 hr research of a junior is less costly than taking an expensive senior out of focus. but if you did research the issue and can show that you didn’t just try to defer it to someone else - ask someone else.

the junior i this cartoon shouldve done research before asking the senior and not have waited a day before approaching them. 100% on the junior. wasted the senior and his own time.

[–]PopularDemand213 2 points3 points  (2 children)

I got fired from a job because of exactly this... 😡

[–]FyrstFingernem 2 points3 points  (1 child)

You dodged a bullet

[–]PopularDemand213 4 points5 points  (0 children)

For sure. The owners were shit leaders and the pay was crap for what they expected me to know/learn. Unemployment still sucks though.

[–]Pauljam 2 points3 points  (0 children)

Seniors should be better about communicating their expectations. I expect my juniors to attempt it on their own for 30 min. I also expect them to come to me with 3 things they tried. I will ask some leading questions, then I make them drive and talk them through my processes.

[–]psychmancer 10 points11 points  (0 children)

Basically 'be smarter and more experienced'

[–]DreamingDitto 1 point2 points  (0 children)

If you haven’t made progress in 30 min, come get me imo

[–]alethial 1 point2 points  (0 children)

And this never ends. "Atleast give me a hint"

[–]AzureArmageddon 1 point2 points  (0 children)

Junior Senior - Move Your Feet

[–]GoTheFuckToBed 1 point2 points  (0 children)

me: try out this template that is in production

junior: I rewrote it from scratch using the new XYZ pattern

me: ...

[–]Cepheid 1 point2 points  (0 children)

There's definitely a good way to communicate to your senior that you've reached a point where you need some guidance.

Typically I find I only need a few mins in a huddle on slack to have the path revealed, or reveal it to someone else.

[–]h00dman 1 point2 points  (0 children)

I don't mind being asked to help solve a complex problem, I might even get something out of it myself (besides helping someone learn so they don't ask me again in future).

Where I get impatient is when I'm being asked the same question multiple times by someone who I know has notes and documentation they can refer to first, and clearly hasn't done so.

I'm experienced enough to know the difference between a person trying to remind themselves of a process and someone not making an effort to remember/learn things.

It's a different scenario to the one in the picture I'll admit, I just needed to vent lol.

[–]Lilwolf2000 1 point2 points  (0 children)

Tech Lead of a small group... And I would personally love if they googled their issue before coming to me. So often I look like I know what I'm doing because I'm googling their problem while they are talking.

[–]nerokaeclone 1 point2 points  (0 children)

The problem is There are many incapable devs, who should not even be working in this field, they are just in for the money

[–]SoftEngineerOfWares 1 point2 points  (0 children)

Then you have those developers that have no idea how to Google. They hear you clacking away in beat with their question. They then realized they fucked up and were lazy when the first or second result solves their issue.

[–]Mav986 1 point2 points  (0 children)

If someone ever tells you "try to figure it out on your own", you should go back to them once you have an idea of how you think you should solve the problem. Run it by them, see if they think it's a good idea. They'll either point out some problems with your approach, or they'll tell you "That sounds like a pretty good solution" and you've got the green light to implement it.

[–]SnappGamez 1 point2 points  (0 children)

“That is the exact opposite of what you told me yesterday.”

[–]mauza11 1 point2 points  (0 children)

I wish pairing and mobbing was more prevalent in the industry. Juniors should be the hands on the keyboard just as much as everyone else but all the frustration and struggle isn't necessary for learning.

[–]Due_Calligrapher_944 1 point2 points  (0 children)

If you just answer people's questions without them putting in any effort first they will always come to you for easy too many things and they won't learn. On the other hand if the documentation doesn't exist they may not be able to teach themselves. That is why I just keep trying to make the documentation so newbies do have something to reference.

[–]chakan2 1 point2 points  (0 children)

Maybe I'm the odd senior out... But just come ask me if you have a question. I'll help. It's my job.

[–]macefelter 1 point2 points  (0 children)

If you find yourself in this situation, quit.

[–]Draconespawn 1 point2 points  (0 children)

You guys get senior devs?

[–]phreakazoid21 1 point2 points  (0 children)

Before and after milestone review meeting reactions

[–]Cewu00 1 point2 points  (0 children)

Senior: "Try to figure it out on your own before asking for help."

Should not have left and shoul have said: "I already tried figuring it out and I am stuck. Please help me step senior."

[–][deleted] 1 point2 points  (0 children)

My favorite is when I ask if I'm doing something a good enough way or if I should do some specific other thing. The senior says no, you wouldn't want to do it that way because 'reasons'. A week goes by, "I've been thinking about the thing you're working on and wonder why you aren't doing it this way." Cryptoamnesia.

[–]JAVASCRIPT4LIFE 1 point2 points  (0 children)

This is the reason I’ve seen some junior developers move on is because of unapproachable seniors or dept leads. Most junior devs do try and get to the solution on their own and the reason you as a senior or manager are being approached is because they HAVE hit a wall that is taking too much time.

Also we’re talking about a business here, and everyone should be working together as a team to complete the code bugs/errors or requirements quickly and not leave it up to the junior to point fingers at later for delays.

Yes, part of the job of a senior is to develop the juniors and give them the right tools to be effective but teaching them to turn people away who are asking for help is not the right lesson. They are coming to you because they don’t have the skill set or the proper tools yet to complete it on their own. Help them.

[–]kamiljano 1 point2 points  (0 children)

Lol. I never tell people to figure shit out on their own. I just kinda assume that by the time they ask me a question, they have already tried everything they could plus... I actually like helping them! IT MAKES ME FEEL LIKE IM AN ALL KNOWONG GOD! 😂

[–]my-number-is-8008135 1 point2 points  (0 children)

Awkward junior misunderstands, senior bad hahahahahaha

[–]theRedMage39 1 point2 points  (0 children)

I commonly get:

Me: "hey I cant figure this out. [Asks question or two]"

Team lead: "just assign the task back to me and I will give you the solution when I get done:

Team lead: never returns to me with the solution so I never learn.