Open Source Requirements Management Systems?
scphantm asks: "I have the wonderful (and rare) job of building a development department from scratch. One of the things im doing right now is looking for the software im going to use company wide to manage the department and the various projects we are going to have. I have some great ideas for OSS project management software, but the one piece of the puzzle that im missing is a good requirements management system. I have found a few that will do what i want but i have serious issues spending $1200 to $10,000 a seat! I sat down and put together a wish list for what I would want in a Requirements Management System, is there anything like this out there?" While SourceForge and it's free counterpart Alexandria
may have a few of the pieces to his wishlist, scphantm has some decent ideas that Project Managers might want to think about.
"I have used your basic Word docs and Excel spreadsheets in the past for this but it just simply wasn't up to snuff as far as I'm concerned. How have Slashdotters solved these problems?
My Wishlist
- Has to be web based. We are going to be spread all over the country and i see no other realistic way of doing it.
- Has to handle multiple projects
- I want it set up so I can take the tree of requirements, click on a button and have it take a snapshot of those requirements and mark them as the requirements for version 1. I can then still use the original requirements tree to create the requirements for version 2.0, in the future. I then want the ability to compare the two snapshots and generate a report that I can give to marketing which says: "these are the changes from version 1.0 to 2.0"
- I want the defect tracking integrated into it. Source code management I don't really care about, but bottom line, I want to be able to click on my snapshot of version 2.0 and run a report that itemizes everything in it, from requirements to bug fixes. I want to be able to look at a closed bug and see what release of the product it was integrated into. on this level, I really don't give a rats @$# about what version of data.h the fix was integrated in.
- If I have a bug reported in version 1 of a release, I want it to flag the developers of version 2 that this may be an issue for them as well. Basically have a little bit of AI as far as who needs to know about a bug, and make sure to incorporate the fix for that bug into future releases.
- I want security set up so there is a free communication during the process of requirements management. anyone who is anyone will be permitted to add input to new feature ideas using this system. the Development Director for the particular project would be the only one permitted to make a suggestion a requirement.
- I want an impact tree. I want to be able to run a report to show the CEO that if he wants to change the encryption from Blowfish to AES, its going to impact these requirements."
post your requirements on /., as you've done in this case.. :)
Version control would get a little difficult though.
I quess you already have a valid requirement basis for selecting the requirements management system. I might be perverted, but I would not even install a separate requirements management system before seeing who i will have working, what will they be doing, and how they will be doing it. You must be building a seriously complex software product, otherwise I do not really see your way of prioritizing things - or have you gone through this process before and already know exactly how you want things done?
...and if you want you will never see an ad on /. again...
If you want to support oss buy sourceforge or sourcecast from collab.net! Good companies that could use the money!
Dear scphantm
I would be very interested in your decisions regarding all the other parts of your open source development environment. Could you give us a summary of the tools you plan to use?
I'd be happy to help you with the Requirements Management System. Unfortunetaly all I've ever used for this are plain text files...
The apostrophe, eh. Is that a requirements management tool?
-----
For great justice!
Microsoft Project + Sharepoint server for the collaboration. Oh, you want an open source (read: free) solution? Looks like you're shit out of luck, not even SourceForge is free.
Well, may I humbly offer my company's open-source contribution, which we call "Outreach Project Tool."
It was really developed as a way to allow us to keep in touch with multiple customers and partners for various projects, and includes incident management, a knowledge base, bulletin board, document repository with versioning and notification, and a handy e-mail archiving system too. It has a few plug-in options, including a GANTT tool, and an on-line update capability. It uses LAMP, but will also run under Windows if you're able to set up MySQL, Apahce and PHP correctly.
See: http://outreach.sourceforge.net.
Paul Gillingwater
MBA, CISSP, CISM
Why are so many people hung up about apostrophes today?
-----
For great justice!
Its not the apostrofy in perticuler, but illiterasy in general that there complaining about.
Seriously, roll your own.
There's nothing that meets your requirements better than something you rolled yourself, so get to it!
No. I'm sorry, but there just ain't.
Aegis is a nice configuration management tool:
http://aegis.sourceforge.net/
It has some of the wanted features.
I agree it won't be fully integrated solution, but you may consider some tradeoffs.
;)
Wiki (the interactive collaborative system, implementations I know of being TWiki and MoinMoin Wiki) can be used pretty effectivly for a lot of these things.
I have tried using it. It does take a little getting used to, but once people (developers I am assuming) are hooked to it, there's no turning back. And i'm speaking from experience
As T/MoinMoin are open source implementations, you may even be able to integrate it into bugzilla without too much difficulty.
Hrishikesh
US is now divided as the "Red" and "blue" states. Red States = communist countries. Coincidence? I think not
And never see an ad anywhere anytime.
http://www.tutos.org
Seems pretty complete. I'm looking at using it.
What is pirate software? Software for inventory of stolen treasure?
Cecky out Jira.. its only $800 per server.. people swear by it..
Don't Tread on OpenSource
We had a similar requirement at our place of work. At that time Tigris was open source and we were able to get it to work for us. The software is truly amazing...
Though no longer available as OpenSource (Free!) product, CollabNet provides this platform for Collaborative Development to interested parties as a Hosted Model for a fee. Check them out at http://www.collab.net/ and while you are at it, you might get a feel of the features provided by checking out http://www.tigris.org/
We tried SourceForge too when it was open source/free. But finally decided to go with Tigris as it was more flexible and suited us better. YMMV!!
-Sumit Dhar
You miss an obvious goal of a requirements management system; proving to management that you are effective by managing scope changes and project skew. These days if you can't do this you'll begin to hear calls to outsource to a third party or even worse a mantra of purchasing only shrink wrapped software.
My advice is he should make this his first project. Leverage it to work out all of the procedural/functional kinks of starting a Dev Dept from scractch.
It's hard to recommend something without knowing what your typical project size is. You want to run something that'll take 500 staff hours of effort much differently than something that'll take 5000 staff hours... or 50, or 50,000.
And what's your key objective? Do you need to show something by December 1, or can you project any date as long as it clears a well-defined quality test on that date?
What's your need for accurate tracking of progress? Do you need to tell people something believable every week about when they can expect the THING that they've ordered, or can you just say "we're working on it, and we're somewhere in the middle?"
All that said, the approach I've seen work the best is an email folder, a spreadsheet, and a brilliant dedicated experienced person who kept it all in her head and spoke the right language to everyone concerned. Get whatever tools you want - as long as the craftsmen are right, everthing else will be fine...
Or, y'know, not. Good luck, comrade.
"Consider yourself a member of a virtual corporation with Mr. Torvalds as your Chief Executive Officer." - Linux Advocac
Why not?
Seriously. I've worked on a few projects of some magnitude and we never used any "requirements management system" more special than standard document files. (Of course, you shouldn't be putting any data at all in proprietary and virus-ridden Word or Excel formats, but there are safe and open alternatives.) Heck, they managed to put a man on the moon with a "requirements management system" that probably consisted of three-ring binders.
Ask yourself: is using an fancy-pants automated system going to simplify or complicate the process?
Tom Swiss | the infamous tms | my blog
You cannot wash away blood with blood
I read your specification for your requirements system, and it left me with a distinct impression that you're trying to use technology as a substitute for your company's management. No system is going to make a mediocre team better - this is true for any organization regardless of size. If you're putting together a team, concentrate on the people first. A strong team will be able to credibly explain to management the impact of requirements changes better than some report from a system that most of your management can't even grasp.
Remember - build a great team! Good Luck
****
"I'd never want to join a club that would have me as a member" - G. Marx
... or whatever bug reporting tool you plan to use.
Nice things about Bugzilla in this context:
* Use 'enchancement' for requirements, and have them all owned by the project manager until they are finalized and assigned to a developer.
* Lots of feedback possible from all parties
* Use Milestones in order to get the r1/r2 distinction for reporting purposes -- bugs included and sortable.
* It is truly free
Works like a charm -- I used this for the dev group I set up from scratch to build a complete router/gateway system... It's not perfect, but, hey, what is?
Cheers,
matt.
Here are a few thoughts - I've done similar things on large projects, so it might be useful.
:-) ). We may be going to RTF soon becuase they are easier to generate from the Sun boxes we have at the back end.
1) For requirements documents, Word is not a bad choice. You will need narrative, formatting and pictures - becuase the one of the target audiences for this is the sponsor of the project and the business people who are paying for it. They have Word on their desktop, they understand it and they can print from it. (Note: I don't like MS any more than the next person, if you have a company preferred alterntive, then use it). Without nice pictures explaining what is happening, the people who are paying for your project won't understand what is going on - and confused managers are dangerous managers in my experience!
2) The point at which we reduce the requirements document to something unreadable is the creation of the Test Model - linking requirements to test conditions. For this we use a home rolled Oracle DB that we use to populate test scripts via ODBC. The test scripts and model are all Word based. (Sorry
3) You are asking for a CMM 3/4 type of environment. That implies a very rigorous development approach - in order to do the impact analysis of changing your encryption algorithm, you need the developers and designers to be really thorough. If they are not, then all the tools in the world won't help.
4) If find it strange that you are not starting with version control. From my perspective, knowing that encrypt.c version 21 was changed by developer Fred and went into build 723 which became Release 3 is the most important thing. I have seen many projects fail becuase of a lack of version control, and I have seen projects fail becuse they did not write down the requirements. I have never seen a project fail becuase they did not use the right tool for their requirements.
5) We make sure that bugs fixed in one release get fixed in the next by raising multiple problem requests; one for every phase in flight. That way it doesn't matter if Phase 5 is in design or build - someone has to address the problem request and sign it off.
Enterprise Architect, http://www.sparxsystems.com.au has a superb requirements management part, which allows you to very easily map use cases to requirements, assign versions, and generally be pretty wonderful.
Though it's not open source, it's only $150. Windows only. It does excellent web-based export of data too, and powerful database replication.
A combination of maybe Sourceforge with Bonzai and the Mozilla development tools have been considered.
I dont think theres an all in one solution out there, but by combining a couple of tools, one could get all that desired functionality plus more.
Just an idea.
McDoobie
"Has to be web based. We are going to be spread all over the country and i see no other realistic way of doing it."
Why is it that every time somebody plans a new multi-tier application, it seems like a browser is the only "realistic" option for the client? Don't get me wrong, i think browser based clients (if designed correct) can be great. They offer ease of use to the user, and are basically platform agnostic. Also, web servers offer are a easy way for a developer to use server side program logic(as opposed to using component services of some sort in a custom build client app).
But just remember, web clients aren't always the way to go. In your case for example, I would think a custom created client might be a better solution. Since a custom MDI applications still offers far superior multitasking capabilities as opposed to a browser client solution, meaning you spend less time working with the application and more time working with the data in the application. The larger a application get, the less suited for a browser it becomes. Who for example would like to use a browser based C++ IDE? It would be possible (though stupid) to create, but 1000000:1 you would prefer to use a compiled gkt/kde/mfc/whatever based application.
Also, when using a custom client you can actually use that 500Mhz+ badasso processor that resides in most computers today. So instead of doing EVERYTHING on one maschine(the server), you can spead some of the application logic (like generating rapports ect) out on the client. And then just handle the most basic program logic(log in/out etc) on the server.
The geographical differences aren't a problem either, just use a database that's accessible from all the companies locations (simple networking task) in conjunction with the custom made client app.
Just my 2cents =)
The only thing out there that is even close to what you want (afaik) is Rational's Requisite Pro. Not free, but cheap at the price.
You have a great first project for the development team you are putting together.
Seriously, a project like this is a great way to see how the team is going to work together. And really, this is a better way of finding out who should be a tech lead, and who is just a developer. Remember, tech-lead shouldn't be a gift to the person with the most experience... It is a different skill set.
--T
http://www.theMediaBunker.com
Here are some ideas....
p groupware.org/
Project and group management:
http://www.phprojekt.com/
http://ph
For documentation, check out Doxygen:
http://www.stack.nl/~dimitri/doxygen/
HTH...
Suncoast Linux - Sarasota, FL
Double Chocco Latte? Not nice at all but part of GNUEnterprise.
heh... too funny. Oh, and I have a requirement for posting on Slashdot: put a FREAKING apostrophe in 'I'm'!!
...silly person.
"...I'll need guns" --Chow Yun-Fat in 'Replacement Killers'
http://www.phprojekt.com /w my company. Works very well & offers more functionality than any of the other projects I've seen posted above. I didn't make phprojekt, I just vouch for its usefulness.
Free, functional, I use it
One place you won't find the terms "requirements analysis" or "requirements management" used outside of specific examples is in the Project Management Institute Body of Knowledge (PMBOK), which is (get this) an ANSI standard for project management.
The PMBOK dispenses with the concept of a project as a sequence of segmented phases and describes a project as the outcome of several "process groups" that wax and wane in importance during the project. When you talk about "requirements management" you are cutting a broad swath across these process groups and invoking activities such as risk management, scope management, resource management. time management, and so forth.
For example, the first process group is "initiating processes." What drives your organization to authorize a project? If your requirements don't relate directly to that, you're already on the wrong track.
My main exposure to SDLCs was in professional services; limiting the context to "outsourced project" already answers some of the questions I raised above. Some guys I worked with at PwC consulting had the best approach to requirements management (within this context) that I saw. (Yes, I realize that PwC Consulting changed its name to "Monday" and sold iteself to IBM, but despite outward signs of insanity, these guys had the SDLC methodologies down.) Anyway, at the commencement of each project, they would write a custom requirements manager in Microsoft Access. At the end of the project, they'd throw it away, because it was never quite the right one for the next project.
The cliché that comes up in every Java vs. Perl flame session is "use the right tool for the job." Unless your projects need to follow some kind of rigorous methodology (like DOD contracts), you should plan for variation. Put together a suite of tools (there are already some excellent suggestions) and include as part of the planning for a new project "tool selection" and let the project team deploy these tools as best suits each project.
The PMBOK definition of "project" specifies that a project be "unique." If it's not unique, then it's not a project, it's part of some ongoing process. Very insightful: all projects are unique.
Sounds Interesting --- has anyone considered the requirements _generation_ process? Maybe a
slashdot - style web-based system where the process looks like this:
1). Anonymous coward proposes a system requirement
2). Discussions about the requirements abound...
3). A moderator mods it up because it might be insightful (or down...)
4). Requirements with a score of 5 get added to the real requirements.... Those with high karma
get raises and promotions....(or respect and admiration with OSS) etc...
Once requirements are in the system, it's just a database - blah. We really want to improve the product and the developement process, right?
The company I work for has some deal with Rational, so we are tied into using their products. :(
My beliefs do not require that you agree with them.
Try Doc Builder:_ builder/do c_builder.html
http://www.stolenapple.com/software/doc
Certainly better than scattering spreadsheets and word documents across the network. This is structured data we're talking about, and file-scattering is not a useful approach. In general, Word and Excel docs should be banned from anything but a hobbyist environment.
I agree with several of the posts that says this should be a project your team takes on.
Our SysDev team built a web-based work request tracker with issue and work history (management gets a pretty report from Crystal Reports that shows weekly work for team - no matter which work request they devoted time to), and it fit our requirements perfectly because we built it!
Some of the requests we get are simple "build me a report" type projects, which don't need the level of requirements and version history tracking that you outlined, but some of the large projects definately do - and in fact, I might borrow your requirements to run past management to see if this is something we might want to implement.
(not that this helps you in anyway, other than points out the fact that the best fit software is rolled in house - if you've got the resources to pull it off..)
Small projects, and most software projects are small, do not really need, and cannot afford, "proper infrastructure". Small projects will usually end up with code fairly on in the process and a selection of incomplete documents that describe the design. The documentation is often - either deliberately or by default - not maintained. This situation makes version control and coding standards the highest priority.
You're correct, you are in a fortunate postion, being able to select company-wide development tools from scratch. Do you have other requirements for which you've found solutions?
Some of us might find your requirements and selections interesting and it would provide more detail re: what PM software would be appropriate for you.
And the rest of the readers will appreciate the opprtunity to flame and argue over your other choices. ~:-0.
It will save you time and money because you won't end up buying/writing something you don't need. And you might be surprised how useful index cards can be...
Word of advise, don't use tools that don't integrate well with other parts of the development process (e.g. CM, CR's, Development, testing). Otherwise one of two things will happen; you will have people with jobs like CM Admin, Build Manager; or you will have a lot of shelfware. Look for tools that integrate well with compilers and everybody can own a piece of job. Web tools are nice but don't wear blinders, there are a lot of ways to collaborate over a distance.
I think sourceforge could help you out a lot. Stay away from the alexandria project, it was not a very good public project when it was active and has been in active for about a year now, use the debian-sourceforge packages hosted on savanna:
Sourceforge for Debian
This project is a _working_ easy to install sourceforge system based on the last known public sources before VA pulled it in and made it proprietary again.
The two main authors (lo-lan-do and cbayle) have done an outstanding job fixing bugs and hard coded stuff VA left in there (which I think they did on purpose to make it hard to install so you had to pay them their USD100k to install it for you basically) and getting a nearly fully functional system that is accessible to all.
I like sf as a development management system very much, even though the public version they left out there is far from perfect, with several features missing that I think are close to essential for a dev mgt system, but overall I am more than willing to live without them for the rest of the features of sf and its easy to use interface for end users.
If you don't know the nightmare of installing the old 2.0 or 2.5 version then you will not appreciate fully the work of these two folks to bring sf to the average user. My thanks to them and I encourage anyone who might make use of their packages to contribute back to them in some way to say thank you.
Wax on, wax off baby!
If you are a software company, then you had better pay close attention to having the right process from the start. Once your into the project, you won't have time to go back and do planning and process. If your design and project methods aren't good, how can you even make a schedule or know how many programmers to hire? This is by definition more than a one or two person project or you wouldn't need a software company to do it.
That being said, don't go nuts on process either. Figure out what is most important to your project, and implement something that hits the important points. Use it and build good habits on your team, and you will be able to refine the process as you go. At the end of each product cycle you have to evaluate the performance of everything and make adjustments.
This is just like the extreme programming model where you prototype quickly and test constantly. Unlike writing programs, it's harder to automate the testing because your evaluating a human process, not a program. Performance metrics can help, but sometime they hide more than they reveal.
I think that guy might be well served by viewing his need as a bug tracking system that he can use for requirements management, rather than a requirements management system that he can use for bug tracking.
I was on a project a while back where the QA lead entered the requirements doc point-by-point into the defect tracking system with each functional requirement tracked as a missing feature.
Sounds awkward, and at first it even ticked a few of us off to have a bunch of bugs logged against us when we hadn't even begun coding yet... but it actually worked pretty well.
Not ideal for a few reasons, most notably because moving information between the requirements doc and the bug tracking system is a tedious manual process, and because the mapping between them can be ambiguous and the source of some contention. But, if you can't find just what you want, and can't justify investing the time to build just what you want, it's another option.
Build stuff. Stuff that walks, stuff that rolls, whatever.
Hire or rent a knowledgeable and experienced software architect.
I would like to have this sort of tool myself. I've been at enough startups where the requirements are in constant flux and are "managed" in the great verbal tradition. I used Requsite/Pro once (4+ years ago) and it was awful.
I used Xplanner (http://sourceforge.net/projects/xplanner/) for a small project last spring and found it useful for a small project.
You might also look at Jakarta Maven as a related useful tool
I would add to your wishlist:
* linkages to design specs, test cases, defects and source modules.
* Team-based time estimates, project management hooks and actual time effort measures. (how can you commit to a schedule without knowing you velocity, vicinity and vector?)
yes, tutos looks good. i haven't tried it in production but it boasts a lot of features.
one important thing i see overlooked often is the need for -more- than a web/gui interface. if you can't write scripts to automate generating reports, filing new bugs due to results from automated testing, etc. it will only get you so far. of course this is where open source shines if you don't need that now but can afford to add it yourself later.
"I have the wonderful (and rare) job of building a development department from scratch."
So, here's the question I'm sure a lot of us who are currently not working were thinking when we read that opening sentence: When will you have openings for developers? Where are they?
--
brother can you spare an internet connection?
About a year ago I was faced with the same problem; I run a deployment program for design/construction rollout of telecommunication cellsites. (Not software development, but the problems in civil engineering are probably quite similar).
I took from an open source project (then in it's infancy), and enhanced it for our needs. We now have web based project management software that fits our needs very well.
Of course, we fed our improvements back into the source (and I have become one of the developers). Isn't that what open source is about?
So, use the force behind open source, develop your own from what you can get. Then return, what you've learnt to the community.
Oh, and if you're interested: Have a look at
http://sourceforge.net/projects/core-lan-org
Why?
Because it's hard as hell to extract decient matrix out of spread sheets and word docs.
Configuration management of you well configuration management is also a nightmare with plain docs, why not have a system that self manages?
If I was building a project management system it would be !somthing! like this.
Bill comes to me with a 'project'
I put the project into the management tool, and setup who's going to do some requirements and feasablilty analysis on the project (to see if it's worth taking on and what were going to charge).
The project is now have a few nodes for various elements, and the node link up to the staff.
We decide to take on the project, by this time there are a few more nodes giveing some top down requirements and some time estimates.
A manager is assigned to the project, the manager assigned different teems to the various nodes (this could include businss analysts and managers depending on the node type).
Each team itterates through the process, reporting back to there parent nodes (there manager), tasks are assigned, completed and reviewed. Bugs are tracked against the various levels of the project (down to source level).
thank God the internet isn't a human right.
Let me point out that your company is already planning on spending, fully-burdened with overhead, nominally $250,000 per seat on your developers. That is salary, benefits, cost of office space, cost of lights, cost of PCs, secretarial support, janitorial support, bathrooms, water fountains, time spent perusing the lastest zero-information-content puffery from the Board of Directors, everything. $1200-$10K per seat is pretty small potatoes by comparison.
Having said that, I suggest you take another look at your wish list and ask yourself how often you REALLY are going to *USE* all those bells and whistles. Do you NEED them, or do you just WANT them? Do you NEED one-button brass-band-Mozart, or do you just need to be able to pull the data out OCCASIONALLY for a right-now CEO presentation?
Your payoff occurs when you automate the things that happen every day. Spending a fortune to automate the things that never happen is wasting time and money.
You have to have to software development process done first before you even start thinking of tools. The stuff you want to do is approaching CMM 3 and for that you a very rigorous process, and the tools are pretty much unimportant.
I installed it and it worked great and seemed to be a great tool. The I discovered that the people didn't want to use a system that might make them accountable. OPT is one of a kind.
Defining where you are going is a critical part of getting there. Knowing how fast you're moving toward a goal is critical to knowing when you will get there.
Anyone else been a part of a valley death march?
Anyone else gotten stuck in the middle of long-winded discussions of what a requirement _really_ meant in the last week of a year-long development project?
XP makes a good attempt at getting requirements defined and building incrementally towards a solution.
CMM represents all of the key software processes that might be important to your organization.
In my experience you have to tailor any development process to the skills and experience of the engineers; the scope and complexity of the project; and the clarity and understanding of the end goals.
Why is creating your own requirements/projects software a good idea? This to me does not make any sense.
1) Outside the team's core competency. Presumably the development team was picked in order to compliment each other in terms of the products or services of the company. (e.g. just because I know JAVA, doesnt mean Im familiar with SWING or I like doing socket networking)
2) Time and more importantly Focus. The team wants to work on the real project, not get all muddled up in trying to write from scratch software just to get the project started
3) Resource management. Sorry all you technologist here on Slashdot, but buying vrs building your own is a business decision, not a technological one. Is it worth it to me to spend X amount of dollars or Y amount of time. I would make the assumption, since the poster here wants an open source project to start, that money is a concern. Time is more costly than cash! Having my team of developers spend their time working on a software solution means that as a manager I am a) paying their salary during that time and b) delaying when I can get the real project started, getting that product/service to market, or using whatever effeciency that product/service was intended to give me.