Tips for when you get stuck

In my first technical role, I managed to get stuck for two weeks. Two weeks! In that time, I didn’t ask for help. I lacked any real plan on how to get unstuck. In my defense, I didn’t know any better. I certainly would not do that now. Getting unstuck when you encounter a technical problem is a valuable skill. My default is to muddle through, trying small changes or googling terms until it works.

The default is not a good way to do this. This post covers some techniques I’ve learnt along the way to help when you’re stuck. They’re primarily aimed at junior developers, but are a good refresher for everyone in a technical role.

Even the most senior engineer will get stuck. The difference is how they react.

  1. Acknowledge that you’re stuck
  2. Set a time limit
  3. Make a hypothesis
  4. Read the Docs
  5. Take a Break
  6. Ask for Help

Acknowledge that you’re stuck

The first and most important step to solving your problem is realising you are stuck. You’re no longer making progress. You aren’t sure what’s happening. When this happens, it is easy to carry on tweaking things until it works. But it is a trap.

When you get stuck, you naturally try to solve the issue. If you haven’t resolved the problem in a few minutes, then this is the opportunity to apply tactics to solving your problem.

Set a Time Limit ⏰

Once you’ve realised you’re stuck, the next step is to set a time limit. It is easy to spend half an hour, an hour, an afternoon, trying to solve your problem. Set yourself a time limit. Once your time is up, it’s time to try something else!

I like to set 30 minutes for myself. If it’s not solved by then, I will either take a break, or change tactics

Make a Hypothesis

What do you think is causing your problem?

It’s a simple question, but it is easy when trying to solve the problem to forget to ask! A useful tactic for problem solving is to create a hypothesis. What is causing this problem?. Once you have an answer to that, it is time to disprove it! By trying to disprove it, you will either solve your problem, or rule out a possible cause. Either way is progress! Repeatedly creating a hypothesis and disproving it is a great way to structure solving a tricky error. I like to write my notes down whilst doing this. This prevents me repeating the same changes later

Read the Docs

After all that, you may still be stumped. Perhaps your timer you set earlier has gone off. You’ve run out of hypotheseses. Perhaps you don’t understand the domain enough to make a hypothesis. In that case, it’s time to go read the documentation.

Also read the source code. This is a great skill to have. Reading the source code can explain something that might be missing in the documentation.

Take a Break

If you’ve still not made progress, it’s probably time to take a break. This might feel like giving up, but don’t worry. This is my favourite trick for getting unstuck. Once you have saturated your brain with the problem, it will continue working on the problem as you take a break. Often, the answer will come to you!

I like to do some washing up, or put some washing on. Something to keep your hands busy, but mind free.

My other favourite suggestions are going for a walk or having a shower 🛀

Ask for Help

I have struggled to ask for help in the past. The reasons have varied. I want to solve it myself, or I don’t want to disturb others, or I don’t want to appear like I am stuck. Asking for help is an important skill. Either your colleagues, or a community can be great places to ask.

There is a lot of skill in asking a good question. If, like me, you worry you are disturbing others when asking a question, it’s worth investing time in preparing your question before asking. This has an added bonus that you might even solve your own problem!

StackOverflow has an excellent page explaining How to create a Minimal, Reproducible Example. It is well worth using this to prepare your question. Following these steps can be painful. They take extra time. But it is well worth it. You may solve your own question along the way. When you do ask the question, you have made it easy for others to help you. People like answering easy questions.

If you’re stuck and not making progress, you should ask for help! You’re never alone in solving problems.

Conclusion

When stuck, it’s easy to keep trying changes until it works. This is viable, but is not quick. Next time you’re stuck, try applying some of the strategies here