If I am doing less challenging, more routine coding, then I can just work all day with some music on and it's no problem. I've noticed when I am tackling tough problems I tend to spend a lot of my day not working. I go for a walk, I take a lot of breaks. When I am solving difficult technical problems I usually end up actually working about half the day, at most.
I feel like when each breakthrough occurs, I must let it sit for a while before I move on. It's like I can't touch it until some time has passed and things have settled.
Have you experienced something like this? Do you think this is laziness, or are we subconsciously solving problems as we appear to be acting lazy?