Live data from Hacker News

Ask HN: How do you manage your personal software projects?

news.ycombinator.com

1–10 of 63 posts

Ask HN: How do you manage your personal software projects?

#1
I am a solo developer who loves to work on side projects in parallel his regular job.

I am REALLY struggling to manage them, I need some system that:

- does not require more work to keep updated than the project itself - it quickly gives me the ability to understand at what point of the project I am. Often pass days or week from the last time I have been able to work on the project, and I need something that helps me having the general view of the status I left the project last time and what are the next steps. - improves my ability to track the different aspects of the project. Whatever they are different functionalities or other more broad aspects as marketing strategies....

I know are hard requirements, but I am not looking for a tool suggestion, but a method or some suggestions to find the right path.

Developing software products has a lot of facets (technical, and not!), and I am losing among them, I need someone who can show me the way :)

Re: Ask HN: How do you manage your personal software projects?

#2
I keep a journal using Google Docs. Whenever I make an entry, I have the date and a brief summary of any interesting thoughts related to the project, URL links, etc. I always keep a TODO list of what to work on next. This helps immensely when picking up the project again after a while to figure out what I was working on.

Re: Ask HN: How do you manage your personal software projects?

#3
Trello works pretty well for me.

I usually create a new board with 3 columns:

Backlog - Doing - Done

You create any amount of cards in backlog and as you start to work on something you can leave comments on your status "Started working on live updates, trying to figure out if websockets are better than polling", etc.

You can easily forget to update cards so an alternative is to leave comments in your code:

```` def some_method

  User.where(email: 'aj # TODO: I WAS HERE, continue fixing the query!
end ```

By leaving this change open in git you can easily see it when you run `git diff`

For my one big side project I keep a notebook (moleskine) with thoughts and notes. I write down the current date when I make one and usually where I am.

Re: Ask HN: How do you manage your personal software projects?

#4
I know you said you're not asking for a specific tool recommendation but it sounds like you want something like Trello (trello.com). Basically you first need to come up with the individual tasks that are needed to complete the project. At first you'll likely miss things but as you're developing you can add new tasks. For each of these tasks you'll create a card. Then on the Trello board you'll have vertical columns called lists. A simple set of lists would be:

  - Backlog: Tasks that haven't been worked on
  - In progress: Tasks you're working on
  - Complete: Tasks that are finished
You can always add more lists if your workflow requires it (e.g. adding a "In testing" list). All your tasks/cards will start in the "Backlog" list. It's also a good idea to roughly order them in priority. You can then pick the highest priority task and move it into the "In progress" list. Once you've completed the task you can move the card to the "Complete" list. Then grab the next highest priority task from the "Backlog" and repeat the process over again.

When you come back from not working on the project for a while all you have to do is look at what task(s) you have in the "In progress" list. If that information isn't enough to figure out where you left off, the task is likely to broad and should be broken down into more detailed tasks. After doing this a few times you'll get more used to creating tasks at the appropriate level of detail--it's just something you have to learn from doing.

Re: Ask HN: How do you manage your personal software projects?

#5
I have a folder called Projects in my tasks app (Wunderlist), with each project listed as a to-do item, and their status listed as subtasks.

At the start of every week, I move one of these projects to my Inbox, update the subtasks to match current thoughts, work on the top few, and move project back at end of week.

Re: Ask HN: How do you manage your personal software projects?

#6
It sounds like you're not really satisfied with the digital stuff.

So here's a crazy idea: you might benefit from having actual (real) folders for each project with scribbles in them.

Even though it feels like a waste of paper, for some reason it works better for me.

Maybe because I don't have to open an app for that, it's just like a second screen (without sacrificing your second screen).

Re: Ask HN: How do you manage your personal software projects?

#7
This is going to sound trivial, but I've always been a big fan of writing down whatever I'm worried about on a post-it and sticking it on my monitor.

If I have too many items and the post-its fall off, I'm being too aggressive. If I have two projects, I use two colors for my post-its.

The problem with any electronic or free-form system like pencil and paper is that it is far, far too easy to type things in than it is to accomplish things. Your goal is not to create a version of your mind. Your goal is to prompt yourself enough so that you're ready to begin doing the next important thing the next time you sit down.

So set your filter to maximum and only track the bare minimum you need to pick the work back up. Trust me, once you're back in it again, the next batch of things will come to mind -- and as you work, you'll work through both the strategic and tactical items, coming up with whatever the new batch of post-its will be before you finish.

Re: Ask HN: How do you manage your personal software projects?

#8
Estimate the time it will take you to complete a project, wait for a time slot like that to appear, hammer it out. Bug fixes after the initial stable release should be minimal, so should needed features.

Use your lack of time to promote good planning before a project is started as well as to prevent feature creep.

Re: Ask HN: How do you manage your personal software projects?

#9
On my side, I don't manage all of them quite well. But those I have the easiest to come back to are by far those where I spent time automating things. Either setting up a dev environment with docker, having automated tests, integrating with a CI platform, having added tickets on a tracker platform, etc.

I think the more the state is explicit, the easiest it is because I'm clearly not good at documenting stuff.

Btw, I try to keep all of those things on my local server. I have JIRA, Stash and Bamboo installed, a docker registry, and a few bunch of other stuff all behind haproxy doing the SSL termination. I like using a tracker understanding code that way I can seamlessly link from/to PRs, commits and branches.

Re: Ask HN: How do you manage your personal software projects?

#10
There's a few different approaches to this:

1. Set a deadline and go for it. This can take up a lot of your time and make you feel burned out. I'm assuming you want to avoid this.

2. Assume it will take longer to release than you would like, but incrementally make progress each week.

I am currently #2 after trying #1 with a completely new stack. I eventually decided that it's better to workout with my significant other a day of the week to work on the project. We decided Sunday would work best for us. If this is your case I really recommend you keep your time flexible and be willing to "swap" days or switch to 1 hr each day after work.

Now that you established a schedule, you will need to maintain two lists. A short list is what you need to work on next. A long list is what you want to accomplish and release in the big scheme of things.

With your two lists, you will prioritize. If you get hung up on something, is it really that necessary? Can you live without it until after your "release".

Keep a rough estimate going, it will give you an ok timeline and help you further prioritize.

This strategy has helped me a lot, I hope to release my side project at the end of this year. :)

Post reply on HN