Thursday, December 13, 2007

Agile Curam Development Requirements Gathering

Gathering requirements in Curam does not appear to be an easy thing to do.  One can go with a BDUF (big design up front) approach or an iterative development approach.  With a COTS package like Curam a combination of the two approaches would be more beneficial.

I've seen a lot of BDUF (big design up front) type documentation in a lot of my projects.  Unless you are extremely good at estimating and your customers are very accomodating, these documents tend to take too long to create and is not 80% perfect when they reach their original deadlines.

Iterative development such as RUP/XP try to remedy that.  However, unless your sales team is good enough to sell a time and materials contract, then an iterative development approach from requirements gathering to actual development would be a hard sell as well.

Unlike the traditional development approach where you would almost start with scratch, a COTS solution offers a lot of things for you out of the box.  However, you would need someone who knows what you can get with minimal changes out of the box.  In such cases, you would need more people doing business analysis rather than actual developers.  The BA vs Dev mix should be roughly equal, with some of the BAs transitioning to a test team or Curam administrative roles as time progresses.

I am writing this, in case I do switch to a BA lead role with focus on requirements gathering and analysis in a Curam project that may be fixed price.

I say lead, because Curam requirements gathering for any reasonable sized application is not a single or two or three BA job, doing so is asking for a lot of trouble.  Conversely, it is not a single or two or three customer representative job, doing so is asking for a lot of trouble as well.  It should also be one BA to one customer business rep.

Although my experience in COTS is primarily Curam, I think the concept would apply to most other COTS.

This is the first in a series of blogs regarding requirements gathering.  I thought it best to start at the point before you even start working...

Proposal and estimating

Estimating the requirements gathering from an RFP depends highly on the quality of the RFP itself.  The following list shows a grid of how I would capture things.  The numbers represent some factors I would use in terms of days when calculating things.

  High Complexity Medium Complexity Low Complexity
End to end scenarios 30 20 10
Activity scenarios 15 10 5
Delivery definitions 10 5 3
Rules/Evidence 30 20 10
Usage scenarios 15 10 5

Based on the data, I apply the factors to the counts I would gather from the RFP and just sum things up + add whatever buffer factor I would need.

Complexity is determined by how complete the RFP is in the first place.  If there is sufficient detail to generate work products for each component, then I would mark them as low complexity, unless it is really complicated.  Remember, I am not building the final application, but rather gathering enough information so the development teams can do their work.

Please note that what I have written above talks about effort.  It does not talk about dependencies so things may shift further in duration because of such dependencies.

1 comments:

Kabilan said...

Hello Tranjano,
Your blog is verymuch useful for Curam practitioners. Currently I am planning to take Curam4.5 test. Can you give us some tips to take this exam or few sample questions to prepare with