I write TODO list - I put down any idea that comes to my mind! Right now, I have almost 100 points in TODO list for game engine NODE (rendering engine, client/server architecture, UI improvements, ... ... ...). So, when I get tired of client/server job, I do some stuff on UI, then I jump to optimization, then back to render engine....) I found it refreshing to change area I work on.