I think these are all valid points, especially working on something you're passionate about. I would like to add (I guess these apply to general development as well):
- Get into a "serial" mode, i.e. work on a single (small) component at a time, with as few context switches as possible. This can be achived by:
- Breaking your project into small, clearly defined components. This allows you to:
- Pick the component you feel would be fun to work with on this particular day. This should lower the bar for getting started on your project a late sunday morning. If you get stuck or bored, work on some other component.
- Take a walk "All truly great thoughts are conceived while walking" - Nietzsche
- Get into a "serial" mode, i.e. work on a single (small) component at a time, with as few context switches as possible. This can be achived by:
- Breaking your project into small, clearly defined components. This allows you to:
- Pick the component you feel would be fun to work with on this particular day. This should lower the bar for getting started on your project a late sunday morning. If you get stuck or bored, work on some other component.
- Take a walk "All truly great thoughts are conceived while walking" - Nietzsche