I have a lot of flexibility with my job. I can come and go pretty much as I please. I really appreciate the flexibility but it has its drawbacks; mainly, it's very easy for me to rationalize why I need to leave at 3 and finish the day at home. While I do work when I get home, the distractions at home and task switching overhead make the whole thing really inefficient, and lead to me feeling unhappy. Also I find myself unable to clearly delineate work and the rest of my life since I always feel like I should've done more that day.
I think I've been riding the bus for almost a month now, and it took about that long for me to realize something pretty interesting. I was sitting in my office the other day at about 3 PM and got the standard 'I want to go home' feeling, so I went to start packing up my stuff. Then I realized that I didn't drive, so I'd better check to see when the next bus was going to come, which was not for another 38 minutes. 38 minutes?! I wasn't going to wait outside for 38 minutes, so I went back to my previous task and finished it, distraction averted.
Do you see what happened? It is now more difficult to act on a whim and ride home then it is to stay and do my work until I should actually leave! Some people have more self control than this, but I'm just developing it, so having a way to stack the odds in favor of me accomplishing something makes me very happy.
Another side affect: After this realization, I have been able to take advantage of this new-found inability to give in to laziness. If I'm going to stay this long, I thought, I'm going to make sure I know how productive I'm being. I started taking some extra time during the day to track my activities, and then spend the last few minutes of every day figuring out what I'm going to do the following day. This last part means that when I leave work, I am DONE until I arrive the next day, and it's guilt-free because I know how much I accomplished. There is no lingering 'but I should've...'.