“In space, no one can hear you scream.”
This can be as true in software development as it is in sci-fi/horror movies. However, our isolation can be self-imposed. We often worry about the consequences of asking for help.
Some of us think, “If I ask too many questions, people will think I’m incompetent,” or “I’m smart, I can figure it out on my own.” People like this will find themselves stuck on a simple problem for hours that would have taken a more experienced developer seconds to solve.
Others of us think, “I have no idea what’s going on. Someone, anyone, please, help me.” These developers represent the other end of the spectrum. They ask questions so often that the rest of the team spends all of its time solving let-me-Google-that-for-you-level questions.
We all have questions that, when left unanswered, lead to mistakes and productivity issues. But asking simple questions too often can put a real burden on the rest of your team. So what’s the trick? When do you ask for help?
Types of Questions
Questions fall into two categories:
- General technology questions: Questions that can be answered by a search engine or official documentation (e.g., “What’s the difference between Angular 1.x and Angular 2+?” or “How do you initialize an array in Java?”)
- Domain-specific questions: Questions that can only be answered through experience with a specific codebase (e.g., “Why do we limit the cart to five items?” or “What is the IP address for the production server?”)
Understanding the distinction between the two types of questions is important because it impacts the way you tackle problems. Some can be solved independently, while others can’t be solved alone.
How to Get Answers
Depending on the type of question I have, I follow these simple steps:
- General technology question:
- Search Google, Stack Overflow, and the official documentation.
- Spend no more than 45 minutes.
- Ask for help.
- Domain-specific question:
- Look through the codebase and any internal documentation.
- Spend no more than five minutes.
- Ask for help.
- Document the answer in your team’s internal wiki (so that the next developer doesn’t need to ask, and you don’t have to remember everything yourself).
The key for general technology questions is to give yourself 45 minutes to find the answer on your own. If you spend 45 minutes and haven’t moved the needle, ask for help. Otherwise, you could find yourself sinking an entire day into a problem.
Strike a balance between learning things on your own and leveraging the knowledge of people around you.
By following this simple approach, you stay productive while respecting your team’s time.
Interested in learning more about why Credera is a great place for a software developer to learn and grow in expertise? Check out our careers page.
Thank you to Marshall Treadaway for inspiring this blog topic.