Tamar,
>...The day it stops being fun is the day I find something else to do.
I pretty much agree, but I don't make that decision on a day-to-day basis. I have plenty of days when it's not fun, but many more days when it is.
For me, some of the "funnest" parts are:
1) Helping businesses find solutions to their problems.
2) Getting a good laugh while looking at the masterpieces of other programmers when I'm asked to change an existing program.
3) Getting a good laugh while looking at what I thought were my masterpieces when digging back into an old project.
4) Having a project that requires me to learn something new.
5) Helping other programmers solve technical issues.
6) Getting enough remote projects that I can work at home.