Occasionally during development, you’ll run into a stop or fork in the road. This could be a task that you don’t know the best approach to complete or don’t know how to complete it at all. Efficiently dealing with these types of unexpected situations and knowing when you should ask for help can mean the difference between 10 minutes and hours or sometimes even days.
There’s a lot to think about when it comes to working through a problem like this efficiently. Everyone’s time is valuable. Don’t just jump straight in and ask someone else for help. Take a minute and weigh up what you need help with.
Have you done what you can to work through the problem yourself?
If you haven’t attempted to solve the problem yourself then that’s where you should start.
Think about what questions someone would ask you about your problem while trying to ascertain the whole picture. So many times you’ll ask someone for help and their first question will spark you to answer your own problem. Even just explaining the question to yourself will spark the answer. This is obviously no real-time loss to a fellow colleague in asking them a question, however, it may pull them out of the task they are doing and break their flow. That’s a whole other topic.
Is what you need to overcome better suited to the skill set of someone else?
If you’re trying to do someone else’s job for them because you don’t want to bother them that’s a sure-fire way to sink hours into a problem that someone else could solve for you in a matter of minutes. Don’t hesitate to ask a designer for input on missing screens or functionality or situations alike. This is something you’ll have to weigh up, however, because if you’re going to ask a designer to export assets or change the colour of a button and pull them out of their current designs that you’re probably better off doing it yourself.
Are you looking for a solution or input?
If you’re looking for a solution you probably haven’t done enough of your own research to truly understand the problem you’re currently presented with. This comes down to the dilemma that a lot of junior developers face: they copy and paste code without knowing anything about it.
If you’re asking for input then make sure that’s truly what you’re looking for and you’re not just fishing for a solution. If you’re looking for input on the best way to implement a piece of functionality then come up with a few different approaches and present them. Your job isn’t to make someone else’s job harder so come prepared.
How long do you expect the help to take?
Two brains working through a problem in most cases is going to be far more efficient than one, but that means two people working on one task instead of two different tasks. Think about the time you’ve already spent working through the problem compared to how long you think it’ll take to solve it with a second brain in the picture. If you think the problem is going to take a significant time out of someone else’s day then scheduling a time to actually work through it with someone else is the best approach.
If you’re in no rush put your feelers out to the global community
There’s heaps of online communities set up to help developers through bugs, problems and best practices including the official support systems of the software you’re developing for and everyone’s favourite Stack Overflow. Don’t hesitate to ask online if you’re not having any luck internally.