Sunday, April 20, 2008

Software Configuration Management Tools

copied from http://www.software-configuration.com/software_configuration_tools.html

Software Configuration Management Tools
configuration managment system Posted by Rob Castellow


So now is the fun part. You get to pick which tools you will be using to make your development process as smooth as possible. I will attempt to give my experiences with a select few tools that I have seen be useful in a software configuration management environment. If you, the reader, know of other tools that you feel should really be mentioned, please feel free to send suggestions to my email address in the contact section.
First, let's address each area that you will need at some point of the software design life cycle...

Version Control Tools
Subversion (http://subversion.tigris.org) - This is quickly becoming the open source industry standard for version control. Subversion provides numerous features and also there is an enormous amount of support for development tools (Eclipse, NetBeans, etc) Subversion was developed by many of the original CVS developers and was designed to address all the things wrong with CVS.

Git (http://git.or.cz/) - A non-traditional SCM tool but efficient and distributed version control system. This project was originally created to manage version controlling LINUX kernels. The main push on Git is to handle large projects more efficiently.

Clearcase (http://www-306.ibm.com/software/awdtools/clearcase/) - Did I say that I was cheap? Yes, I did, but I would like to mention Clearcase anyway. First, understand the cost of Clearcase is more than what appears on your invoice. The real cost to maintain Clearcase is in maintaining a local server, and then if multi-site is needed, just multiply that cost by the number of remote locations. Other than the enormous costs, if I had to pay for a version control tool I would select Clearcase for its overall functionality.
Multi Site replicators
WANDisco (http://www.wandisco.com) - I have not personally used this product, but I know that WANDisco is the leader in providing multi site solutions for Subversion, JIRA, and CVS.
Defect and Enhancement Tracking
JIRA (http://www.atlassian.com/software/jira/) - JIRA is a customizable bug and issue tracker. JIRA provides custom workflows, web service interfaces and much more. I have used JIRA and it is extremely intuitive. JIRA is not free, but it is extremely cheap compared to other tools.

TRAC (http://trac.edgewall.org) - I use TRAC on all my home projects, and it is extremely simple and flexible. TRAC has an interface to Subversion and also has an integrated wiki. TRAC also reads wiki markup in the commit comments of Subversion. TRAC is also open source.

Bugzilla (http://www.bugzilla.org) - Bugzilla is an old standby for many developers. I would suggest though that there are many better tools out there these days. However, if you just want the old classic, Bugzilla is still actively maintained. Bugzilla is open source.

Scarab (http://scarab.tigris.org) - Scarab is an open source tool to track issues. Scarab is a Java based implementation over MySQL. Scarab is highly configurable, and will also import/export data from other defect tracking tools.

Mantis (http://www.mantisbt.org) - Mantis is a popular open source web based issue tracker. Easily installed and configurable.

Requirement Tools
OSRMT (http://sourceforge.net/projects/osrmt) - Open Source Requirements Management Tool manages features, requirements, design, implementation, and testing.

Iterative Build Tools
Cruise Control - CruiseControl was for many years on the forefront of continuous build integration. CruiseControl has been a favorite by many. There are many options to the CruiseControl tool, which can all be configured in its xml configuration file.

Hudson - A newer but powerful continuous integration build tool. I am using this tool on a project now, and enjoy Hudson's many options, nice interface, and good communication options.

Environment Management Tools
SourceForge - (http://sourceforge.net) - The world's largest open source development web site. This environment allows any open source project to host itself for free on the site. SourceForge also enables developers to communicate efficiently, track defects, and provides version control.

Build Tools
Ant (http://ant.apache.org) - Ant is a Java XML based build tool that has many built in libraries to automate builds and deploys. Most development environments have plugins to Ant, and Ant enjoys widespread support.

Maven (http://maven.apache.org) - Maven is another Java XML based build tool with many built in libraries. Maven differs in a few aspects from Ant. First Maven is object oriented. A developer will create a POM file to build code and that file will be inherited on all subprojects. If you are trying to decide whether to use Maven or Ant, I would recommend that if you have a basic J2EE app that does not deviate from good design patterns, then Maven is great. If you really need to create creative design patterns, I would recommend Ant.

Make (http://www.gnu.org/software/make) - You may be designing C++ apps and using Make. If so, I dropped the link, but chances are this is tattooed on your forearm by now.

Other Utilities worth Mentioning
KOSMOS - (http://labs.jboss.com/kosmos) - This product is so useful, if you are using JIRA, Subversion, CruiseControl, or SourceForge. If you are into high level understandings of where the code is at at any given moment, this tool provides a dashboard to several version control and defect tracking tools. This tool is a JBoss portlet, so you will need a JBoss application server to run this app. That's OK though. It's all free!

2 comments:

Brian said...

WANdisco is a bit shady in my opinion. This article was clearly developed by WANdisco, it reads like marketing material. Customers I know are not happy with it and I hear the Jira solution does not work.

Anonymous said...

Good day, sun shines!
There have been times of hardship when I felt unhappy missing knowledge about opportunities of getting high yields on investments. I was a dump and downright stupid person.
I have never imagined that there weren't any need in big initial investment.
Now, I feel good, I begin to get real income.
It gets down to select a proper partner who utilizes your funds in a right way - that is incorporate it in real deals, and shares the income with me.

You may ask, if there are such firms? I have to tell the truth, YES, there are. Please get to know about one of them:
http://theinvestblog.com [url=http://theinvestblog.com]Online Investment Blog[/url]