I did mention that I have a high regard for Tom Gilb. He has a technique that I think is valuable, and as with all techniques, can be adapted to fit anyones environment. I created a presentation – Evolutionary Requirements Engineering. Here are is a definition of a requirement:
A requirement is a stakeholder need that a developer is planning to satisfy.
A stakeholder is any person, group or object, which has some direct or indirect interest in a system.
I created this presentation from resources provided by Tom at a conference I attended. I think the concept of stakeholder is known by everyone, but do you know who are the critical stakeholders for your project? Accordingly, you must consider the entire life-cycle and identify the different categories of stakeholders.
Another concept is that you must analyze the requirements you gather. It is important to distinguish the ends (requirements) from the means. Means are the design ideas we choose: the architecture, technology, strategies and other synonyms (They are whatever is needed to achieve the requirements). Identify the key requirements that have the greatest impact on your most critical stakeholder values and system costs. And these key requirements could be decomposed into more elementary ones.
Now that you have identified your critical stakeholders and key requirements, how do you know you have met the goal of the requirement? Here again Tom gives us a technique to apply to our development: quantification. Here is Tom’s Simplified Quantification Procedure.
P1: Make sure you are dealing with an elementary variable.
P2: Describe the ambition level.
P3: Generate a corresponding Scale of measure.
P4: Specify Conditions
P5: Specify a Meter.
P6: Try out the Scale.
P7: Repeat process until you are satisfied
P8: Generalize the Scale with more Parameters.
For more details check out the resources at Tom’s website on Evo, Evolutionary Project Management & Product Development.
Allen