By balki | September 21, 2020 | 0 Comment
So what stops us from seeking the help that we need? According to Leon Ho, sometimes it is the fear of being perceived as weak, needy or incompetent in front of our peers and superiors. Imposter syndrome comes to mind, doesn’t it?
Especially if you’re in a competitive, fast-paced team environment, there is a genuine fear that if you let your guard down, that vulnerability might backfire. If you’re too open about asking for help, people may start stereotyping you as the leech who always relies on someone, and you’ll start to appear incapable. There will be overly aggressive individuals who will gladly amplify your weaknesses to get to the “proverbial top”.
Unfortunately, we all have a natural tendency to judge ourselves too harshly–often overthinking situations much worse than they are in reality. As a result, you miss out on learning new things, forming relationships that happen when you ask for help.
Syeda Aimen Batool writes on freecodecamp.org that the other name for software development is “struggle”. And if you are a beginner or a first-time developer, this ordeal often is multiplied by 100. Learning to code (often a new programming language), finding the right resources, and then working alongside other experienced software engineers can be daunting. And all of this unfolding in very open settings like modern agile teams, oh my!
But the good thing about struggling is that you learn and come out stronger at the other end. You experience new things and implement new ideas, eventually transforming yourself to be a better version.
Reaching out to other for help benefits you in multiple ways:
You’re forced to restate the problem in a way someone else can understand. Sometimes this is sufficient to help you solve the problem, even before they get to answering you. In fact, this technique is so useful that sometimes you don’t need a person, and talking to a rubber duck will do. Itamar Turner-Trauring likes debugging out loud for this reason, so occasionally he uses a #rubberduck Slack channel, so he doesn’t have to distract his coworkers.
All that said, software engineers at all levels are faced with the terrifying and awkward question: “When and how do I ask for help?”. A related dilemma is to label something as “I am stuck”. This is a very personal question to address but in the spirit of our culture of safety, here’s some best practices when you do decide to “ask for help”.
A well-defined problem summary (do this first before you start talking about the likely “solutions”)
What you have tried so far
What seemed to have worked and what didn’t
What you wanted to “try” but didn’t know how
What do you think could be the root cause and the potential solution
Sophie DeBenedetto’s article at dev.to explains that one way to simplify a complex problem is to clearly define our expected behavior. Ask yourself: “Why is this a problem? Exactly what behavior am I seeing that I shouldn’t be seeing?/Exactly what behavior am I missing that I should be seeing?” We need to clearly define the parameters of the problem if we are going to solve that problem. This kind of mindset and documentation is really helpful as you approach someone else for help.
As a stretch goal, collaborate with the help-seeker to document your findings on a public forum like Confluence
As a further stretch goal 😃, propose to discuss the troubleshooting/resolution path in an upcoming team meeting.
My main takeaway is your colleagues may have an idea you don’t, especially if they’re experienced. Learning and practicing how to ask for help, and getting the answers to solve your programming puzzles is the fastest, most fulfilling way to accomplish your career goals.
(This article was originally published on Linked as Asking for help from Senior Software Engineers. This is a repost of the same article on my personal blog)