DEV Community

loading...

Discussion on: How to ask senior devs for help?

Collapse
fluffynuts profile image
Davyd McColl

I'm so glad you're asking how to ask for help! As someone considered a "senior dev" by the rest of the team, I'm often the one called upon to help -- and I enjoy helping, but there are some tips which can make it much nicer all around:

  1. Do your homework. Yes, I know that, especially when you're new to things, it's difficult to even know what questions to ask, but at least try to google stuff yourself. Keep a record of what you've looked for and what results you've found -- you'll need it later
  2. Start with an email. Not a slack message, or gtalk, or zoom, or anything "instant". Bear with me, there are good reasons.
  3. Lay out the problem you're experiencing in detail in this email. Add your results from (1). Re-read this email to yourself -- if someone else sent you this mail, do you think you'd have enough of a picture to start helping? Pinging a colleague with a short message like "hello?" or "I'm stuck" means you're putting the onus on the colleague to pull information out of you. This is another reason for using email and not some kind of instant messaging for your first round here -- it should encourage you to take the time to compose a thought-out question and show that you have tried to solve it yourself.
  4. Send the mail!
  5. Follow up with an instant message (eg Slack), no sooner than 10 minutes later, if:
    • you are completely blocked and can't work on something else
    • you haven't had a reply to your original mail in 1/2 a work-day (so, if you mailed in the morning, only message in the afternoon; if you mailed in the afternoon, message next morning)
  6. In an attempt to help people learn on their own, I often won't give the full answer to the question, but will instead try to guide them down a path of discovery. Whilst this may sometimes be frustrating, especially if you've been churning for a while, please bear with me! I really want you to learn as much as possible, and part of that learning is figuring out the techniques for answering questions on your own.

The primary differences between "junior" and "senior" developers, imo, are:

  • direct experience: there's a lot of things we've done before, so we can do them again
  • we've learned what questions to ask, so when we get stuck (and it happens plenty, trust me), we know where to look online, or at least how to structure a question for a web search
  • we're persistent: you can't get to a high level in this game if you give up too easily
  • we experiment: if we don't find an answer to the exact question we have, we might try tangential solutions, or variations of those solutions to figure out if perhaps our problem is related and just not documented online
  • we know the experts in our team, so when we have a problem in a specific area, we know who is most likely to be able to help with the least amount of effort and time
  • we may know experts outside of our team, who are equally invaluable, and we realise that we can't expect them to drop everything to respond, so we already follow steps like the above to elicit help

At the end of the day, a good "senior" dev should always be willing to help, but you can make the whole experience a lot more pleasant by following the plan above. Just like you, we have dev tasks we need to complete, and business often expects us to complete more, quicker, so our time is both limited and quite precious. However, we should be more than willing to give it, if for no other reason than that we're all on the same team, and when one team-member is struggling, the whole team is not operating at full potential.