Ask HN: How do you manage your one-man project?

41 points by eipi ↗ HN
I am doing some side projects at my "copious" spare time (getting up at 5am and work for 2 hours). I think it would be a shame if I end up wasting time. So, I wonder if any of you, in your one-man project, use any software development methodologies (scrum)? Any project management software (evernote)? Or do you relax and not keep track of it at all?

61 comments

[ 3.8 ms ] story [ 345 ms ] thread
I found it best to keep it simple when you're just a one-man show. I use Google docs to keep track of requirements/stories and to track time I use https://github.com/samg/timetrap.
I would avoid anything that distracts you from the main job in hand - working on the projects.

Lists are good - things to do both "must have" and "would like" - plus "yet to be tested" as things develop. Anything you cant just keep reliably in your head.

Carry a notebook around to jot ideas and sketches when you are doing other things.

I switched to using a Macbook Air. Although it was a bit pricier and not as powerful as a Macbook Pro or Windows laptop, I find the portability encourages me to take it everywhere and even sneak in a few minutes of side project work before bed.
I use Trello. I have just one board. I keep one list per project, plus a list for ideas, and a list for priority TODOs -- stuff I need to get done today or tomorrow but for whatever reason didn't do immediately.
I also use Trello, though in combination with a whiteboard.

I have one big project, so I have a Trello board for that, with lists for: Today, Tomorrow, and then future work by discipline (it's a game, so things like: gameplay, rendering, art, design, etc.).

Every morning, the first thing I do is check my today list. If it's empty, I move some things from the tomorrow list in. Then I fill up the tomorrow list with things from the future work lists.

This means I have a list of all the work I need to do, but I don't explicitly plan more than a couple of days ahead - things are too variable for that.

Once tasks (in the today list) are done, they get moved to a 'done' list that I can review later.

It's simple, and seems to work fairly well for me.

PivotalTracker takes care of my needs. It is just the right scale for keeping track of what needs doing and organizing it into an order.
I use evernote with a notebook stack (action pending, completed, ideas) for development projects and using a modified version of the secret weapon I manage all my side projects in there.

http://www.thesecretweapon.org/

I'm constantly doing side projects, most of the time more than one at once. Found Asana to be an awesome tool to keep track of tasks and you can even expose it to your clients so they can comment on them. If you want to keep it even more simple I recommend wunderlist
I just use the Issue Tracker and Wiki on Bitbucker or Github (depending on the project).

I find that since I'm using the source control anyway, I may as well keep a track of everything there too.

Plain text. In my case Emacs org-mode.
When you don't have to share it with anyone, keeping a todo list in plain text really reduces the mental load of switching between your code and the list. It's easy to modify, make it look however you want. +1
I use a wiki for strawman feature proposals and for the roadmap; each entry in the roadmap gets a bug in Bugzilla, and all milestones/releases get a tracking bug depending on the bugs that should go in. milestones/releases are every six months, so there's an inherent deadline in there.

it's an open source project, so this not only helps me having a clear idea of what I'm meant to be doing, but it also helps others to contribute to it, by giving a precise idea of what can be worked on at any given time.

The main thing is to not fall into the "productivity porn" trap of trying to find the best tool instead of actually getting stuff done - when something simple is more than enough.

Keep a simple list of things to do as a backlog and maybe another list of "would like"s. I personally use SimpleNote and Notational Velocity for both.

I'm the same way. I use a txt file that I keep on my desktop. It does the job.
Github issues can be a useful place to stash features that you want to implement in your project, and if your project is public and has eyeballs on it, that puts some impetus on you to focus on getting them done.

A todo list app can also be useful, but only if using it is something you use out of habit. That's why Github issues fits nicely with me, because it fits with my natural workflow (filing issues or scouring issues of software I want to use).

Considering that with my one-man efforts I often need to change priorities, I found workflowy.com really helpful: It is really minimal but lets me organize and reorganize my to-dos and even short notes in a very quick way.
The main problem with side-projects, is not about project-management, but actually keeping up continuous passion to work without major distractions, while you are already loaded with your other day-time job and managing social/personal life. I use Google docs a lot, having a spreadsheet with list of items. Other tools I've used are do.com, basecamp and trello.
I use Basecamp because it's very simple. There are a few text docs that outline different aspects of the project, and I keep updating them as I go along (instead of adding new ones). And, as somebody else wrote, having three to-do lists ("Things to do right away", "New features", "Ideas") is also a good approach. If you have a little time you can pick off small things from the priority list. Stuff from the "Ideas" list either gets kicked out over time, or slowly graduates to "New features" and then to specific items in the priority list.

Generally though, I find that having a site out there and people using it is the best motivator to keep pushing forward. It creates a real sense of urgency and priorities, and you simply won't have the luxury of not focusing on the important stuff that affects people's experience.

Discouragement is your (at least, my) biggest bugbear with this. You have to keep it fun. Become close friends with the REPL, rather than spending 8 hours (that's a week for a typical side project) setting up an IDE that looks like a corporate environment you won't need.

You're (usually) not going to accomplish much, macroscopically, until you've done a fair amount of ground work (e.g. learning APIs). You need to keep that ground work fun, so whatever structure you impose on the process (to-do lists) needs to be focused on improving this factor.

I'm a fan of whiteboarding. I have a bunch of headings for projects I'm working on, and under each of them I have a list of small tasks. Every time I sit down to work on a project, I pick one and a task and go at it.
The best thing I ever do is shutdown tweetdeck, my e-mail client and any browser tabs to social networks / HNs / reddit. Productivity shoots up the roof.
I agree with this.

I have a separate dev user on my machine that has no email or any other distraction and I keep my browser clean and purged.

This means it's a pain in the a*se to login to sites I visit in normal life.

I'm quite a fan of Asana. It's free and a very simple task management system. If you ever bring another person on board it's easy to reassign tasks.
Like others have already noted don't put too much thought into how to organize things. Keep it as simple as possible. This way you'll spent most of your time doing fun stuff (at least for me that would be writing code).

I'll host all my side projects on github. To keep track of bugs and new features I use github's issue tracker. Besides that I carry around a programmer's journal (some small paper notebook) where I write down new ideas, code snippets or concepts.

Evernote is almost certainly the right choice for organizing your thoughts. Other options are too heavyweight or inflexible. Just create a notebook with a few notes and write down everything.

Personally, I find TDD is a helpful design aid for tricky bits of code. I don't bother when it's trivial, but when creating major systems or components, it helps to focus my design and enforce encapsulation.

I tried Basecamp and some iOS todo list tools, but in the end, I have one Google Doc with lists of tasks. I should dump Google for Evernote (better mobile support and less connection issues) but I once had a sync issue on Evernote and lost some text, so I don't trust it. I might go with just a text file in Dropbox or use Gina's http://todotxt.com/

I keep shuffling how I organize tasks. There's by-project, where I list all the things that need to be done to complete something. But I also have to keep some context lists like "next time I'm working on the website" or "next time I feel like doing a bunch of Photoshop work" for those tasks that keep getting put off.

I also keep a wall calendar (just a big sheet of white paper) with post-its for each deliverable. They keep slipping, but at least I can see how many weeks are left until external events.

When things get really unproductive, I walk away from the computer and sit down with a notebook or stack of index cards/post-its and dump everything that needs to be done. For tasks that are stuck, I try to apply Merlin's idea of visualizing what it will feel like to have it done: http://www.43folders.com/2005/10/16/43f-podcast-the-to-have-...