Isso depende muito do que você está fazendo e do ambiente em que está fazendo. Em um ponto, anos atrás, eu estava trabalhando em uma linha de montagem e poderia dizer que consegui ser produtivo o dia inteiro. Agora, como "trabalhador do conhecimento", acho que, embora eu possa medir meu tempo realmente produtivo como quando estou sentado trabalhando em um projeto (por exemplo, projetando bancos de dados, pesquisando um problema ou escrevendo código), que só posso ter em média quatro horas produtivas por dia com o restante do tempo consumido por reuniões e outras despesas administrativas.
Dentro de um prazo, sou capaz de focar em uma tarefa por longos períodos de tempo (por exemplo, a turma toda a noite), mas estes não são sustentáveis e, à medida que envelheci, descobri que eles tendem a me deixar muito mais exausta do que quando eu era mais jovem e acabei precisando de mais tempo de recarga depois.
O maior problema que eu encontrei, porém, não é tanto ficar na tarefa quanto começar na tarefa, ainda mais quando você está olhando para um grande problema que ainda não foi iniciado! Como tal, um truque que descobri é que, se você tiver uma tarefa menor (ou seja, 30 minutos a uma hora para concluir) da qual possa cuidar, o sentimento de realização obtido poderá ajudá-lo a definir o ritmo para trabalhando no problema maior. Pintores e outros artistas costumam falar sobre a sugestão de uma tela em branco e, de muitas maneiras, o desenvolvimento de software não é diferente, ficar sentado olhando um arquivo vazio pode ser bastante intimidador.