Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We elicit requirements from our product stakeholders by creating and refining user stories in monthly sprint planning meetings. This includes defining use cases, acceptance criteria, and identifying constraints, and the final result is a sprint backlog of user stories. The high-level customer requirements are refined into lower-level product requirements through design reviews among the development team throughout the sprint. The design reviews result in UML diagrams, software interfaces, and, in general, a human language description of various software requirements.

We are increasing our metric-awareness as an organization so that we can better identify potential areas of process improvement (and so that we can eventually be appraised at CMMI level 3).

What kind of useful metrics are there to collect in the elicitation and refinement of customer requirements?

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted
  • How long you spend developing requirements. This is to see if the overhead is worth the benefit.
  • Average time to implement a requirement (requirements per hour or day). Some tasks are unavoidably complex, but in general, better-defined requirements don't take as long to implement.
  • How often requirements change between requirements development and the end of a feature's implementation. This measures both how well you understood the requirement and if you're breaking them down into small enough pieces.
  • Lag time between requirements development and start of implementation. This measures how well you're focusing on the most urgent needs.
share|improve this answer
    
Thanks. This gives us some excellent starting points. Some of these metrics we were already collecting through our application life-cycle management software. I would like to expand on the second bullet point: If some requirements are low-level enough, I could imagine that in some cases it would be difficult (if not impossible) to differentiate the time spent on individual requirements. I could imagine collecting a different metric, such as the average number of requirements being implemented per hour. –  David Kaczynski Aug 14 '12 at 17:28
    
That's a good point, and would account for the variability due to complexity as well. I'll edit that into my answer. –  Karl Bielefeldt Aug 14 '12 at 17:31
add comment

It is hard to tell what metrics to collect for an unknown project with unknown goals. I would strongly recommend you to take a look at some kind of goal definition approach (such as GQM). Using this methodology you might come with metrics that best suit your needs.

Basically, GQM (goal, question, metric) defines a process where: you first define your measurement goals, those goals lead you to some questions, and those questions require metrics to be answered. So, in the end, you have metrics that really support your goals.

Hope it is helpful.

share|improve this answer
    
I am trying to ask in general terms what kind of metrics could be collected for requirement development, not just for our project, but you bring up an excellent point in that the metrics to collect specifically depend on the goals of the project. Thank you, and I look forward to learning more about GQM. –  David Kaczynski Aug 14 '12 at 20:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.