12

Project management software, wikis, and other technical infrastructure for small startups

Crucial infrastructure for small projects

My latest project is a web application, which is currently in closed beta. I will blog about that more in the coming weeks, but today I’d like to discuss my project’s infrastructure. Infrastructure is one of those topics that you usually just learn about from the companies that you work with. I hope that the information here will be useful to individual developers and small startups. It is difficult to know what has to be done when you’ve never been part of a real-world development team before.

My project’s team is made up of three people. For a project of that size, there are three resources that I consider to be absolutely crucial:

  1. A project wiki – For storing project information like budgets, marketing plans, etc. The wiki should replace most emails between team members. The point of a wiki is to establish one place to look for the latest information, so that you don’t need to search through old email threads to find something.
  2. A project management site – For creating roadmaps, planning new features, reporting bugs, and assigning work to each team member. If you’re going to ignore everything else I write in this post then just setup a project management site. You wont be able to go back and live without it.
  3. A code repository (aka version control system) – For keeping track of changes to your codebase. Also useful for storing all of your source code in one central and backed-up location. (Yes, that explanation is slightly simplified, but using a version control system should be a given.)

Depending on the nature of your project, you may also need a build-bot or continuous integration server. I don’t have any experience in that area. However, I hear good things about  Jenkins (formerly Hudson)Chef, and Integrity. (Edit: As Tollef Fog Heen pointed out, Chef is a configuration management tool and not a CI server.)

Open source projects have it easy

For all of my open source projects, I use Launchpad or GitHub, which do a decent job of fulfilling my requirements. Launchpad doesn’t include a wiki and GitHub has an extremely poor project management site, but I’ve always been able to supplement the missing functionality elsewhere. Furthermore, GitHub and Launchpad are hosted services, which is a huge advantage for lone developers and small projects. If you go with a hosted service then you don’t need to worry about any of the headaches that come with running your own server.

Choosing a version-control system

You should probably decide what VCS (version control system) you plan on using before picking project management software. (No, those are not orthogonal issues. The two can and should integrate with one another.) I recently fell in love with git, but bzr and hg (mercurial) are also great options.

Choosing project management software for a proprietary project

For my aforementioned project, Launchpad wasn’t an option because it only hosts open source projects. Edit: It turns out Launchpad has a commercial plan, for $250/yr.  See the details on hosting a closed source project with Launchpad. (Thanks to Marius Gedminas for the correction.)

I considered using GitHub’s “small” plan ($12/month for up to 5 people) and buying a complementary project management plan at another site. However, I soon ruled that out because of the cost: FogBugz costs $25/user/month. Lighthouse costs $2a5/month. Even BaseCamp, which was a poor match to begin with, costs $50/month for their cheapest plan.

(Aside: I’ve never used BaseCamp, but I’m under the impression that it is too simple for software projects. In my case, I need to track some developer-oriented information about each bug, and BaseCamp doesn’t look like it supports that.)

Huddle and Assembla are two other options that I didn’t review. I know Jira is also popular, but if you’re looking at Jira then you probably don’t need to read my comparison of project management software :) Jira’s hosted plan is $150/month and an unlimited software license costs $12,000.

After ruling out all of the SaaS project management sites, I decided to just host everything myself, including the git repository. I had already bought a WebFaction plan for the webapp itself and the server had spare resources.  (Yes, that is an affiliate link. But WebFaction is so good that I would recommend them even if I was hosted elsewhere.) By now, I have had to upgrade the server twice in order to meet memory requirements, but I still think I made the right decision. In the future, I will likely move everything but the app onto another server.

Lets get back to project management software. I looked at Bugzilla and Trac, but quickly ruled them out in favor of Redmine. Redmine is a minor memory hog – it has an overhead of ~35mb RAM when not in use, which increases to over ~80mb RAM with one active connection. I’m not happy about the memory requirements, but I am happy with my decision to use Redmine. Redmine gets the job done. It supports everything that a software project needs and it’s UI is simple enough that non-developers can use it too.

Installing Redmine and git

WebFaction has tutorials on setting up Redmine and git. Their documentation is pretty good – and Redmine and git are easy installs anyways. You should be aware that there used to be a security vulnerability in WebFaction’s git installer. The problem has been fixed, but all repositories created before January 13 need to fix the issue themselves.

Choosing a wiki

Redmine includes a wiki, but it doesn’t have a WYSIWYG editor. There are plugins to add TinyMCE or CKEditor, but neither of them smelled good or looked stable. Several a-technical users needed access to my project’s wiki, so Textile formatting was a no-go. We needed a WYSIWYG editor and Google Sites offered one with their free hosted solution. Google Sites doesn’t support per-page permissions (i.e. deciding which users can access which pages) but it is otherwise feature-complete.

PBWiki also looks like a good choice for hosted wikis. If you want even more options then you can use WikiMatrix to compare wikis.

Summary

We’re using git, Redmine, and Google Sites for a 3-man project. So far we are very happy with the combination.

In later posts I will cover:

  • Integrating git and Redmine
  • Using Redmine for code-reviews
  • Deploying Django servers with Fabric
  • Viewing Redmine tasks in Eclipse Mylyn

Thank you for reading. Good luck on your next project!

  1. [...] This post was mentioned on Twitter by pestefo, Natan Yellin. Natan Yellin said: New blog post: Project management software, wikis, and other technical infrastructure for small startups http://bit.ly/eV9p1U [...]

  2. diega says:

    Hi, good summary!

    just to add a continuous integration service, take a look at http://www.cloudbees.com/dev.cb (in fact they also offer more services)

    btw, hudson has been renamed to jenkins (ref http://kohsuke.org/2011/01/11/bye-bye-hudson-hell

    Regards.

  3. Natan Yellin says:

    Thanks for the link. The project is small enough that I have no serious need for CI yet. I signed up anyway for the beta. I’m going to experiment with automated testing.

  4. For the record, Launchpad can host non-open-source projects, although that factoid is hard to find (I tried, I failed, someone else posted the link to the Bazaar mailing list): https://launchpad.net/+tour/join-launchpad#commercial

  5. Chef isn’t a continuous integration tool, it’s a configuration management tool and similar to puppet or cfengine rather than Hudson and buildbot.

  6. Jesson says:

    These posting is truly contain huge amount of information on project management tools. I think it would be more effective for all on this task http://teamplifier.com

  7. GEN_J_Z says:

    Great post Natan.. I like your comparison of each project management software option.. How did Redmine end up working out for your issue and bug tracking? When I was reading your post, for a good free project management software, OnTime comes to mind for me.. It is only free with 1 user license though.. but, the prices seem to be better than the ones you listed above except for Free Ninety Ninety.. ;-) http://www.axosoft.com/ – I would be curious to hear what your thoughts are on OnTime because our development team has been using it for a few years now.

    Cheers,
    Z

  8. Colin says:

    Have you considered Gemini (http://www.geminiplatform.com) as a project management tool? They have a free 3 user license so I think it works quite well for smaller projects. We use it at MintTwist and no complaints yet! It’s also easy to give clients access.