views:

697

answers:

13

I am looking for a good (and free) way to organize some of my personal projects. I am saying "organize" because I'm not sure, if the standard project management software solutions are exactly what I am looking for and especially something what I, as a single developer, need.

In general, I just want to keep my progress of my projects organized in some way. I would like to be able to keep track of milestones and split those into multiple smaller tasks, so I can keep track of my progress. So some task/issue based system would probably be good, especially as I also want to keep track of issues/bugs with specific versions (although I alone will create those issues).

I am and will be the only developer on those projects, so it doesn't matter if the software is offline or online, and I also don't need any collaboration features (like commenting on things, or assigning tasks to other developers etc). But if there is a good software that fits my needs, and in addition it has those things, I don't really care. After all it's easy enough to not use available features.

Many online solutions also offer integrated code hosting. I am using git internally, but I don't plan to push any of the code, so such a feature is not needed either. In case of online solutions however I would like the projects to be closed to the public (some of the online utilities only offer open source projects for free and require payments for private projects).

I have looked at some project management solutions already, I also read some similar questions here on SO. But given that I'm a single developer, my focus is probably a bit different as when others ask for a huge distributed software that supports many developers and different collaboration features.

Some standard answers such as Trac (which also only supports one project), Redmine and FogBUGZ look interesting, but are a bit off my interest (although you may change my mind on that :P). Currently, I'm looking at Indefero which doesn't look too bad. But what do you think?

+2  A: 

Check out Scrum: http://en.wikipedia.org/wiki/Scrum_%28development%29

The nice thing about Scrum is that is recognizes the chaotic nature of software development. What you call milestones would be sprints in Scrum nomenclature.

You can find a list of tools here: http://www.userstories.com/products

You can also use notecards and corkboard/whiteboard and your own spreadsheet.

Emile Cormier
Scrum sounds interesting, but I guess I have to read over that article quite a few times to really understand the ideas behind it ;)
poke
Some of the articles in the references section of that Wikipedia article are easier to read. It's worth learning as there's a decent chance you'll use it in the workplace after you've finished school.
Emile Cormier
+2  A: 

I've been using CodeSpaces. Some more suggestions can be found in a question I recently asked about DVCS for a 1-man show.

JMP
Sorry, but I'm not really looking for an alternate DVCS (I'm already using git and am happy with it), but rather just some organization tool for my personal projects - and for that, CodeSpaces looks a bit too pricey.
poke
+3  A: 

I think that you may be over-complicating matters and should use something like Emacs' org-mode. If you are not already an Emacs user, then use your favourite editor or word-processor; a spreadsheet is good for keeping lists of tasks or bugs. You need about 3 lists of things:

  1. A list of tasks to be done.
  2. A list of issues and bugs.
  3. A list of everything else that occurs while you develop and which you don't want to put on one of the other lists until you have given it some thought.

As a lone developer I suggest that you want to spend as much time as possible developing and as little time as necessary wrestling with project-management software. You can minimise your time with Trac (or any of the other software) by not using it at all. This is not a criticism of Trac (or any other software) more a criticism of the idea that, because there is software for project management task X, it has to be used

High Performance Mark
Yeah, you are right. Spending as less as possible time on such things is a good suggestion, but given that I currently feel a bit unorganized, I would like to get some inspiration from other software, just to get to know *what is possible*. If I then got the basic idea from those tools, I can still switch over to simple spreadheets etc. to completely fit my needs.
poke
+9  A: 

You really should think of hosting your code as it achieves 2 very important things

1) You have an off-site backup which is guaranteed to be up-to-date if you use it in your production workflow, i.e. have a hudson build system pull from that source.

When (not if, when, and you'll face it more than once in your career) your laptop gets stolen, your house burns down or the harddisk simply fries and refuses to give you your data back, you have your hard work safe.

I know it costs money, but backup stuff also cost money and usually is not up-to-date.

2) It gives you software to organize your stuff without you having to administer it. This can be a major distraction and time waster. It is hard enough to focus on your products without having your "project management" tamagotchi screaming for love and attention.

Whatever you choose, make sure it extremely simple, especially for your customers sake. Additional features just get in your way when you decide to change the way you do things after a painful lesson. More "powerful" solutions then suddenly start to create a drag and slow you down. e.g. s much as I love Jira, I would not recommend it for a one person shop.

If I would have to choose for myself now, I would use github. Very simple issue tracking, a simple Wiki, awesome git support.

Peter Tillemans
Ahh I forgot about tamagotchis
Scott Christopherson
Thanks for your answer. I agree with you that backups are very important, but it doesn't really matter where you host backups. My repositories are backed up to two different computers, so I really don't need code hosting (although it may be a useful addition). I totally agree with your second point, and that's why I asked what would be an appropriate and especially simple way to organize my projects (and why I want to avoid those over complicated software solutions). Regarding github, it would be my very first choice for open source projects, but this about private and closed source projects.
poke
We also do closed source development and we host our code on github. Their rates are extremely reasonable an we help pay for a valuable service to the community. We find it clearly a win-win.
Peter Tillemans
+1  A: 

Bitbucket allows you to have a single private project for free. I use this for several open source projects in which I do want to share and then I have a workspace for a private enterprise projects.

