Raise the Flag
Consider this scenario. You've been given some work to do, and you're stuck. Hours have become days. You've exhausted the internet. You're starting to backtrack, delete work, and start over. Feeling defeated.
To make matters worse, you haven't told anybody. Maybe you've waved off help and given a few rosy status reports: "I've got this! Just need one more day!"
You're in deep. You know you've spent too much time, but you keep pushing, into nights and weekends. And that's when you realize that you have to tell people how stuck you are.
Are you feeling the pain? It's the worst. The solution is quickly realizing you're stuck and asking for help. It's a flag you're best positioned to raise, and you should raise it as soon as possible.
Let's look at the first part: quickly realizing you're stuck. What are the signs? You may recognize them:
- You've been working on the problem without making progress for an hour or two
- You've exhausted the internet: Google, Stack Overflow, and LLMs are out of answers to the questions you're asking
- You're backtracking, starting over, deleting work, or trying to solve more than one problem at once
- You're feeling defeated
Turn this into a checklist to revisit it when you're feeling stuck. Checking off a few? Raise that flag.
On to the second part: asking for help. How do you do that? Here are a few tips:
- Communicate the urgency: "I've been stuck on this for a few days and I'm not making any progress"
- Ask for what you need: a conversation? Pairing? Mobbing? Delegating?
- State your problem, watching out for XY problems
- Be willing to work on your helper's timeline. In the meantime, set up a quality pairing environment and stay busy
I've found that great engineers will at least want to chat for a few minutes to help you get unstuck.
Is there value in being stuck and pushing through it alone? A little. But programmers aren't lone wolves; we're problem solvers. The solution is what matters. So, what are some possible solutions? You could solve it yourself– but that's not working. Maybe you and a colleague solve it together, and you learn and build rapport. Great! Maybe you discover the problem is moot, and you move on. Also great!
What should you do if you see this happening to someone else? Raise the flag for them. It's a team problem, so initiate some solution-focused conversation.
I think this is a bigger obstacle on fully remote teams. I recall in-person colleagues being fairly distractable, but remote colleagues can drift into their own little worlds. Pull them out when you need help.
I'd like to thank my colleague Josh Branchaud for helping me iterate on this idea.