Saturday, March 31, 2007

Reducing costs in a Cúram project

Cúram as a product is probably very expensive. I'm not privy to how much it actually costs organizations to buy this product, but if it is not off-the-shelf it is most likely in the thousands range already like most software that is not off-the-shelf. The best thing to reduce your development cost is to adapt to Cúram. However, this article is about how to reduce your development costs by choosing the right tools for the job. Please note that the suggested tools are not officially supported by Cúram. The IDE Starting with version 4.0 of Curam they have explicitly stated that they supported the use of Eclipse and Tomcat. In the older versions they only supported WebSphere Studio Application Developer. So having support for Eclipse and Tomcat reduces your cost in terms of software since they are free. What if your organization provides you WebSphere Studio Application Developer or Rational Application Developer freely? Well if you have a choice, still opt for Eclipse, because you would save more of your precious memory for things that you need and not the extras that you do not. If you are using Rational Application Developer or Rational Software Architect, just go to capabilities and disable as much as possible, you only need Java developer, Web Developer (Adv anced), Team and XML. Although Curam provides you with Eclipse in their Third Party Software disk, don't bother with it because it is an old version. Instead go grab Eclipse Callisto and install the Web Tools Platform from the Callisto discovery site. The rest of the stuff on the CD such as Ant, the Tomcat Sysdeo plugin and Tomcat just use the one from the CD. Also, I have made my own Eclipse plug-in called Eclipse Platform Extensions to help with some common development task like adding a button on the toolbar to enable or disable automatic builds. The database The Curam supported databases -- DB2 and Oracle -- are expensive products. So much so that unless you work in an organization that has licenses for your developers to use them as needed it is going to cost you big bucks. Fortunately, IBM has given us DB2 Express C which is free. The DB2 product is compatible with Curam from my experience. I haven't had the need to use Oracle with Curam for a while so I had never looked up any free equivalent for Oracle, but the free DB2 is quite easy to install and get going. By using this product, you eliminate the need/excuse to use a shared database. Using a shared database for development is a very bad idea in any Curam development project, since it makes it harder for developers to adapt to change. However, for integration test servers where the data is shared among many testers and some of them don't really want to recreate their test data again, you can use the exportdata target or use the data retention procedure I have outlined in a previous post. Version control Choosing the right version control system would save you a lot of time, pain and suffering that you would need to deal with as the system is being developed. The recommended tool for this is Subversion. Unfortunately for me, I haven't used Subversion in any Curam project, but I've used it on many opensource projects already. CVS gets severely bogged down with so many files during branch and tag operations. There are many websites that talk about how Subversion is superior over CVS. Although CVS has its warts, it is better than the next alternative... ClearCase gets horrendously slow because of Curam's large Rose model. Sure it may be fast during the initial load because you can get your Rational administrator to do the import which is at least 10 times faster than manually adding the files as a developer. However, come upgrade time import isn't really a good option, because you don't really have that option anymore. So if you are using ClearCase, just ignore my post about Upgrade fear of failure unless you have a dedicated (not shared) Rational administrator for your project. Defect management Close to the importance of choosing the right version control is choosing the right defect management tool. The tool I would recommend for this is JIRA. JIRA is not free, but the cost is quite reasonable. Setting the thing up took me 15 minutes the first time around and I get a whole suite of features that I like. I've used it in a previous Curam project before as a user and I was quite happy with it. I've also used JIRA in many opensource projects as well. Bugzilla, though it is free, does not have as much ease of use features as that of JIRA. ClearQuest is another alternative, but I am not sure if it interfaces with Subversion or CVS to help track changes. If you are a Rational shop then it may be better since it provides tracking with ClearCase. However, if you are not using ClearCase, it may be more of a hindrance to development. Document management Should you use a tool? Yes. Which one? Your version control system and defect management system should provide sufficient support. For the developers, there should be only one place they get their tasks... the defect management system. For documentation about what they need on their tasks, they should be in the version control system. All models should be in the Curam.mdl file as well, to keep all of them in one place and versioned as such. Don't bother wasting any more money (or time) on a separate system. Seriously! When I say documents, I mean just Use case specifications, design documentation, etc. Requirements management is another thing in which case you should use a tool like RequisitePro. However, since I have never been dealing with things at that level, I can't recommend any other tool aside from ReqPro (especially since that is the only tool I have used that does it). Wiki Any Wiki, I haven't setup any myself, but I prefer a Wiki over something like a document library like Lotus Notes.

5 comments:

Jon said...

Thanks for recommending JIRA!

Daniel said...

Do you have any idea whether Curam v5 supports development in the RSA environment or still in Eclipse?

Daniel

Archimedes Trajano said...

RSA is Eclipse. I've used RSA and RAD for Curam V4.

Daniel said...

Sorry, when wrote 'Eclipse' I was referring to the free version. Did you carry out both the modeling and development in RSA?

Archimedes Trajano said...

I can't comment on that, I don't know what their future products are like. I don't work for Curam Software.