With having answers of two very important questions on Requirement developments, lets get in to more detail, and understand how how to establish the product and product component requirements?
So my question to you would be:
What products do you deliver to customer? How do you establish these requirements?
The CMMi says “Establish and maintain product and product component requirements, which are based on the customer requirements”
Let’s understand as to what this mean, this is so critical that you may eventually end up getting surprised as to how detail a CMMi process can be when we talk about use of ‘specific’ words!
Now have a look at ‘Establish and maintain product and product component requirements”, now your question would be:
Well Amit, you know, Product Requirements are when we have documented the customer needs and I have performed the next step, interpreting and writing the technical requirements in three categories, which are mainly functional, non functional, interface…so what the hell is this product component requirement?
This is going to be a long post so bear with me, as this is the essence of entire project planning, if you master this aspect, we are good with any complexity of project!
Product Component: In the CMMI Product Suite, a work product is a lower level component of the product. Product components are integrated to produce the product. There may be multiple levels of product components. I’m sure you all understand this, there is an example to follow this.
Product Component Requirements – The complete specification of a product component, including Look and feel, form, function, performance, and any other requirement.
Image via Wikipedia
Most of you must be having a smartphone…yeah, not like me, who is still with 1100 Nokia ;)…so, a smartphone as a product have got various product components, like the screen, the keypad, the battery, the AMOLED screen, well there are other too, but these one will do for this discussion!
Now each and every ‘Product component’ has got associated ‘Requirements’ which we call as ‘Product component requirements’
Now whenever you talk about a project, let’s take an example where in you have to come up with an eCommerce website, this website as a product, can be broken down in to one or more components. And then it is also possible to break down these components in to further sub-components.
I hope you have a clear understanding of product requirements and product component requirements..perfect!
Remember this is very important to have detailed quality requirement at this stage, the example can be:
- Respond with in 1 second
- System is available 99 % of time
- Implement a change with no more than one staff week of effort
You need an SRS (System Requirement Specification) at this stage.
There is one important aspect in the RD process which talks about maintaining the ‘bidirectional traceability’, we will talk about that later.
Now very important question that comes up now is:
What components of the products are identified? How do you allocate the product requirement to components?
The intent of this practice is to make sure that the requirements for each product component (Remember AMOLED screens, battery etc.) are correctly specified (allocated).
You are still not in implementation mode, you’re only trying to make sure that requirements are properly allocated to their respective components.
So here at the product component level, you may have a mix of hardware requirements, software requirements, performance requirements, operational requirements, etc. The basic idea about requirement development at this stage is to allocate these different requirements to their respective components so you don’t implement a software requirement in to say operational or the other way round!
You need an RTM (Requirement Traceability Matrix) at this stage.