Too many pet projects. Too many scraps of paper with “to do” written over them. A damn problem that affects almost every programmer I know.
I know it sounds lame, but I decided to be more productive during 2013. Some problems I realized I have, after meditating about the subject:
- A desire to start implementing new ideas, but rarely leaving them at a "good enough" state ("it does everything I need it to do").
- The objectives, problems and ideas for each project tend to get dispersed among pieces of paper, notes on my cellphone/laptop and ideas in my head (that are usually forgotten).
- A lack of a clear "path" to achieve the proposed objective.
- The scope of each project tend to get out of control or too ambitious.
- I hardly ever throw away an idea, except when I find a better one.
Obviously this situation is frustrating. So I’m trying to develop a plan to attack it, without compromising creativity and general enjoyment of programming:
- Maintain a canonical place for information and ideas. I started using Evernote, because there's an app for iOS and OS X. I have two main notebooks, one for unpublished blog posts (I want to write more!) and another for lists and general information. The latter contains information about some specific projects (e.g. NMatrix), my general to do list and an "ideas for small projects" note.
- Using Github's issue tracker to store objectives for each project instead of a to do list. This way, it's easier to keep track of what I do without polluting my current lists. If someday I go back to a pet project, I have concrete issues to tackle.
- Work on more open source projects. I'm trying to do what I can for SciRuby and I like Jekyll too. I'd like to collaborate on something smaller (like a JS game), tho.
- Smaller scopes.
- The most difficult one: abandon projects that aren't interesting or useful anymore. This is incredibly hard.
Of course these bullet points can’t solve everything. The two most problematic issues I have are big scopes and never letting ideas go away – so they must be dealt with first.
I already closed (stored all the files and notes in a zip and put into my backups) some old projects and got some plans to finish others that were in my to do list for too long. Let’s see if I can keep up with this.
This isn’t a very interesting subject for someone other than me, but having this on the Internet makes me remember to focus on solving it. I also hope that it might help other people.
EDIT: I found some blog posts which are closely-related to this one: