views:

190

answers:

3

Hi,

I am new to Spring framework. I was recently part of a Task where an estimation for a Spring/Hibernate based web application was being prepared. We had Functional & Business requirements and detailed Use Cases. I was asked to prepare a list of the inventory or Work Item types (Controllers, Entities, DAOs, ServiceClasses, Application Pages, Database Tables etc).

What is the methodology to do this (I am sure it might not be Spring specific, but since each Framework/API would demand the application architecture to be created in a certain way, I am confused)?

Please point me to any web-resources that you know of if the answer is too detailed, I was unable to get accurate results from Google.

Thanks a lot.

A: 

Even though it is now obsolete, I have had good experience with using Excel to track estimations, as I put list all the tasks for a feature, and how long I expect it will take, and then I track what my estimate is as opposed to how long it really took.

http://www.joelonsoftware.com/articles/fog0000000245.html

James Black
@james Thanks but my query pertains to the estimation/RFP phase only, how do I zero in on the components based on the Use-cases, Functional and Business Requirements, specifically for a proposed Spring framework based application.
Dee
The link I sent is initially for the estimation phase, to determine how long something will take, but you break each feature into it's tasks so you can better estimate. Spring and Hibernate provide assistance in some of the tasks, depending on how much of the Spring framework you are using.
James Black
+3  A: 

Spring certainly has its own idiom, as do all languages and frameworks, but I don't think there's an estimation process identified with it.

Sounds like you're relatively far along in the process if you have detailed use cases. What was the estimate for the work before you got the use cases?

Java's an object-oriented language. If you have detailed use cases, start designing the system in terms of objects by decomposing them. Don't worry about Spring just yet.

Once you have those, I'd say you should start with the service interfaces. The methods in those interfaces ought to map to your use cases pretty well. You'll be able to start seeing how your business use cases and reified system use cases start clumping into services.

With the domain objects and services interfaces in hand, you'll have little trouble laying out the persistence tier and ORM.

Once you have the service interfaces in place, the UI mock-ups can be done in parallel.

How are you capturing your estimates? Have you thought about buying Fog Bugz? If nothing else, I'm intrigued by its approach to estimates.

duffymo
@duffymo Thanks for the inputs. When I entered the scene the requirement/Use Cases (some with UI designs) were there. For estimating I have to use a complex (probably sophisticated is the right word) organisational estimator that requires the inventory list as an essential input. BTW I discovered this thread that gave some direction http://www.theserverside.com/patterns/thread.tss?thread_id=17595.
Dee
Sounds like some nice work, Debu. Best of luck on your project.
duffymo
+1  A: 

In my company we use a function point like method to handle projects of this kind.

Basically, we count

  • all used tables and an estimated number of attributes,
  • all values that enter the system through an interface (GUI, file, WebService, ...),
  • all values that leave the system through an interface,
  • all use cases that are visible to our customer (only functional use cases, no technical procedures),
  • for each use case the number of tables it needs to read from or write to.

Then we give each number a weight (here you need some experience or a good feeling) and calculate the cost for the project.

The beauty of this method is that you can adjust your weights after some accomplished projects of similar type and get a better estimate for the next one.

Of course you have to include some extra time for setting up a project architecture the first time you use the spring framework, hibernate or whatever kind of technology you are not familiar with.

tangens
@tangens Thanks. I have used FP based estimation (organisational Excel Templates), however in this case I have to use an estimation tool (later) that demands the inventory list as an essential input, not sure what estimation method it uses internally.
Dee