Back to writing

The Problem-Solving Pace

April 28, 2024

Slowing down, explaining your thinking, and focusing on process can make hard debugging work much easier.

A teammate asked me a question a few days ago that I did not know how to answer.

That turned into one of the clearest reminders I have had about debugging: pace matters almost as much as skill.

It was their first on-call week. On our team, the on-call engineer is the support team's go-to person for the more involved issues. Those questions are usually not simple. They often require context that newer teammates do not have yet, so asking for help is normal.

They came to me. I had been at the company for about a year, and I did not know the answer either.

If I had been the person officially on call, I probably would have reached out to someone even more experienced right away. But because I was helping instead of owning the ticket, I suggested that we try to untangle it together first.

We jumped on a call and started tracing the problem back through the code. We read functions line by line, followed the request path, and slowly reduced the unknowns. It did not take that long before the shape of the bug became clear and a solution started to appear.

That surprised me.

Why was I more effective helping someone else than I might have been if I were handling the same issue alone under pressure?

Slow enough to think

For me, coding can become frantic very quickly. A few tabs open. A debugger running. Logs everywhere. Half a thought already moving toward the fix before I fully understand the problem.

That speed can be useful, but it can also narrow your thinking too early.

Talking through the issue forced me to slow down. Slowing down made me calmer. And being calmer made it easier to see the whole system instead of just the next line of code.

Focus on process, not performance

There was another shift too. Because I was helping, I naturally moved into explaining how to approach the problem instead of rushing to perform competence.

That changed the focus from "Can I solve this fast?" to "What is the right way to investigate this?"

That is a much better question.

When you do not know the answer yet, you still have tools. You have mental models. You have ways to narrow the search space. Most of the time, that is enough to get moving.

What the slower pace gave us

That slower, more deliberate pace helped in a few ways:

  • the debugging stayed calm and purposeful
  • my teammate could follow the reasoning instead of just watching a fix happen
  • I walked away more confident about working in a part of the system I knew less well

That is the part I want to remember.

You do not always need more speed when you are stuck. Sometimes you need less of it.

If I had tried to "perform" the answer, I might have panicked earlier or escalated faster. By slowing down and treating the problem like something to understand instead of something to defeat, we got through it.

That is a useful trick to keep nearby, especially on the days when the codebase feels bigger than your confidence.