Um framework que você pode querer usar é duas janelas de tempo para decidir isso no momento do problema. O final da primeira janela de tempo será um limite suave e o segundo será um limite rígido de quando mudar.
O limite suave será o primeiro ponto de corte. Se você estiver tentando resolver o problema, mas não estiver mais perto de resolvê-lo do que quando começou, mudaria no limite suave. Se você acha que está chegando perto de resolver o problema no limite suave, você continuará até o limite máximo. Assim, o limite flexível seria 5 minutos, por exemplo, e o limite rígido seria 8 minutos, a partir do início da tentativa de corrigir o problema. No limite rígido, você troca de nada.
O comprimento das janelas que você usa vai ter que decidir por si mesmo. Você também precisa descobrir se deseja incluir o tempo necessário antes de começar a analisar o problema.
Você também pode, é claro, improvisar e fazer o que achar melhor na época - é bem provável que não planeje cada pequeno detalhe.