Earlier quoted context omitted.
I try to keep an eye out for a pattern: that I'm doing the same thing twice. As soon as that happens I stop and I analyze the problem, if I can automate it completely I'll do it, if I can only automate a part of it I'll do that and then try to find a way to either get rid of the remainder completely, offload it to my users in some guise or other and failing that I'll pay someone some money to do it for me. Concrete e…
As one of my previous colleagues put it : "I'm a lazy developer. I will write a tool for anything that I must do manually more than once." I think the hard part is to decide that it's better to spend several hours automating a 5 minutes manual task. I'm often faced with repetitive tasks and I realize that it's wrong to do them, but it's not easy to say : "Ok, let's put my important work aside and automate this."
Real progress is still being made, but it is much less visible later in a project than in the beginning.
So those of us that are motivated by being able to measure their progress on a day-by-day basis have a hard time to stay motivated later on in a projects life-cycle.