Which sessions of work are more productive for programming: short (<= 30 minutes), mid-length or long (>= 2 hours)? In which cases? (Consider coding new functionality, doing small modifications, tweaking UI, refactoring, debugging, learning API, trying to understand other's code).
What can you tell from your experiences? Information from studies and best practices are also very welcome. Though it would be nice to see links or references.
Reliable information is prefered over complete answer.
- Focused thinking is the ultimate target here
- Generally uninterrupted work > 2-3 hours yields loosing focus and foggy thoughts
- When you are in flow, it's better to let yourself to work for 1-2 hours
- It worth to try practicing Pomodoro Technique, for helping to overcome thinking inertia and procrastination, to get better feeling of time. Especially it can help to start doing things that you don't like doing that much
- When using 'break management' software, you can allow yourself to be more flexible, e.g. to skip 1 break but not more. This allows you to adopt to the situation: be in flow, when there is a flow, stay manageable when are not in flow
- Fresh air, relaxing and excercises during break can help to get involved right hemisphere to get new ideas and solutions
Try software tools for 'break management':
- Pomodairo - it additionally tracks list of tasks and has pice UI
- WorkRave - provides more flexibility in configuring. also usable without speakers