Starting projects is fun. It's much easier to start a project than to finish one. Evidence for this is, you know, SourceForge. Look there and it's easy to see projects that were started and never got anywhere. Combine that with Fred Brooks' rule that it takes twice as long to make something useful to others as just to make it for yourself.
This has been a pretty big problem for me in my personal development projects. It's also been something that I've had to constantly battle for doing work projects as well, though I find working with a team really can help me to carry the project through. Also, it's important to realize that I'm not really a developer. I've written a lot of code over the decades, and been primarily a developer in the past, but I'm lucky if I can spend 10% of my time at work doing development.
However, I do still do development work. I've come across some things that help me to follow through with tasks once they're started. One that really helps is to avoid starting distraction projects. New projects are fun and sexy, I now I think very carefully before I start a new project.
I also find that if I'm feeling stuck, a mental barrier to doing the job, I can get past it with some dedicated time. If I allocate some time and maybe get a change of scene, I can usually work through whatever blocks I have with it.
Another tool I've found really helps is to spend some time and come up with a list of the next tasks I need to work on. I often find that I feel overwhelmed by what's left to do without a list. Particularly if I don't have a list of just the things that are ready for me to work on. If there are 20 things left to do, but only 5 of them are things I can work on right away, the others may distract me from the ones I can work on.
Joel on Software has written on very much a similar topic. A very good article about developer non-productivity.comments powered by Disqus