Asking Efficiently
Throughout our software development journey, we often find ourselves in positions where we need to ask questions to help unblock our challenges. Sometimes, we might need an extra pair of eyes for our solutions. This has been a fundamental building block to software development, and that’s why platforms like StackOverflow have been popular with many if not all, developers, who not only gain information but also actively contribute. I decided to write this article to help anyone who might be wondering what’s the best approach to reach out for the above-mentioned reasons.
It is important to mention that most developers are happy to share their knowledge or opinions. When seeking assistance, avoid phrases like “Can I ask?” or “I have a question” as they delay the process. State your question directly to minimize communication steps in platforms like Slack or Discord. While collaboration is encouraged, avoid repetitive or easily searchable questions. Utilize online resources before reaching out for specific assistance. This demonstrates initiative and streamlines the problem-solving process.
Context is King/Queen
While asking, remember to check that the question answers these questions; Why? Who? When? Where? What? How? (or as many) before hitting the send button. Remember, context is important. You always want the person asked to skim through your problem and offer viable solutions. Context like what are you working on? Why did you go for a particular approach? What are the desired outputs? Where are you facing this challenge? What approaches have you tried? When is the issue occurring? All these questions help paint a picture of the problem and, ideally, make finding a solution easy.
Tools, Tips, and Some Tricks
Utilize these tools and practices to improve code clarity for easy collaboration;
- Don’t share your entire codebase for someone to find the problem. The least you could do is isolate/(or speculate) where the problem might be and share only useful bits.
- if you need to share code or stack traces, you can use Gist, Pastebin, or any other online tool from this list.
- Draft Pull Requests Reviews can be employed if the person providing aid has access to the codebase.
- If you want to share code bound by laws and all that serious stuff, You can use generic names like; ExampleViewModel, SeriousClassA, or doSomethingFunction. You can be as creative and as playful as you like.
- Employ screenshots as opposed to taking pictures of your screen. You can compare and contrast the differences between the two approaches below.
A Not-so-important Reminder
After hitting send, be patient. Remember, the one you’ve contacted might be held up saving the continent from the Decepticons. Don’t expect them to be at your disposal to answer your questions immediately. If they do then that’s a plus.
A practical example of a well-curated question can look like this;
I was working on this ticket(Link to a Jira ticket) to add a login button and I have added the button(You can add a screenshot or screen recording to capture behavior). As soon as I hit the button at run time, I can’t seem to observe any action. I have added the logic to handle the click here (link to gist goes here) and here is my compose code and here is where I am handling the navigation.