For that private project, I'm using the issue tracker to track milestone releases, bugs and other PM type information. I never push code to the repo (and I do use Mercurial, which is what BitBucket is based around).

Frank V
Bitbucket rather looks like a Mercurial code hoster with additional features for organizing projects. As I use git internally, and I don't want to switch to a different DVCS, I don't think this would be a good solution for me.
poke
I'm not suggesting that you switch DVCS, rather only that you could use the Issue tracker and such without using the source control aspect of the site. Like I said, I never push code there meaning it doesn't matter which source control product I'm using.
Frank V
+2  A: 

In the real world, many projects with tiny, small or even medium sized teams schedule their projects with simple spreasdsheets.

A schedule is just a prioritised list of tasks, and Excel (as a specific example) has been specifically designed to handle lists rather well, with the additional ability to easily add some computation (such as adding up time estimates and working out a delivery date) and things like automatic colour coding of cells to highlight useful information.

I've tried a lot of "Project Management" software, but really not much out there is as cheap (if you have a copy of Excel or grab an open source spreadsheet), quick, easy and flexible unless you have a complex schedule to manage.

Another approach is to use a simpler "to do manager" approach like this one. It's got all you need to handle a hierarchical list of tasks easily, without all the bloat of full on "project management" software.

Jason Williams
Thank you for your answer. As I wrote in my comment on High Performance Mark's answer, I will try some of the suggested tools and get some inspiration. After that, I might switch back to simple Excel sheets ;)
poke
+2  A: 

What do you think [about Trac]?

I've just started using Trac for a small group project, and I can't say I like it. Startup costs seem high, and the tool seems quite rigid. Undoubtedly one can grow to love it, and I'm going to stick with it because I have colleagues who use Trac, but if I were you, I would cross Trac off my list.

Norman Ramsey
This confirms my thoughts about it, thanks :)
poke
+3  A: 

I would use a Scrum-like approach with a spreadsheet (e.g. this one or this one) for the list of things to do (the Product Backlog in Scrum terminology). Yes, I would avoid using a web-based tool (even if you use a web based bug tracker). To my experience, nothing can beat a spreadsheet in terms of ease of use and power: a spreadsheet is easy to update, to sort or filter, is fast, is flexible, it can generate nice graphs, etc.

Pascal Thivent
Thank you. As I have commented on other answers, I'll try some of the suggestions here and decide later what exactly I need; and then spreadsheets will probably offer the most flexibility. Also thanks for the links!
poke
+3  A: 

Sign up for a Basecamp free plan (on the signup page, tiny link under the $$ versions). I use it to manage my development and design projects and it's perfect. The to-do lists are simple yet effective; includes notes, messages, time tracking and milestones (and you can associate to-dos with milestones). You can also invite your clients to collaborate on a per-project basis. Most bug tracking software tries to do everything and ends up being a convoluted mess with unwieldy UI. I like the simplicity of basecamp and it's quite reliable.

Typeoneerror
Oh, didn't notice that free plan link there, thanks. I guess I'll give it a try, although the single project limitation is a problem for me; but I guess it's good to see what they actually offer.
poke
+7  A: 

Try Pivotal Tracker: http://www.pivotaltracker.com/ As a project management tool, it's awesome. I use it for all my projects and I even use it to track errands I need to run and books I'd like to read :).

Rowlf
Okay, this looks *very* interesting. Thanks for that link! I'll definitely give it a try!
poke
Wow, this looks really good. I'm signing up too!
Otaku
+1 for Pivotal!
statenjason
After playing with Pivotal Tracker now for a while, I really think I could get used to it. So I'll continue using it. Thanks for suggesting it!
poke
+1  A: 

If you are in a windows environment (not entirely) you can check this out Axosoft OnTime.

Saif Khan
Codebase is a bit too expensive for my needs (and the free plan a bit too restricted), and JIRA way over the top for a single developer.
poke
+1  A: 

Agile Zen is a good choice for creating user stories and taking them through the life of the project. You can define each of the steps, leave notes, split into tasks, etc. And the single-user plan is free.

statenjason
A: 

You've mentioned Redmine in your question so allow me to discuss it in this answer.

Basically, everything you've mentioned is currently available in Redmine with some configuration but with no additional plugins or hacking.

  • Heaps of different SCMs are supported
  • Multiple project and sub-project (i.e. nested project) support
  • Milestone support. You can create a milestone/version, assign bugs against versions as an Affected Version and also assign a Target Version.
  • Issue/Bug dependencies. You can do nice bug dependencies, flag duplicates, etc. If you put in start and finish dates on your bugs Redmine will do a nice little Gantt chart for you.
  • Flexible issue workflow. If you're a sole developer then you'll want to edit the typical bug workflow to remove some steps. Redmine makes this easy. You can also have multiple trackers for different kidns of issues (e.g. bugs, feature requests, etc.)
  • Actively developed. One major and 5 minor releases this year so far.
  • Pretty easy to setup if you're going to be the only one using it. You can use webrick to run it and use SQlite as your backend. Ruby's gem will take care of the Ruby dependencies.

There are a few downsides that I've found but in your case I don't think you'd be affected, except for the fact that the wiki markup isn't great out of the box. Having said that, there are plugins to remedy this.

Catchwa