Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I study in software engineering and this year a new association at my university is opening a robotic submarine club. It's a new club and they needed software guys for micro-controllers manipulation, gui output and other software oriented requirements.

I've been accepted to the club and there is nothing established right now. Although the language might not matter on a higher level we are working in C++ under a UNIX system. Since I have to set up the base I'd like to have input from people with experience on starting up big projects with collaboration in mind. Obviously we want this to scale nicely over the years and have a solid API for the future students who will replace the older ones.

So to make my question more precise, I'm looking for tips on setting this up and perhaps books that could help me. I'm comfortable on implementation in C++ and I've done some analysis and conceptual OO courses too. It's really just that I've never had the chance to start up on something bigger than a 2-3 man group with SVN. I don't know either if there is a similar JUnit system and perhaps maintenance system that works well for C++ that I could set up for the team(I've used maven with trac in Java).

This is an opportunity for me and the others because we have a green flag on using any of the latest technology and best practices, so I would like to exploit that and learn a thing or two about software management that I wouldn't normally learn in a company with a system already in place.

share|improve this question
up vote 3 down vote accepted

Language doesn't matter. You want:

  • Source revision control
  • Automated integration server
  • Automated unit, integration and acceptance tests
  • A reasonably easy to manage build system
  • Bug/task repository

For unit testing I like BOOST.Test or CppUnit.

For building I think CMake is pretty far above the rest but maven might work as well.

For bugs and tasks you can use Jira or Bugzilla. The former is quite a bit better but costs money after 10 users. You can get a scrummy backlog too called "Greenhopper".

share|improve this answer
Bugs and Tasks - Redmine or Trac are just as good (if not better, depending on your viewpoint) If you want just a bugtracker, then I found Mantis was simpler than Bugzilla. I'd also include Jenkins as a build server. – gbjbaanb May 25 '12 at 22:03
Thanks guys, I will look into these with the other guys. – Patrick.SE May 26 '12 at 3:02

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.