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

In the company where I work, we are starting to plan to be compliant to the software development life cycle. We already have, wiki, vcs system, bug tracking system, and a continuous integration system.

The next step we want to have is to start to manage, in a structured way, software requirements. We dont want to use a wiki or shared documentation because we have many input (developer, manager, commercial, security analyst and other) and we dont want to handle proliferation of .doc around the network share. We are trying to search and we hope we can find and use a FOSS software to manage all this things.

We have about 30 people, and don't have a budget for commercial software. We need a free solution for requirements management.

What we want is software that can manage:

Required features:

  • Software requirements divided in a structured configurable way
  • Versioning of the requirements (history, diff, etc, like source code)
  • Interdependency of requirements (child of, parent of, related to)
  • Rule Based Access Control for data handling
  • Multi user, multi project
  • File upload (for graph, document related to or so on)
  • Report and extraction features

Optional Features:

  • Web Based
  • Test case
  • Time based management (timeline, excepted data, result data)
  • Person allocation and so on
  • Business related stuff
  • Hardware allocation handling

I have already play with testlink and now i'm playing with RTH, the next one i try is redmine.

share|improve this question

I use my case tracker, FogBugz, for this. Most of the things you note are already built-in:

  • Divided in a structured configurable way

Not exactly sure what you mean here, but each requirement is a specific case, with a priority level.

  • Versioning of the requirements

A full history of the case is always available, though it doesn't do diffing, it merely 'tacks on' edits

  • Interdependency of requirements


  • Rule based access control for data handling

Not exactly sure what you mean here, but there is user administration features so that they can only see certain types of cases iirc

  • Multi-user, multi-project
  • File upload
  • Web-based
  • Time based management

All built-in

  • People allocation and so on

Built-in (use 'correspondents')

  • Business related stuff

uhm... there's all kinds of 'stuff'

  • Hardware allocation handling

Not sure.

Bonuses: if you use Kiln, you can integrate fulfillment of requirements with source code check-ins (Kiln isn't necessary, but it's Mercurial which is a plus IMO, it's easy peasy to use, and it obviously works happily with FogBugz).

share|improve this answer

I asked this question on Stack Overflow about 2 years ago. I've been watching around, and it doesn't look like things have changed much since then.

share|improve this answer
Oh yes, all the software is the same, rth,rth-turbo, testlink, i dont have tried redmine, and our system administrator have tried salome-tmf but all the stuff dont fits our needs. what software do you used right now ? – boos Dec 2 '10 at 16:16
I don't use any specialized software: Word, Excel, and a UML modeling tool (Dia) are all I use to capture requirements statically. A wiki can replace Word and Excel. – Thomas Owens Dec 2 '10 at 18:40

Not sure what you are using for a bug tracker, but I've successfully used special issue types for requirements quite successfully. Essentially, many issue management (or bug tracking) software allows you to link issues together. They also have the concept of a master requirement with tasks, or subrequirements. That takes care of most of what you are looking at.

The way versioning is handled with such a system is by assigning the requirement to a version. Either it's a custom field, or something built in. As you have a new requirement that supercedes the older one, you link to it and cancel the older one. You now have a trace through the versions of your software.

One such open source tool I've used is called Redmine: You'll see some overlap with some of the other tools you already have. I'm thinking a little creativity with your toolset will yield something close enough to what you want without springing for DOORS or (ir)Rational toolsets.

share|improve this answer
Unlike bugs, requirements are "live" and "evolve" through the development process. They may look like different version of a file in a VCS system. A given release of an application will be made up of files at a given version, and the same way a given release will be made from a given version of the requirements (the baseline). Note that they can be the same requirements (same ID), just at different version. A bug tracker usually lacks these features, they could be imitated, but usually they require a lot of manual work. Also many bugtracker has not a true hierarchic views of the entries. – ldsandon Dec 1 '10 at 14:15

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.